]> git.proxmox.com Git - mirror_zfs-debian.git/commitdiff
Support custom build directories and move includes
authorBrian Behlendorf <behlendorf1@llnl.gov>
Sat, 4 Sep 2010 20:26:23 +0000 (13:26 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 8 Sep 2010 19:38:56 +0000 (12:38 -0700)
One of the neat tricks an autoconf style project is capable of
is allow configurion/building in a directory other than the
source directory.  The major advantage to this is that you can
build the project various different ways while making changes
in a single source tree.

For example, this project is designed to work on various different
Linux distributions each of which work slightly differently.  This
means that changes need to verified on each of those supported
distributions perferably before the change is committed to the
public git repo.

Using nfs and custom build directories makes this much easier.
I now have a single source tree in nfs mounted on several different
systems each running a supported distribution.  When I make a
change to the source base I suspect may break things I can
concurrently build from the same source on all the systems each
in their own subdirectory.

wget -c http://github.com/downloads/behlendorf/zfs/zfs-x.y.z.tar.gz
tar -xzf zfs-x.y.z.tar.gz
cd zfs-x-y-z

------------------------- run concurrently ----------------------
<ubuntu system>  <fedora system>  <debian system>  <rhel6 system>
mkdir ubuntu     mkdir fedora     mkdir debian     mkdir rhel6
cd ubuntu        cd fedora        cd debian        cd rhel6
../configure     ../configure     ../configure     ../configure
make             make             make             make
make check       make check       make check       make check

This change also moves many of the include headers from individual
incude/sys directories under the modules directory in to a single
top level include directory.  This has the advantage of making
the build rules cleaner and logically it makes a bit more sense.

280 files changed:
Makefile.am
Makefile.in
cmd/Makefile.in
cmd/zdb/Makefile.am
cmd/zdb/Makefile.in
cmd/zfs/Makefile.am
cmd/zfs/Makefile.in
cmd/zinject/Makefile.am
cmd/zinject/Makefile.in
cmd/zpios/Makefile.am
cmd/zpios/Makefile.in
cmd/zpool/Makefile.am
cmd/zpool/Makefile.in
cmd/zpool_id/Makefile.in
cmd/zpool_layout/Makefile.in
cmd/ztest/Makefile.am
cmd/ztest/Makefile.in
config/Makefile.am [deleted file]
config/Makefile.in [deleted file]
config/Rules.am
config/kernel.m4
config/zfs-build.m4
configure
configure.ac
etc/Makefile.am
etc/Makefile.in
include/Makefile.am [new file with mode: 0644]
include/Makefile.in [new file with mode: 0644]
include/libnvpair.h [new file with mode: 0644]
include/libuutil.h [new file with mode: 0644]
include/libuutil_common.h [new file with mode: 0644]
include/libuutil_impl.h [new file with mode: 0644]
include/libzfs.h [new file with mode: 0644]
include/libzfs_impl.h [new file with mode: 0644]
include/sys/Makefile.am [new file with mode: 0644]
include/sys/Makefile.in [new file with mode: 0644]
include/sys/arc.h [new file with mode: 0644]
include/sys/avl.h [new file with mode: 0644]
include/sys/avl_impl.h [new file with mode: 0644]
include/sys/blkdev.h [new file with mode: 0644]
include/sys/bplist.h [new file with mode: 0644]
include/sys/bpobj.h [new file with mode: 0644]
include/sys/dbuf.h [new file with mode: 0644]
include/sys/ddt.h [new file with mode: 0644]
include/sys/dmu.h [new file with mode: 0644]
include/sys/dmu_impl.h [new file with mode: 0644]
include/sys/dmu_objset.h [new file with mode: 0644]
include/sys/dmu_traverse.h [new file with mode: 0644]
include/sys/dmu_tx.h [new file with mode: 0644]
include/sys/dmu_zfetch.h [new file with mode: 0644]
include/sys/dnode.h [new file with mode: 0644]
include/sys/dsl_dataset.h [new file with mode: 0644]
include/sys/dsl_deadlist.h [new file with mode: 0644]
include/sys/dsl_deleg.h [new file with mode: 0644]
include/sys/dsl_dir.h [new file with mode: 0644]
include/sys/dsl_pool.h [new file with mode: 0644]
include/sys/dsl_prop.h [new file with mode: 0644]
include/sys/dsl_scan.h [new file with mode: 0644]
include/sys/dsl_synctask.h [new file with mode: 0644]
include/sys/efi_partition.h [new file with mode: 0644]
include/sys/fm/Makefile.am [new file with mode: 0644]
include/sys/fm/Makefile.in [new file with mode: 0644]
include/sys/fm/fs/Makefile.am [new file with mode: 0644]
include/sys/fm/fs/Makefile.in [new file with mode: 0644]
include/sys/fm/fs/zfs.h [new file with mode: 0644]
include/sys/fm/protocol.h [new file with mode: 0644]
include/sys/fm/util.h [new file with mode: 0644]
include/sys/fs/Makefile.am [new file with mode: 0644]
include/sys/fs/Makefile.in [new file with mode: 0644]
include/sys/fs/zfs.h [new file with mode: 0644]
include/sys/metaslab.h [new file with mode: 0644]
include/sys/metaslab_impl.h [new file with mode: 0644]
include/sys/nvpair.h [new file with mode: 0644]
include/sys/nvpair_impl.h [new file with mode: 0644]
include/sys/refcount.h [new file with mode: 0644]
include/sys/rrwlock.h [new file with mode: 0644]
include/sys/sa.h [new file with mode: 0644]
include/sys/sa_impl.h [new file with mode: 0644]
include/sys/spa.h [new file with mode: 0644]
include/sys/spa_boot.h [new file with mode: 0644]
include/sys/spa_impl.h [new file with mode: 0644]
include/sys/space_map.h [new file with mode: 0644]
include/sys/txg.h [new file with mode: 0644]
include/sys/txg_impl.h [new file with mode: 0644]
include/sys/u8_textprep.h [new file with mode: 0644]
include/sys/u8_textprep_data.h [new file with mode: 0644]
include/sys/uberblock.h [new file with mode: 0644]
include/sys/uberblock_impl.h [new file with mode: 0644]
include/sys/unique.h [new file with mode: 0644]
include/sys/uuid.h [new file with mode: 0644]
include/sys/vdev.h [new file with mode: 0644]
include/sys/vdev_disk.h [new file with mode: 0644]
include/sys/vdev_file.h [new file with mode: 0644]
include/sys/vdev_impl.h [new file with mode: 0644]
include/sys/zap.h [new file with mode: 0644]
include/sys/zap_impl.h [new file with mode: 0644]
include/sys/zap_leaf.h [new file with mode: 0644]
include/sys/zfs_acl.h [new file with mode: 0644]
include/sys/zfs_context.h [new file with mode: 0644]
include/sys/zfs_ctldir.h [new file with mode: 0644]
include/sys/zfs_debug.h [new file with mode: 0644]
include/sys/zfs_dir.h [new file with mode: 0644]
include/sys/zfs_fuid.h [new file with mode: 0644]
include/sys/zfs_ioctl.h [new file with mode: 0644]
include/sys/zfs_onexit.h [new file with mode: 0644]
include/sys/zfs_rlock.h [new file with mode: 0644]
include/sys/zfs_sa.h [new file with mode: 0644]
include/sys/zfs_stat.h [new file with mode: 0644]
include/sys/zfs_vfsops.h [new file with mode: 0644]
include/sys/zfs_znode.h [new file with mode: 0644]
include/sys/zil.h [new file with mode: 0644]
include/sys/zil_impl.h [new file with mode: 0644]
include/sys/zio.h [new file with mode: 0644]
include/sys/zio_checksum.h [new file with mode: 0644]
include/sys/zio_compress.h [new file with mode: 0644]
include/sys/zio_impl.h [new file with mode: 0644]
include/sys/zrlock.h [new file with mode: 0644]
include/sys/zvol.h [new file with mode: 0644]
include/zfs_comutil.h [new file with mode: 0644]
include/zfs_deleg.h [new file with mode: 0644]
include/zfs_fletcher.h [new file with mode: 0644]
include/zfs_namecheck.h [new file with mode: 0644]
include/zfs_prop.h [new file with mode: 0644]
include/zpios-ctl.h [new file with mode: 0644]
include/zpios-internal.h [new file with mode: 0644]
lib/Makefile.in
lib/libavl/Makefile.am
lib/libavl/Makefile.in
lib/libefi/Makefile.am
lib/libefi/Makefile.in
lib/libefi/include/sys/efi_partition.h [deleted file]
lib/libefi/include/sys/uuid.h [deleted file]
lib/libnvpair/Makefile.am
lib/libnvpair/Makefile.in
lib/libnvpair/include/libnvpair.h [deleted file]
lib/libspl/Makefile.am
lib/libspl/Makefile.in
lib/libspl/asm-generic/Makefile.am
lib/libspl/asm-generic/Makefile.in
lib/libspl/asm-generic/atomic.S [deleted file]
lib/libspl/asm-i386/Makefile.am
lib/libspl/asm-i386/Makefile.in
lib/libspl/asm-x86_64/Makefile.am
lib/libspl/asm-x86_64/Makefile.in
lib/libspl/include/Makefile.am
lib/libspl/include/Makefile.in
lib/libspl/include/ia32/Makefile.am [new file with mode: 0644]
lib/libspl/include/ia32/Makefile.in [new file with mode: 0644]
lib/libspl/include/ia32/sys/Makefile.am [new file with mode: 0644]
lib/libspl/include/ia32/sys/Makefile.in [new file with mode: 0644]
lib/libspl/include/rpc/Makefile.am [new file with mode: 0644]
lib/libspl/include/rpc/Makefile.in [new file with mode: 0644]
lib/libspl/include/sys/Makefile.am [new file with mode: 0644]
lib/libspl/include/sys/Makefile.in [new file with mode: 0644]
lib/libspl/include/sys/dktp/Makefile.am [new file with mode: 0644]
lib/libspl/include/sys/dktp/Makefile.in [new file with mode: 0644]
lib/libspl/include/sys/sysevent/Makefile.am [new file with mode: 0644]
lib/libspl/include/sys/sysevent/Makefile.in [new file with mode: 0644]
lib/libspl/include/util/Makefile.am [new file with mode: 0644]
lib/libspl/include/util/Makefile.in [new file with mode: 0644]
lib/libunicode/Makefile.am
lib/libunicode/Makefile.in
lib/libuutil/Makefile.am
lib/libuutil/Makefile.in
lib/libuutil/include/libuutil.h [deleted file]
lib/libuutil/include/libuutil_common.h [deleted file]
lib/libuutil/include/libuutil_impl.h [deleted file]
lib/libzfs/Makefile.am
lib/libzfs/Makefile.in
lib/libzfs/include/libzfs.h [deleted file]
lib/libzfs/include/libzfs_impl.h [deleted file]
lib/libzpool/Makefile.am
lib/libzpool/Makefile.in
lib/libzpool/include/Makefile.am [deleted file]
lib/libzpool/include/Makefile.in [deleted file]
lib/libzpool/include/sys/zfs_context.h [deleted file]
man/Makefile.in
man/man8/Makefile.in
module/Makefile.in
module/avl/Makefile.in
module/avl/include/sys/avl.h [deleted file]
module/avl/include/sys/avl_impl.h [deleted file]
module/nvpair/Makefile.in
module/nvpair/include/sys/nvpair.h [deleted file]
module/nvpair/include/sys/nvpair_impl.h [deleted file]
module/unicode/Makefile.in
module/unicode/include/sys/u8_textprep.h [deleted file]
module/unicode/include/sys/u8_textprep_data.h [deleted file]
module/zcommon/Makefile.in
module/zcommon/include/sys/fs/zfs.h [deleted file]
module/zcommon/include/zfs_comutil.h [deleted file]
module/zcommon/include/zfs_deleg.h [deleted file]
module/zcommon/include/zfs_fletcher.h [deleted file]
module/zcommon/include/zfs_namecheck.h [deleted file]
module/zcommon/include/zfs_prop.h [deleted file]
module/zfs/Makefile.in
module/zfs/include/sys/arc.h [deleted file]
module/zfs/include/sys/blkdev.h [deleted file]
module/zfs/include/sys/bplist.h [deleted file]
module/zfs/include/sys/bpobj.h [deleted file]
module/zfs/include/sys/dbuf.h [deleted file]
module/zfs/include/sys/ddt.h [deleted file]
module/zfs/include/sys/dmu.h [deleted file]
module/zfs/include/sys/dmu_impl.h [deleted file]
module/zfs/include/sys/dmu_objset.h [deleted file]
module/zfs/include/sys/dmu_traverse.h [deleted file]
module/zfs/include/sys/dmu_tx.h [deleted file]
module/zfs/include/sys/dmu_zfetch.h [deleted file]
module/zfs/include/sys/dnode.h [deleted file]
module/zfs/include/sys/dsl_dataset.h [deleted file]
module/zfs/include/sys/dsl_deadlist.h [deleted file]
module/zfs/include/sys/dsl_deleg.h [deleted file]
module/zfs/include/sys/dsl_dir.h [deleted file]
module/zfs/include/sys/dsl_pool.h [deleted file]
module/zfs/include/sys/dsl_prop.h [deleted file]
module/zfs/include/sys/dsl_scan.h [deleted file]
module/zfs/include/sys/dsl_synctask.h [deleted file]
module/zfs/include/sys/fm/fs/zfs.h [deleted file]
module/zfs/include/sys/fm/protocol.h [deleted file]
module/zfs/include/sys/fm/util.h [deleted file]
module/zfs/include/sys/metaslab.h [deleted file]
module/zfs/include/sys/metaslab_impl.h [deleted file]
module/zfs/include/sys/refcount.h [deleted file]
module/zfs/include/sys/rrwlock.h [deleted file]
module/zfs/include/sys/sa.h [deleted file]
module/zfs/include/sys/sa_impl.h [deleted file]
module/zfs/include/sys/spa.h [deleted file]
module/zfs/include/sys/spa_boot.h [deleted file]
module/zfs/include/sys/spa_impl.h [deleted file]
module/zfs/include/sys/space_map.h [deleted file]
module/zfs/include/sys/txg.h [deleted file]
module/zfs/include/sys/txg_impl.h [deleted file]
module/zfs/include/sys/uberblock.h [deleted file]
module/zfs/include/sys/uberblock_impl.h [deleted file]
module/zfs/include/sys/unique.h [deleted file]
module/zfs/include/sys/vdev.h [deleted file]
module/zfs/include/sys/vdev_disk.h [deleted file]
module/zfs/include/sys/vdev_file.h [deleted file]
module/zfs/include/sys/vdev_impl.h [deleted file]
module/zfs/include/sys/zap.h [deleted file]
module/zfs/include/sys/zap_impl.h [deleted file]
module/zfs/include/sys/zap_leaf.h [deleted file]
module/zfs/include/sys/zfs_acl.h [deleted file]
module/zfs/include/sys/zfs_context.h [deleted file]
module/zfs/include/sys/zfs_ctldir.h [deleted file]
module/zfs/include/sys/zfs_debug.h [deleted file]
module/zfs/include/sys/zfs_dir.h [deleted file]
module/zfs/include/sys/zfs_fuid.h [deleted file]
module/zfs/include/sys/zfs_ioctl.h [deleted file]
module/zfs/include/sys/zfs_onexit.h [deleted file]
module/zfs/include/sys/zfs_rlock.h [deleted file]
module/zfs/include/sys/zfs_sa.h [deleted file]
module/zfs/include/sys/zfs_stat.h [deleted file]
module/zfs/include/sys/zfs_vfsops.h [deleted file]
module/zfs/include/sys/zfs_znode.h [deleted file]
module/zfs/include/sys/zil.h [deleted file]
module/zfs/include/sys/zil_impl.h [deleted file]
module/zfs/include/sys/zio.h [deleted file]
module/zfs/include/sys/zio_checksum.h [deleted file]
module/zfs/include/sys/zio_compress.h [deleted file]
module/zfs/include/sys/zio_impl.h [deleted file]
module/zfs/include/sys/zrlock.h [deleted file]
module/zfs/include/sys/zvol.h [deleted file]
module/zpios/Makefile.in
module/zpios/include/zpios-ctl.h [deleted file]
module/zpios/include/zpios-internal.h [deleted file]
module/zpios/pios.c [new file with mode: 0644]
module/zpios/zpios.c [deleted file]
scripts/Makefile.am
scripts/Makefile.in
scripts/common.sh.in
scripts/zfs-update.sh [deleted file]
scripts/zpios-profile/Makefile.am [new file with mode: 0644]
scripts/zpios-profile/Makefile.in [new file with mode: 0644]
scripts/zpios-test/Makefile.am [new file with mode: 0644]
scripts/zpios-test/Makefile.in [new file with mode: 0644]
scripts/zpool-config/Makefile.am [new file with mode: 0644]
scripts/zpool-config/Makefile.in [new file with mode: 0644]
zfs-script-config.sh.in [new file with mode: 0644]
zfs.spec.in

index f573e1d17d897cf436abce6d6e719036815ba7f6..5a03f1e3f5a15b50bfa30d62e1052340920007a8 100644 (file)
@@ -1,14 +1,14 @@
 include $(top_srcdir)/config/rpm.am
-include ${top_srcdir}/config/deb.am
-include ${top_srcdir}/config/tgz.am
+include $(top_srcdir)/config/deb.am
+include $(top_srcdir)/config/tgz.am
 
 if CONFIG_USER
-USER_DIR = config etc man scripts lib cmd
+USER_DIR = etc man scripts lib cmd
 endif
 if CONFIG_KERNEL
 KERNEL_DIR = module
 endif
-SUBDIRS = $(USER_DIR) $(KERNEL_DIR)
+SUBDIRS = $(USER_DIR) $(KERNEL_DIR) include
 
 AUTOMAKE_OPTIONS = foreign
 EXTRA_DIST  = autogen.sh zfs.spec.in zfs-modules.spec.in
@@ -34,7 +34,7 @@ if CONFIG_KERNEL
 install-data-local:
        destname=zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION); \
        instdest=$(DESTDIR)/usr/src/$$destname; \
-       echo "${ZFS_META_VERSION}" >$$instdest/zfs.release; \
+       echo "$(ZFS_META_VERSION)" >$$instdest/zfs.release; \
        for instfile in $(noinst_HEADERS) module/$(LINUX_SYMBOLS); do \
                $(INSTALL) -D $$instfile $$instdest/$$instfile; \
        done
index b9ac6fde901ef68f57e3c34eb7aabec075bc8865..e3a7bc64b0ac58d3605364f2d605bdea33dec513 100644 (file)
@@ -37,8 +37,10 @@ host_triplet = @host@
 target_triplet = @target@
 DIST_COMMON = $(am__configure_deps) $(noinst_HEADERS) \
        $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/zfs-modules.spec.in $(srcdir)/zfs.spec.in \
-       $(srcdir)/zfs_config.h.in $(top_srcdir)/config/rpm.am \
+       $(srcdir)/zfs-modules.spec.in \
+       $(srcdir)/zfs-script-config.sh.in $(srcdir)/zfs.spec.in \
+       $(srcdir)/zfs_config.h.in $(top_srcdir)/config/deb.am \
+       $(top_srcdir)/config/rpm.am $(top_srcdir)/config/tgz.am \
        $(top_srcdir)/configure $(top_srcdir)/module/Makefile.in \
        $(top_srcdir)/module/avl/Makefile.in \
        $(top_srcdir)/module/nvpair/Makefile.in \
@@ -46,7 +48,8 @@ DIST_COMMON = $(am__configure_deps) $(noinst_HEADERS) \
        $(top_srcdir)/module/zcommon/Makefile.in \
        $(top_srcdir)/module/zfs/Makefile.in \
        $(top_srcdir)/module/zpios/Makefile.in AUTHORS COPYING \
-       ChangeLog
+       ChangeLog config/config.guess config/config.sub config/depcomp \
+       config/install-sh config/ltmain.sh config/missing
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
@@ -88,7 +91,8 @@ CONFIG_HEADER = zfs_config.h
 CONFIG_CLEAN_FILES = module/Makefile module/avl/Makefile \
        module/nvpair/Makefile module/unicode/Makefile \
        module/zcommon/Makefile module/zfs/Makefile \
-       module/zpios/Makefile zfs.spec zfs-modules.spec
+       module/zpios/Makefile zfs.spec zfs-modules.spec \
+       zfs-script-config.sh
 CONFIG_CLEAN_VPATH_FILES =
 AM_V_GEN = $(am__v_GEN_$(V))
 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
@@ -113,7 +117,7 @@ AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
        distdir dist dist-all distcheck
 ETAGS = etags
 CTAGS = ctags
-DIST_SUBDIRS = config etc man scripts lib cmd module
+DIST_SUBDIRS = etc man scripts lib cmd module include
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -160,14 +164,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -205,7 +207,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -220,7 +221,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -239,7 +239,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -249,7 +248,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -320,9 +318,9 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-@CONFIG_USER_TRUE@USER_DIR = config etc man scripts lib cmd
+@CONFIG_USER_TRUE@USER_DIR = etc man scripts lib cmd
 @CONFIG_KERNEL_TRUE@KERNEL_DIR = module
-SUBDIRS = $(USER_DIR) $(KERNEL_DIR)
+SUBDIRS = $(USER_DIR) $(KERNEL_DIR) include
 AUTOMAKE_OPTIONS = foreign
 EXTRA_DIST = autogen.sh zfs.spec.in zfs-modules.spec.in \
        config/config.awk config/rpm.am config/deb.am config/tgz.am \
@@ -335,7 +333,7 @@ all: zfs_config.h
 .SUFFIXES:
 am--refresh:
        @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/rpm.am $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/config/rpm.am $(top_srcdir)/config/deb.am $(top_srcdir)/config/tgz.am $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
@@ -402,6 +400,8 @@ zfs.spec: $(top_builddir)/config.status $(srcdir)/zfs.spec.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
 zfs-modules.spec: $(top_builddir)/config.status $(srcdir)/zfs-modules.spec.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
+zfs-script-config.sh: $(top_builddir)/config.status $(srcdir)/zfs-script-config.sh.in
+       cd $(top_builddir) && $(SHELL) ./config.status $@
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -914,8 +914,73 @@ rpm-common:
                --nodeps --rebuild $$rpmpkg || exit 1; \
        cp $$rpmbuild/RPMS/*/* . || exit 1; \
        $(RM) -R $$rpmbuild
-include ${top_srcdir}/config/deb.am
-include ${top_srcdir}/config/tgz.am
+deb-local:
+       @(if test "${HAVE_DPKGBUILD}" = "no"; then \
+               echo -e "\n" \
+       "*** Required util ${DPKGBUILD} missing.  Please install the\n" \
+        "*** package for your distribution which provides ${DPKGBUILD},\n" \
+       "*** re-run configure, and try again.\n"; \
+                exit 1; \
+       fi; \
+       if test "${HAVE_ALIEN}" = "no"; then \
+               echo -e "\n" \
+       "*** Required util ${ALIEN} missing.  Please install the\n" \
+        "*** package for your distribution which provides ${ALIEN},\n" \
+       "*** re-run configure, and try again.\n"; \
+                exit 1; \
+       fi)
+
+deb-modules: deb-local rpm-modules
+       name=${PACKAGE}-modules; \
+       version=${ZFS_META_VERSION}-${ZFS_META_RELEASE}; \
+       release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \
+       arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch}`; \
+       pkg1=$${name}-$${version}_$${release}.$${arch}.rpm; \
+       pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \
+       fakeroot $(ALIEN) --scripts --to-deb $$pkg1 $$pkg2; \
+       $(RM) $$pkg1 $$pkg2
+
+deb-utils: deb-local rpm-utils
+       name=${PACKAGE}; \
+       version=${ZFS_META_VERSION}-${ZFS_META_RELEASE}; \
+       arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch}`; \
+       pkg1=$${name}-$${version}.$${arch}.rpm; \
+       pkg2=$${name}-devel-$${version}.$${arch}.rpm; \
+       pkg3=$${name}-test-$${version}.$${arch}.rpm; \
+       fakeroot $(ALIEN) --scripts --to-deb $$pkg1 $$pkg2 $$pkg3; \
+       $(RM) $$pkg1 $$pkg2 $$pkg3
+
+deb: deb-modules deb-utils
+tgz-local:
+       @(if test "${HAVE_ALIEN}" = "no"; then \
+               echo -e "\n" \
+       "*** Required util ${ALIEN} missing.  Please install the\n" \
+        "*** package for your distribution which provides ${ALIEN},\n" \
+       "*** re-run configure, and try again.\n"; \
+                exit 1; \
+       fi)
+
+tgz-modules: tgz-local rpm-modules
+       name=${PACKAGE}-modules; \
+       version=${ZFS_META_VERSION}-${ZFS_META_RELEASE}; \
+       release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \
+       arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch}`; \
+       pkg1=$${name}-$${version}_$${release}.$${arch}.rpm; \
+       pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \
+       fakeroot $(ALIEN) --scripts --to-tgz $$pkg1 $$pkg2; \
+       $(RM) $$pkg1 $$pkg2
+
+tgz-utils: tgz-local rpm-utils
+       name=${PACKAGE}; \
+       version=${ZFS_META_VERSION}-${ZFS_META_RELEASE}; \
+       arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch}`; \
+       pkg1=$${name}-$${version}.$${arch}.rpm; \
+       pkg2=$${name}-devel-$${version}.$${arch}.rpm; \
+       pkg3=$${name}-test-$${version}.$${arch}.rpm; \
+       fakeroot $(ALIEN) --scripts --to-tgz $$pkg1 $$pkg2 $$pkg3; \
+       $(RM) $$pkg1 $$pkg2 $$pkg3
+
+tgz: tgz-modules tgz-utils
 
 distclean-local::
        -$(RM) -R autom4te*.cache
@@ -932,7 +997,7 @@ distclean-local::
 @CONFIG_KERNEL_TRUE@install-data-local:
 @CONFIG_KERNEL_TRUE@   destname=zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION); \
 @CONFIG_KERNEL_TRUE@   instdest=$(DESTDIR)/usr/src/$$destname; \
-@CONFIG_KERNEL_TRUE@   echo "${ZFS_META_VERSION}" >$$instdest/zfs.release; \
+@CONFIG_KERNEL_TRUE@   echo "$(ZFS_META_VERSION)" >$$instdest/zfs.release; \
 @CONFIG_KERNEL_TRUE@   for instfile in $(noinst_HEADERS) module/$(LINUX_SYMBOLS); do \
 @CONFIG_KERNEL_TRUE@           $(INSTALL) -D $$instfile $$instdest/$$instfile; \
 @CONFIG_KERNEL_TRUE@   done
index 0180d9e4945ed704b4b1141cc12e5e4d77bbbc12..f8664363c4751b9f5e2a0e51ded4910cb05ee314 100644 (file)
@@ -132,14 +132,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -177,7 +175,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -192,7 +189,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -211,7 +207,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -221,7 +216,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
index 6f0b0cb87d8ccfa298cc11869c58f06f3ab1c0cb..16d74999118a1acf1135a76eb0663a6c6126fad5 100644 (file)
@@ -1,22 +1,14 @@
 include $(top_srcdir)/config/Rules.am
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libzpool/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/module/zfs/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 sbin_PROGRAMS = zdb
 
 zdb_SOURCES = \
-       ${top_srcdir}/cmd/zdb/zdb.c \
-       ${top_srcdir}/cmd/zdb/zdb_il.c
+       $(top_srcdir)/cmd/zdb/zdb.c \
+       $(top_srcdir)/cmd/zdb/zdb_il.c
 
 zdb_LDADD = \
        $(top_builddir)/lib/libspl/libspl.la \
index c7c099a368c0555e8df670e54e90050cb8b06262..a34342f79ca8914fa9efaf2ac37850492ede8575 100644 (file)
@@ -134,14 +134,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -179,7 +177,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -194,7 +191,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -213,7 +209,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -223,7 +218,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -294,25 +288,16 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libzpool/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/module/zfs/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
        -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64 \
        -D_LARGEFILE64_SOURCE -DTEXT_DOMAIN=\"zfs-linux-user\"
 zdb_SOURCES = \
-       ${top_srcdir}/cmd/zdb/zdb.c \
-       ${top_srcdir}/cmd/zdb/zdb_il.c
+       $(top_srcdir)/cmd/zdb/zdb.c \
+       $(top_srcdir)/cmd/zdb/zdb_il.c
 
 zdb_LDADD = \
        $(top_builddir)/lib/libspl/libspl.la \
@@ -439,37 +424,37 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-zdb.o: ${top_srcdir}/cmd/zdb/zdb.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zdb.o -MD -MP -MF $(DEPDIR)/zdb.Tpo -c -o zdb.o `test -f '${top_srcdir}/cmd/zdb/zdb.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zdb/zdb.c
+zdb.o: $(top_srcdir)/cmd/zdb/zdb.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zdb.o -MD -MP -MF $(DEPDIR)/zdb.Tpo -c -o zdb.o `test -f '$(top_srcdir)/cmd/zdb/zdb.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zdb/zdb.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zdb.Tpo $(DEPDIR)/zdb.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zdb/zdb.c' object='zdb.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zdb/zdb.c' object='zdb.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zdb.o `test -f '${top_srcdir}/cmd/zdb/zdb.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zdb/zdb.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zdb.o `test -f '$(top_srcdir)/cmd/zdb/zdb.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zdb/zdb.c
 
-zdb.obj: ${top_srcdir}/cmd/zdb/zdb.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zdb.obj -MD -MP -MF $(DEPDIR)/zdb.Tpo -c -o zdb.obj `if test -f '${top_srcdir}/cmd/zdb/zdb.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zdb/zdb.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zdb/zdb.c'; fi`
+zdb.obj: $(top_srcdir)/cmd/zdb/zdb.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zdb.obj -MD -MP -MF $(DEPDIR)/zdb.Tpo -c -o zdb.obj `if test -f '$(top_srcdir)/cmd/zdb/zdb.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zdb/zdb.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zdb/zdb.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zdb.Tpo $(DEPDIR)/zdb.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zdb/zdb.c' object='zdb.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zdb/zdb.c' object='zdb.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zdb.obj `if test -f '${top_srcdir}/cmd/zdb/zdb.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zdb/zdb.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zdb/zdb.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zdb.obj `if test -f '$(top_srcdir)/cmd/zdb/zdb.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zdb/zdb.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zdb/zdb.c'; fi`
 
-zdb_il.o: ${top_srcdir}/cmd/zdb/zdb_il.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zdb_il.o -MD -MP -MF $(DEPDIR)/zdb_il.Tpo -c -o zdb_il.o `test -f '${top_srcdir}/cmd/zdb/zdb_il.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zdb/zdb_il.c
+zdb_il.o: $(top_srcdir)/cmd/zdb/zdb_il.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zdb_il.o -MD -MP -MF $(DEPDIR)/zdb_il.Tpo -c -o zdb_il.o `test -f '$(top_srcdir)/cmd/zdb/zdb_il.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zdb/zdb_il.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zdb_il.Tpo $(DEPDIR)/zdb_il.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zdb/zdb_il.c' object='zdb_il.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zdb/zdb_il.c' object='zdb_il.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zdb_il.o `test -f '${top_srcdir}/cmd/zdb/zdb_il.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zdb/zdb_il.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zdb_il.o `test -f '$(top_srcdir)/cmd/zdb/zdb_il.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zdb/zdb_il.c
 
-zdb_il.obj: ${top_srcdir}/cmd/zdb/zdb_il.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zdb_il.obj -MD -MP -MF $(DEPDIR)/zdb_il.Tpo -c -o zdb_il.obj `if test -f '${top_srcdir}/cmd/zdb/zdb_il.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zdb/zdb_il.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zdb/zdb_il.c'; fi`
+zdb_il.obj: $(top_srcdir)/cmd/zdb/zdb_il.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zdb_il.obj -MD -MP -MF $(DEPDIR)/zdb_il.Tpo -c -o zdb_il.obj `if test -f '$(top_srcdir)/cmd/zdb/zdb_il.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zdb/zdb_il.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zdb/zdb_il.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zdb_il.Tpo $(DEPDIR)/zdb_il.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zdb/zdb_il.c' object='zdb_il.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zdb/zdb_il.c' object='zdb_il.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zdb_il.obj `if test -f '${top_srcdir}/cmd/zdb/zdb_il.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zdb/zdb_il.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zdb/zdb_il.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zdb_il.obj `if test -f '$(top_srcdir)/cmd/zdb/zdb_il.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zdb/zdb_il.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zdb/zdb_il.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
index 4d66e37a2226495ffc1a59f93bf7135a55317fa4..ba3e6447e0f342f761cf326ee06c2bf25ac2e194 100644 (file)
@@ -1,23 +1,16 @@
 include $(top_srcdir)/config/Rules.am
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 sbin_PROGRAMS = zfs
 
 zfs_SOURCES = \
-       ${top_srcdir}/cmd/zfs/zfs_iter.c \
-       ${top_srcdir}/cmd/zfs/zfs_iter.h \
-       ${top_srcdir}/cmd/zfs/zfs_main.c \
-       ${top_srcdir}/cmd/zfs/zfs_util.h
+       $(top_srcdir)/cmd/zfs/zfs_iter.c \
+       $(top_srcdir)/cmd/zfs/zfs_iter.h \
+       $(top_srcdir)/cmd/zfs/zfs_main.c \
+       $(top_srcdir)/cmd/zfs/zfs_util.h
 
 zfs_LDADD = \
        $(top_builddir)/lib/libspl/libspl.la \
index e36915d2f8c65c40a695f7545eb502112fc5d08d..fd80e2dbe0dabe5d2e0b8850522ce1026c3d4389 100644 (file)
@@ -134,14 +134,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -179,7 +177,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -194,7 +191,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -213,7 +209,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -223,7 +218,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -294,26 +288,18 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
        -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64 \
        -D_LARGEFILE64_SOURCE -DTEXT_DOMAIN=\"zfs-linux-user\"
 zfs_SOURCES = \
-       ${top_srcdir}/cmd/zfs/zfs_iter.c \
-       ${top_srcdir}/cmd/zfs/zfs_iter.h \
-       ${top_srcdir}/cmd/zfs/zfs_main.c \
-       ${top_srcdir}/cmd/zfs/zfs_util.h
+       $(top_srcdir)/cmd/zfs/zfs_iter.c \
+       $(top_srcdir)/cmd/zfs/zfs_iter.h \
+       $(top_srcdir)/cmd/zfs/zfs_main.c \
+       $(top_srcdir)/cmd/zfs/zfs_util.h
 
 zfs_LDADD = \
        $(top_builddir)/lib/libspl/libspl.la \
@@ -440,37 +426,37 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-zfs_iter.o: ${top_srcdir}/cmd/zfs/zfs_iter.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_iter.o -MD -MP -MF $(DEPDIR)/zfs_iter.Tpo -c -o zfs_iter.o `test -f '${top_srcdir}/cmd/zfs/zfs_iter.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zfs/zfs_iter.c
+zfs_iter.o: $(top_srcdir)/cmd/zfs/zfs_iter.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_iter.o -MD -MP -MF $(DEPDIR)/zfs_iter.Tpo -c -o zfs_iter.o `test -f '$(top_srcdir)/cmd/zfs/zfs_iter.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zfs/zfs_iter.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_iter.Tpo $(DEPDIR)/zfs_iter.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zfs/zfs_iter.c' object='zfs_iter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zfs/zfs_iter.c' object='zfs_iter.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_iter.o `test -f '${top_srcdir}/cmd/zfs/zfs_iter.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zfs/zfs_iter.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_iter.o `test -f '$(top_srcdir)/cmd/zfs/zfs_iter.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zfs/zfs_iter.c
 
-zfs_iter.obj: ${top_srcdir}/cmd/zfs/zfs_iter.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_iter.obj -MD -MP -MF $(DEPDIR)/zfs_iter.Tpo -c -o zfs_iter.obj `if test -f '${top_srcdir}/cmd/zfs/zfs_iter.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zfs/zfs_iter.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zfs/zfs_iter.c'; fi`
+zfs_iter.obj: $(top_srcdir)/cmd/zfs/zfs_iter.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_iter.obj -MD -MP -MF $(DEPDIR)/zfs_iter.Tpo -c -o zfs_iter.obj `if test -f '$(top_srcdir)/cmd/zfs/zfs_iter.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zfs/zfs_iter.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zfs/zfs_iter.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_iter.Tpo $(DEPDIR)/zfs_iter.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zfs/zfs_iter.c' object='zfs_iter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zfs/zfs_iter.c' object='zfs_iter.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_iter.obj `if test -f '${top_srcdir}/cmd/zfs/zfs_iter.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zfs/zfs_iter.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zfs/zfs_iter.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_iter.obj `if test -f '$(top_srcdir)/cmd/zfs/zfs_iter.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zfs/zfs_iter.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zfs/zfs_iter.c'; fi`
 
-zfs_main.o: ${top_srcdir}/cmd/zfs/zfs_main.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_main.o -MD -MP -MF $(DEPDIR)/zfs_main.Tpo -c -o zfs_main.o `test -f '${top_srcdir}/cmd/zfs/zfs_main.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zfs/zfs_main.c
+zfs_main.o: $(top_srcdir)/cmd/zfs/zfs_main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_main.o -MD -MP -MF $(DEPDIR)/zfs_main.Tpo -c -o zfs_main.o `test -f '$(top_srcdir)/cmd/zfs/zfs_main.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zfs/zfs_main.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_main.Tpo $(DEPDIR)/zfs_main.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zfs/zfs_main.c' object='zfs_main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zfs/zfs_main.c' object='zfs_main.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_main.o `test -f '${top_srcdir}/cmd/zfs/zfs_main.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zfs/zfs_main.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_main.o `test -f '$(top_srcdir)/cmd/zfs/zfs_main.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zfs/zfs_main.c
 
-zfs_main.obj: ${top_srcdir}/cmd/zfs/zfs_main.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_main.obj -MD -MP -MF $(DEPDIR)/zfs_main.Tpo -c -o zfs_main.obj `if test -f '${top_srcdir}/cmd/zfs/zfs_main.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zfs/zfs_main.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zfs/zfs_main.c'; fi`
+zfs_main.obj: $(top_srcdir)/cmd/zfs/zfs_main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_main.obj -MD -MP -MF $(DEPDIR)/zfs_main.Tpo -c -o zfs_main.obj `if test -f '$(top_srcdir)/cmd/zfs/zfs_main.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zfs/zfs_main.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zfs/zfs_main.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_main.Tpo $(DEPDIR)/zfs_main.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zfs/zfs_main.c' object='zfs_main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zfs/zfs_main.c' object='zfs_main.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_main.obj `if test -f '${top_srcdir}/cmd/zfs/zfs_main.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zfs/zfs_main.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zfs/zfs_main.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_main.obj `if test -f '$(top_srcdir)/cmd/zfs/zfs_main.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zfs/zfs_main.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zfs/zfs_main.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
index 7166ed9b4b1bedf621b1945f7e69f80f3f71dbd9..df97db3723ea79cb86c9f21ed78dd4073b87ccc6 100644 (file)
@@ -1,25 +1,15 @@
 include $(top_srcdir)/config/Rules.am
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libzpool/include \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/module/zfs \
-       -I${top_srcdir}/module/zfs/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 sbin_PROGRAMS = zinject
 
 zinject_SOURCES = \
-       ${top_srcdir}/cmd/zinject/translate.c \
-       ${top_srcdir}/cmd/zinject/zinject.c \
-       ${top_srcdir}/cmd/zinject/zinject.h
+       $(top_srcdir)/cmd/zinject/translate.c \
+       $(top_srcdir)/cmd/zinject/zinject.c \
+       $(top_srcdir)/cmd/zinject/zinject.h
 
 zinject_LDADD = \
        $(top_builddir)/lib/libspl/libspl.la \
index 7b337e7b2f63eb2011a2b07ecf196ddde3e657eb..265b944f359c605c4dfffe9f8c4384b5a1a126ed 100644 (file)
@@ -134,14 +134,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -179,7 +177,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -194,7 +191,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -213,7 +209,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -223,7 +218,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -294,27 +288,17 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libzpool/include \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/module/zfs -I${top_srcdir}/module/zfs/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
        -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64 \
        -D_LARGEFILE64_SOURCE -DTEXT_DOMAIN=\"zfs-linux-user\"
 zinject_SOURCES = \
-       ${top_srcdir}/cmd/zinject/translate.c \
-       ${top_srcdir}/cmd/zinject/zinject.c \
-       ${top_srcdir}/cmd/zinject/zinject.h
+       $(top_srcdir)/cmd/zinject/translate.c \
+       $(top_srcdir)/cmd/zinject/zinject.c \
+       $(top_srcdir)/cmd/zinject/zinject.h
 
 zinject_LDADD = \
        $(top_builddir)/lib/libspl/libspl.la \
@@ -441,37 +425,37 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-translate.o: ${top_srcdir}/cmd/zinject/translate.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT translate.o -MD -MP -MF $(DEPDIR)/translate.Tpo -c -o translate.o `test -f '${top_srcdir}/cmd/zinject/translate.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zinject/translate.c
+translate.o: $(top_srcdir)/cmd/zinject/translate.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT translate.o -MD -MP -MF $(DEPDIR)/translate.Tpo -c -o translate.o `test -f '$(top_srcdir)/cmd/zinject/translate.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zinject/translate.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/translate.Tpo $(DEPDIR)/translate.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zinject/translate.c' object='translate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zinject/translate.c' object='translate.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o translate.o `test -f '${top_srcdir}/cmd/zinject/translate.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zinject/translate.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o translate.o `test -f '$(top_srcdir)/cmd/zinject/translate.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zinject/translate.c
 
-translate.obj: ${top_srcdir}/cmd/zinject/translate.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT translate.obj -MD -MP -MF $(DEPDIR)/translate.Tpo -c -o translate.obj `if test -f '${top_srcdir}/cmd/zinject/translate.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zinject/translate.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zinject/translate.c'; fi`
+translate.obj: $(top_srcdir)/cmd/zinject/translate.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT translate.obj -MD -MP -MF $(DEPDIR)/translate.Tpo -c -o translate.obj `if test -f '$(top_srcdir)/cmd/zinject/translate.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zinject/translate.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zinject/translate.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/translate.Tpo $(DEPDIR)/translate.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zinject/translate.c' object='translate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zinject/translate.c' object='translate.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o translate.obj `if test -f '${top_srcdir}/cmd/zinject/translate.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zinject/translate.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zinject/translate.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o translate.obj `if test -f '$(top_srcdir)/cmd/zinject/translate.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zinject/translate.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zinject/translate.c'; fi`
 
-zinject.o: ${top_srcdir}/cmd/zinject/zinject.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zinject.o -MD -MP -MF $(DEPDIR)/zinject.Tpo -c -o zinject.o `test -f '${top_srcdir}/cmd/zinject/zinject.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zinject/zinject.c
+zinject.o: $(top_srcdir)/cmd/zinject/zinject.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zinject.o -MD -MP -MF $(DEPDIR)/zinject.Tpo -c -o zinject.o `test -f '$(top_srcdir)/cmd/zinject/zinject.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zinject/zinject.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zinject.Tpo $(DEPDIR)/zinject.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zinject/zinject.c' object='zinject.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zinject/zinject.c' object='zinject.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zinject.o `test -f '${top_srcdir}/cmd/zinject/zinject.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zinject/zinject.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zinject.o `test -f '$(top_srcdir)/cmd/zinject/zinject.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zinject/zinject.c
 
-zinject.obj: ${top_srcdir}/cmd/zinject/zinject.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zinject.obj -MD -MP -MF $(DEPDIR)/zinject.Tpo -c -o zinject.obj `if test -f '${top_srcdir}/cmd/zinject/zinject.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zinject/zinject.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zinject/zinject.c'; fi`
+zinject.obj: $(top_srcdir)/cmd/zinject/zinject.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zinject.obj -MD -MP -MF $(DEPDIR)/zinject.Tpo -c -o zinject.obj `if test -f '$(top_srcdir)/cmd/zinject/zinject.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zinject/zinject.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zinject/zinject.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zinject.Tpo $(DEPDIR)/zinject.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zinject/zinject.c' object='zinject.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zinject/zinject.c' object='zinject.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zinject.obj `if test -f '${top_srcdir}/cmd/zinject/zinject.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zinject/zinject.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zinject/zinject.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zinject.obj `if test -f '$(top_srcdir)/cmd/zinject/zinject.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zinject/zinject.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zinject/zinject.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
index 4e13a76c9e050a7f75d055025aa8d8d4cdf92393..0799463cc6e0052538da52fae8df08fa852f4caf 100644 (file)
@@ -1,7 +1,7 @@
 include $(top_srcdir)/config/Rules.am
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/module/zpios/include
+       -I$(top_srcdir)/include
 
 sbin_PROGRAMS = zpios
 
index 781e9dfd92838c2735a886bd81235e6e1dbb3696..f2ee687fcd7e6d3b5e43112395a427ec225f963a 100644 (file)
@@ -124,14 +124,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -169,7 +167,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -184,7 +181,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -203,7 +199,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -213,7 +208,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -284,8 +278,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/module/zpios/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
index ec9757bd629ba6b876477104bb9f203d55898a6c..a0d16466e65d7dd7676386980d76539f0a5857ab 100644 (file)
@@ -1,25 +1,17 @@
 include $(top_srcdir)/config/Rules.am
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/zfs/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 sbin_PROGRAMS = zpool
 
 zpool_SOURCES = \
-       ${top_srcdir}/cmd/zpool/zpool_iter.c \
-       ${top_srcdir}/cmd/zpool/zpool_main.c \
-       ${top_srcdir}/cmd/zpool/zpool_util.c \
-       ${top_srcdir}/cmd/zpool/zpool_util.h \
-       ${top_srcdir}/cmd/zpool/zpool_vdev.c
+       $(top_srcdir)/cmd/zpool/zpool_iter.c \
+       $(top_srcdir)/cmd/zpool/zpool_main.c \
+       $(top_srcdir)/cmd/zpool/zpool_util.c \
+       $(top_srcdir)/cmd/zpool/zpool_util.h \
+       $(top_srcdir)/cmd/zpool/zpool_vdev.c
 
 zpool_LDADD = \
        $(top_builddir)/lib/libspl/libspl.la \
index f9e43eb6cb3d24129221533e198381de2274a5c7..94761f6d8a7ce489151e981ad848d7a631550ff5 100644 (file)
@@ -135,14 +135,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -180,7 +178,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -195,7 +192,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -214,7 +210,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -224,7 +219,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -295,28 +289,19 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/zfs/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
        -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64 \
        -D_LARGEFILE64_SOURCE -DTEXT_DOMAIN=\"zfs-linux-user\"
 zpool_SOURCES = \
-       ${top_srcdir}/cmd/zpool/zpool_iter.c \
-       ${top_srcdir}/cmd/zpool/zpool_main.c \
-       ${top_srcdir}/cmd/zpool/zpool_util.c \
-       ${top_srcdir}/cmd/zpool/zpool_util.h \
-       ${top_srcdir}/cmd/zpool/zpool_vdev.c
+       $(top_srcdir)/cmd/zpool/zpool_iter.c \
+       $(top_srcdir)/cmd/zpool/zpool_main.c \
+       $(top_srcdir)/cmd/zpool/zpool_util.c \
+       $(top_srcdir)/cmd/zpool/zpool_util.h \
+       $(top_srcdir)/cmd/zpool/zpool_vdev.c
 
 zpool_LDADD = \
        $(top_builddir)/lib/libspl/libspl.la \
@@ -445,69 +430,69 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-zpool_iter.o: ${top_srcdir}/cmd/zpool/zpool_iter.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_iter.o -MD -MP -MF $(DEPDIR)/zpool_iter.Tpo -c -o zpool_iter.o `test -f '${top_srcdir}/cmd/zpool/zpool_iter.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zpool/zpool_iter.c
+zpool_iter.o: $(top_srcdir)/cmd/zpool/zpool_iter.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_iter.o -MD -MP -MF $(DEPDIR)/zpool_iter.Tpo -c -o zpool_iter.o `test -f '$(top_srcdir)/cmd/zpool/zpool_iter.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zpool/zpool_iter.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zpool_iter.Tpo $(DEPDIR)/zpool_iter.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zpool/zpool_iter.c' object='zpool_iter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zpool/zpool_iter.c' object='zpool_iter.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_iter.o `test -f '${top_srcdir}/cmd/zpool/zpool_iter.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zpool/zpool_iter.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_iter.o `test -f '$(top_srcdir)/cmd/zpool/zpool_iter.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zpool/zpool_iter.c
 
-zpool_iter.obj: ${top_srcdir}/cmd/zpool/zpool_iter.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_iter.obj -MD -MP -MF $(DEPDIR)/zpool_iter.Tpo -c -o zpool_iter.obj `if test -f '${top_srcdir}/cmd/zpool/zpool_iter.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zpool/zpool_iter.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zpool/zpool_iter.c'; fi`
+zpool_iter.obj: $(top_srcdir)/cmd/zpool/zpool_iter.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_iter.obj -MD -MP -MF $(DEPDIR)/zpool_iter.Tpo -c -o zpool_iter.obj `if test -f '$(top_srcdir)/cmd/zpool/zpool_iter.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zpool/zpool_iter.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zpool/zpool_iter.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zpool_iter.Tpo $(DEPDIR)/zpool_iter.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zpool/zpool_iter.c' object='zpool_iter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zpool/zpool_iter.c' object='zpool_iter.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_iter.obj `if test -f '${top_srcdir}/cmd/zpool/zpool_iter.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zpool/zpool_iter.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zpool/zpool_iter.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_iter.obj `if test -f '$(top_srcdir)/cmd/zpool/zpool_iter.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zpool/zpool_iter.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zpool/zpool_iter.c'; fi`
 
-zpool_main.o: ${top_srcdir}/cmd/zpool/zpool_main.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_main.o -MD -MP -MF $(DEPDIR)/zpool_main.Tpo -c -o zpool_main.o `test -f '${top_srcdir}/cmd/zpool/zpool_main.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zpool/zpool_main.c
+zpool_main.o: $(top_srcdir)/cmd/zpool/zpool_main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_main.o -MD -MP -MF $(DEPDIR)/zpool_main.Tpo -c -o zpool_main.o `test -f '$(top_srcdir)/cmd/zpool/zpool_main.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zpool/zpool_main.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zpool_main.Tpo $(DEPDIR)/zpool_main.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zpool/zpool_main.c' object='zpool_main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zpool/zpool_main.c' object='zpool_main.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_main.o `test -f '${top_srcdir}/cmd/zpool/zpool_main.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zpool/zpool_main.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_main.o `test -f '$(top_srcdir)/cmd/zpool/zpool_main.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zpool/zpool_main.c
 
-zpool_main.obj: ${top_srcdir}/cmd/zpool/zpool_main.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_main.obj -MD -MP -MF $(DEPDIR)/zpool_main.Tpo -c -o zpool_main.obj `if test -f '${top_srcdir}/cmd/zpool/zpool_main.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zpool/zpool_main.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zpool/zpool_main.c'; fi`
+zpool_main.obj: $(top_srcdir)/cmd/zpool/zpool_main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_main.obj -MD -MP -MF $(DEPDIR)/zpool_main.Tpo -c -o zpool_main.obj `if test -f '$(top_srcdir)/cmd/zpool/zpool_main.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zpool/zpool_main.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zpool/zpool_main.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zpool_main.Tpo $(DEPDIR)/zpool_main.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zpool/zpool_main.c' object='zpool_main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zpool/zpool_main.c' object='zpool_main.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_main.obj `if test -f '${top_srcdir}/cmd/zpool/zpool_main.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zpool/zpool_main.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zpool/zpool_main.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_main.obj `if test -f '$(top_srcdir)/cmd/zpool/zpool_main.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zpool/zpool_main.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zpool/zpool_main.c'; fi`
 
-zpool_util.o: ${top_srcdir}/cmd/zpool/zpool_util.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_util.o -MD -MP -MF $(DEPDIR)/zpool_util.Tpo -c -o zpool_util.o `test -f '${top_srcdir}/cmd/zpool/zpool_util.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zpool/zpool_util.c
+zpool_util.o: $(top_srcdir)/cmd/zpool/zpool_util.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_util.o -MD -MP -MF $(DEPDIR)/zpool_util.Tpo -c -o zpool_util.o `test -f '$(top_srcdir)/cmd/zpool/zpool_util.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zpool/zpool_util.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zpool_util.Tpo $(DEPDIR)/zpool_util.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zpool/zpool_util.c' object='zpool_util.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zpool/zpool_util.c' object='zpool_util.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_util.o `test -f '${top_srcdir}/cmd/zpool/zpool_util.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zpool/zpool_util.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_util.o `test -f '$(top_srcdir)/cmd/zpool/zpool_util.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zpool/zpool_util.c
 
-zpool_util.obj: ${top_srcdir}/cmd/zpool/zpool_util.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_util.obj -MD -MP -MF $(DEPDIR)/zpool_util.Tpo -c -o zpool_util.obj `if test -f '${top_srcdir}/cmd/zpool/zpool_util.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zpool/zpool_util.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zpool/zpool_util.c'; fi`
+zpool_util.obj: $(top_srcdir)/cmd/zpool/zpool_util.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_util.obj -MD -MP -MF $(DEPDIR)/zpool_util.Tpo -c -o zpool_util.obj `if test -f '$(top_srcdir)/cmd/zpool/zpool_util.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zpool/zpool_util.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zpool/zpool_util.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zpool_util.Tpo $(DEPDIR)/zpool_util.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zpool/zpool_util.c' object='zpool_util.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zpool/zpool_util.c' object='zpool_util.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_util.obj `if test -f '${top_srcdir}/cmd/zpool/zpool_util.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zpool/zpool_util.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zpool/zpool_util.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_util.obj `if test -f '$(top_srcdir)/cmd/zpool/zpool_util.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zpool/zpool_util.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zpool/zpool_util.c'; fi`
 
-zpool_vdev.o: ${top_srcdir}/cmd/zpool/zpool_vdev.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_vdev.o -MD -MP -MF $(DEPDIR)/zpool_vdev.Tpo -c -o zpool_vdev.o `test -f '${top_srcdir}/cmd/zpool/zpool_vdev.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zpool/zpool_vdev.c
+zpool_vdev.o: $(top_srcdir)/cmd/zpool/zpool_vdev.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_vdev.o -MD -MP -MF $(DEPDIR)/zpool_vdev.Tpo -c -o zpool_vdev.o `test -f '$(top_srcdir)/cmd/zpool/zpool_vdev.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zpool/zpool_vdev.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zpool_vdev.Tpo $(DEPDIR)/zpool_vdev.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zpool/zpool_vdev.c' object='zpool_vdev.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zpool/zpool_vdev.c' object='zpool_vdev.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_vdev.o `test -f '${top_srcdir}/cmd/zpool/zpool_vdev.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/zpool/zpool_vdev.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_vdev.o `test -f '$(top_srcdir)/cmd/zpool/zpool_vdev.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/zpool/zpool_vdev.c
 
-zpool_vdev.obj: ${top_srcdir}/cmd/zpool/zpool_vdev.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_vdev.obj -MD -MP -MF $(DEPDIR)/zpool_vdev.Tpo -c -o zpool_vdev.obj `if test -f '${top_srcdir}/cmd/zpool/zpool_vdev.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zpool/zpool_vdev.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zpool/zpool_vdev.c'; fi`
+zpool_vdev.obj: $(top_srcdir)/cmd/zpool/zpool_vdev.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_vdev.obj -MD -MP -MF $(DEPDIR)/zpool_vdev.Tpo -c -o zpool_vdev.obj `if test -f '$(top_srcdir)/cmd/zpool/zpool_vdev.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zpool/zpool_vdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zpool/zpool_vdev.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zpool_vdev.Tpo $(DEPDIR)/zpool_vdev.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/zpool/zpool_vdev.c' object='zpool_vdev.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/zpool/zpool_vdev.c' object='zpool_vdev.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_vdev.obj `if test -f '${top_srcdir}/cmd/zpool/zpool_vdev.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/zpool/zpool_vdev.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/zpool/zpool_vdev.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_vdev.obj `if test -f '$(top_srcdir)/cmd/zpool/zpool_vdev.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/zpool/zpool_vdev.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/zpool/zpool_vdev.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
index d0305ddecd84eca177ca4f5da7fbc821cc1e8b47..d991a00f761700159e9a1452c034a61c0bc3bd64 100644 (file)
@@ -117,14 +117,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -162,7 +160,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -177,7 +174,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -196,7 +192,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -206,7 +201,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
index 75c48fee092b1daa090b07d00a264a9a8da4d42d..0b0e00c5f82ce064296950ff7bef65b60a3b1a14 100644 (file)
@@ -117,14 +117,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -162,7 +160,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -177,7 +174,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -196,7 +192,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -206,7 +201,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
index 804efccca03acf2155fc47b710ed8e514becabc1..a20969ea6311f62ee9e7580fd14e029112bf76c0 100644 (file)
@@ -3,23 +3,13 @@ include $(top_srcdir)/config/Rules.am
 AM_CFLAGS += $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libzpool/include \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/module/zfs \
-       -I${top_srcdir}/module/zfs/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 sbin_PROGRAMS = ztest
 
 ztest_SOURCES = \
-       ${top_srcdir}/cmd/ztest/ztest.c
+       $(top_srcdir)/cmd/ztest/ztest.c
 
 ztest_LDADD = \
        $(top_builddir)/lib/libspl/libspl.la \
index e1190b4a60a59d68b7f712fe4bee2f561f357a74..a70d055e32a5b44632131d4864cde05de0c1b41c 100644 (file)
@@ -134,14 +134,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -179,7 +177,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -194,7 +191,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -213,7 +209,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -223,7 +218,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -294,18 +288,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libzpool/include \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/module/zfs -I${top_srcdir}/module/zfs/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
@@ -313,7 +297,7 @@ AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        -D_LARGEFILE64_SOURCE -DTEXT_DOMAIN=\"zfs-linux-user\" \
        $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 ztest_SOURCES = \
-       ${top_srcdir}/cmd/ztest/ztest.c
+       $(top_srcdir)/cmd/ztest/ztest.c
 
 ztest_LDADD = \
        $(top_builddir)/lib/libspl/libspl.la \
@@ -439,21 +423,21 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-ztest.o: ${top_srcdir}/cmd/ztest/ztest.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ztest.o -MD -MP -MF $(DEPDIR)/ztest.Tpo -c -o ztest.o `test -f '${top_srcdir}/cmd/ztest/ztest.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/ztest/ztest.c
+ztest.o: $(top_srcdir)/cmd/ztest/ztest.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ztest.o -MD -MP -MF $(DEPDIR)/ztest.Tpo -c -o ztest.o `test -f '$(top_srcdir)/cmd/ztest/ztest.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/ztest/ztest.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ztest.Tpo $(DEPDIR)/ztest.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/ztest/ztest.c' object='ztest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/ztest/ztest.c' object='ztest.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ztest.o `test -f '${top_srcdir}/cmd/ztest/ztest.c' || echo '$(srcdir)/'`${top_srcdir}/cmd/ztest/ztest.c
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ztest.o `test -f '$(top_srcdir)/cmd/ztest/ztest.c' || echo '$(srcdir)/'`$(top_srcdir)/cmd/ztest/ztest.c
 
-ztest.obj: ${top_srcdir}/cmd/ztest/ztest.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ztest.obj -MD -MP -MF $(DEPDIR)/ztest.Tpo -c -o ztest.obj `if test -f '${top_srcdir}/cmd/ztest/ztest.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/ztest/ztest.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/ztest/ztest.c'; fi`
+ztest.obj: $(top_srcdir)/cmd/ztest/ztest.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ztest.obj -MD -MP -MF $(DEPDIR)/ztest.Tpo -c -o ztest.obj `if test -f '$(top_srcdir)/cmd/ztest/ztest.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/ztest/ztest.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/ztest/ztest.c'; fi`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ztest.Tpo $(DEPDIR)/ztest.Po
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/cmd/ztest/ztest.c' object='ztest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/cmd/ztest/ztest.c' object='ztest.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ztest.obj `if test -f '${top_srcdir}/cmd/ztest/ztest.c'; then $(CYGPATH_W) '${top_srcdir}/cmd/ztest/ztest.c'; else $(CYGPATH_W) '$(srcdir)/${top_srcdir}/cmd/ztest/ztest.c'; fi`
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ztest.obj `if test -f '$(top_srcdir)/cmd/ztest/ztest.c'; then $(CYGPATH_W) '$(top_srcdir)/cmd/ztest/ztest.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/cmd/ztest/ztest.c'; fi`
 
 mostlyclean-libtool:
        -rm -f *.lo
diff --git a/config/Makefile.am b/config/Makefile.am
deleted file mode 100644 (file)
index b412e6b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = *.m4 Rules.am
diff --git a/config/Makefile.in b/config/Makefile.in
deleted file mode 100644 (file)
index 330204d..0000000
+++ /dev/null
@@ -1,444 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = config
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in config.guess \
-       config.sub depcomp install-sh ltmain.sh missing
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps =  \
-       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
-       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
-       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
-       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
-       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
-       $(top_srcdir)/config/kernel-blk-end-request.m4 \
-       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
-       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
-       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
-       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
-       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
-       $(top_srcdir)/config/kernel-fmode-t.m4 \
-       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
-       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
-       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
-       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
-       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
-       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
-       $(top_srcdir)/config/kernel.m4 \
-       $(top_srcdir)/config/user-arch.m4 \
-       $(top_srcdir)/config/user-frame-larger-than.m4 \
-       $(top_srcdir)/config/user-ioctl.m4 \
-       $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
-       $(top_srcdir)/config/user-libuuid.m4 \
-       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
-       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
-       $(top_srcdir)/config/zfs-build.m4 \
-       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/zfs_config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-SOURCES =
-DIST_SOURCES =
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALIEN = @ALIEN@
-ALIEN_VERSION = @ALIEN_VERSION@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BUILDDIR = @BUILDDIR@
-CC = @CC@
-CCAS = @CCAS@
-CCASDEPMODE = @CCASDEPMODE@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEBUG_CFLAGS = @DEBUG_CFLAGS@
-DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
-DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DPKG = @DPKG@
-DPKGBUILD = @DPKGBUILD@
-DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
-DPKG_VERSION = @DPKG_VERSION@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
-GREP = @GREP@
-HAVE_ALIEN = @HAVE_ALIEN@
-HAVE_DPKG = @HAVE_DPKG@
-HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
-HAVE_RPM = @HAVE_RPM@
-HAVE_RPMBUILD = @HAVE_RPMBUILD@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNELCPPFLAGS = @KERNELCPPFLAGS@
-KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBUUID = @LIBUUID@
-LINUX = @LINUX@
-LINUX_OBJ = @LINUX_OBJ@
-LINUX_SYMBOLS = @LINUX_SYMBOLS@
-LINUX_VERSION = @LINUX_VERSION@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RPM = @RPM@
-RPMBUILD = @RPMBUILD@
-RPMBUILD_VERSION = @RPMBUILD_VERSION@
-RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SPL = @SPL@
-SPL_OBJ = @SPL_OBJ@
-SPL_SYMBOLS = @SPL_SYMBOLS@
-SPL_VERSION = @SPL_VERSION@
-STRIP = @STRIP@
-TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
-VENDOR = @VENDOR@
-VERSION = @VERSION@
-ZFS_CONFIG = @ZFS_CONFIG@
-ZFS_META_ALIAS = @ZFS_META_ALIAS@
-ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
-ZFS_META_DATA = @ZFS_META_DATA@
-ZFS_META_LICENSE = @ZFS_META_LICENSE@
-ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
-ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
-ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
-ZFS_META_NAME = @ZFS_META_NAME@
-ZFS_META_RELEASE = @ZFS_META_RELEASE@
-ZFS_META_VERSION = @ZFS_META_VERSION@
-ZLIB = @ZLIB@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = *.m4 Rules.am
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-               && { if test -f $@; then exit 0; else break; fi; }; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu config/Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu config/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-       esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       list='$(DISTFILES)'; \
-         dist_files=`for file in $$list; do echo $$file; done | \
-         sed -e "s|^$$srcdirstrip/||;t" \
-             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-       case $$dist_files in \
-         */*) $(MKDIR_P) `echo "$$dist_files" | \
-                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-                          sort -u` ;; \
-       esac; \
-       for file in $$dist_files; do \
-         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-           if test -d "$(distdir)/$$file"; then \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-         else \
-           test -f "$(distdir)/$$file" \
-           || cp -p $$d/$$file "$(distdir)/$$file" \
-           || exit 1; \
-         fi; \
-       done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-       -rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-       distclean distclean-generic distclean-libtool distdir dvi \
-       dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-html install-html-am \
-       install-info install-info-am install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
index b22b724a69a1e663727c5e4d51cad2d6ff8612a7..19ee4a32cf0f5ad901b97200842cc0e6c6adf400 100644 (file)
@@ -1,4 +1,4 @@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h
 
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS  = -Wall -Wstrict-prototypes -fno-strict-aliasing ${DEBUG_CFLAGS}
index 2d3a1774a099531b81ca6ba448c3b02d461dbc02..193aae11391ef8c5c73652ddfe5ff2a4000b3fac 100644 (file)
@@ -24,20 +24,17 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
        ZFS_AC_KERNEL_RQ_IS_SYNC
        ZFS_AC_KERNEL_RQ_FOR_EACH_SEGMENT
 
+       if test "$LINUX_OBJ" != "$LINUX"; then
+               KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
+       fi
+       AC_SUBST(KERNELMAKE_PARAMS)
+
+
        dnl # -Wall -fno-strict-aliasing -Wstrict-prototypes and other
        dnl # compiler options are added by the kernel build system.
        KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
        KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\""
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -I$SPL"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -I$SPL/include"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -include $SPL/spl_config.h"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -include $TOPDIR/zfs_config.h"
 
-       if test "$LINUX_OBJ" != "$LINUX"; then
-               KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
-       fi
-
-       AC_SUBST(KERNELMAKE_PARAMS)
        AC_SUBST(KERNELCPPFLAGS)
 ])
 
@@ -171,6 +168,10 @@ AC_DEFUN([ZFS_AC_SPL_MODULE_SYMVERS], [
                SPL_SYMBOLS=Module.symvers
        elif test -r $SPL_OBJ/Modules.symvers; then
                SPL_SYMBOLS=Modules.symvers
+       elif test -r $SPL_OBJ/module/Module.symvers; then
+               SPL_SYMBOLS=Module.symvers
+       elif test -r $SPL_OBJ/module/Modules.symvers; then
+               SPL_SYMBOLS=Modules.symvers
        else
                SPL_SYMBOLS=$LINUX_SYMBOLS
        fi
@@ -222,11 +223,7 @@ AC_DEFUN([ZFS_AC_SPL], [
        AC_MSG_RESULT([$splsrc])
        AC_MSG_CHECKING([spl build directory])
        if test -z "$splbuild"; then
-               if test -d ${splsrc}/module; then
-                       splbuild=${splsrc}/module
-               else
-                       splbuild=${splsrc}
-               fi
+               splbuild=${splsrc}
        fi
        AC_MSG_RESULT([$splbuild])
 
index fbaffcaa30f1d8e79c596decfc4cf782082183d8..083f9ea6216e61e751a615345cb0dfbf37890629 100644 (file)
@@ -33,90 +33,8 @@ AC_DEFUN([ZFS_AC_DEBUG], [
        AC_MSG_RESULT([$enable_debug])
 ])
 
-AC_DEFUN([ZFS_AC_CONFIG_SCRIPT], [
-       cat >.script-config <<EOF
-KERNELSRC=${LINUX}
-KERNELBUILD=${LINUX_OBJ}
-KERNELSRCVER=${LINUX_VERSION}
-KERNELMOD=/lib/modules/\${KERNELSRCVER}/kernel
-
-SPLSRC=${SPL}
-SPLBUILD=${SPL_OBJ}
-SPLSRCVER=${SPL_VERSION}
-
-TOPDIR=${TOPDIR}
-BUILDDIR=${BUILDDIR}
-LIBDIR=${LIBDIR}
-CMDDIR=${CMDDIR}
-MODDIR=${MODDIR}
-SCRIPTDIR=${SCRIPTDIR}
-ETCDIR=\${TOPDIR}/etc
-DEVDIR=\${TOPDIR}/dev
-ZPOOLDIR=\${TOPDIR}/scripts/zpool-config
-ZPIOSDIR=\${TOPDIR}/scripts/zpios-test
-ZPIOSPROFILEDIR=\${TOPDIR}/scripts/zpios-profile
-
-ZDB=\${CMDDIR}/zdb/zdb
-ZFS=\${CMDDIR}/zfs/zfs
-ZINJECT=\${CMDDIR}/zinject/zinject
-ZPOOL=\${CMDDIR}/zpool/zpool
-ZPOOL_ID=\${CMDDIR}/zpool_id/zpool_id
-ZTEST=\${CMDDIR}/ztest/ztest
-ZPIOS=\${CMDDIR}/zpios/zpios
-
-COMMON_SH=\${SCRIPTDIR}/common.sh
-ZFS_SH=\${SCRIPTDIR}/zfs.sh
-ZPOOL_CREATE_SH=\${SCRIPTDIR}/zpool-create.sh
-ZPIOS_SH=\${SCRIPTDIR}/zpios.sh
-ZPIOS_SURVEY_SH=\${SCRIPTDIR}/zpios-survey.sh
-
-INTREE=1
-LDMOD=/sbin/insmod
-
-KERNEL_MODULES=(                                      \\
-        \${KERNELMOD}/lib/zlib_deflate/zlib_deflate.ko \\
-)
-
-SPL_MODULES=(                                         \\
-        \${SPLBUILD}/spl/spl.ko                        \\
-        \${SPLBUILD}/splat/splat.ko                    \\
-)
-
-ZFS_MODULES=(                                         \\
-        \${MODDIR}/avl/zavl.ko                         \\
-        \${MODDIR}/nvpair/znvpair.ko                   \\
-        \${MODDIR}/unicode/zunicode.ko                 \\
-        \${MODDIR}/zcommon/zcommon.ko                  \\
-        \${MODDIR}/zfs/zfs.ko                          \\
-)
-
-ZPIOS_MODULES=(                                       \\
-        \${MODDIR}/zpios/zpios.ko                      \\
-)
-
-MODULES=(                                             \\
-        \${KERNEL_MODULES[[*]]}                          \\
-        \${SPL_MODULES[[*]]}                             \\
-        \${ZFS_MODULES[[*]]}                             \\
-)
-EOF
-])
-
 AC_DEFUN([ZFS_AC_CONFIG], [
-       TOPDIR=`readlink -f ${srcdir}`
-       BUILDDIR=$TOPDIR
-       LIBDIR=$TOPDIR/lib
-       CMDDIR=$TOPDIR/cmd
-       MODDIR=$TOPDIR/module
-       SCRIPTDIR=$TOPDIR/scripts
        TARGET_ASM_DIR=asm-generic
-
-       AC_SUBST(TOPDIR)
-       AC_SUBST(BUILDDIR)
-       AC_SUBST(LIBDIR)
-       AC_SUBST(CMDDIR)
-       AC_SUBST(MODDIR)
-       AC_SUBST(SCRIPTDIR)
        AC_SUBST(TARGET_ASM_DIR)
 
        ZFS_CONFIG=all
@@ -147,8 +65,6 @@ AC_DEFUN([ZFS_AC_CONFIG], [
        AM_CONDITIONAL([CONFIG_KERNEL],
                       [test "$ZFS_CONFIG" = kernel] ||
                       [test "$ZFS_CONFIG" = all])
-
-       ZFS_AC_CONFIG_SCRIPT
 ])
 
 dnl #
@@ -262,10 +178,10 @@ AC_DEFUN([ZFS_AC_DEFAULT_PACKAGE], [
                VENDOR=redhat ;
        elif test -f /etc/fedora-release ; then
                VENDOR=fedora ;
-       elif test -f /etc/debian_version ; then
-               VENDOR=debian ;
        elif test -f /etc/lsb-release ; then
                VENDOR=ubuntu ;
+       elif test -f /etc/debian_version ; then
+               VENDOR=debian ;
        elif test -f /etc/SuSE-release ; then
                VENDOR=sles ;
        elif test -f /etc/slackware-version ; then
index b10a240b7d48c3c31fc973adc8405fcd0a863cd7..f386dd8bd7c65809d3d90780ab119f3b164f2371 100755 (executable)
--- a/configure
+++ b/configure
@@ -809,12 +809,6 @@ LINUX_OBJ
 LINUX
 ZFS_CONFIG
 TARGET_ASM_DIR
-SCRIPTDIR
-MODDIR
-CMDDIR
-LIBDIR
-BUILDDIR
-TOPDIR
 DEFAULT_PACKAGE
 VENDOR
 ALIEN_VERSION
@@ -4823,13 +4817,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:4826: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:4820: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:4829: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:4823: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:4832: output\"" >&5)
+  (eval echo "\"\$as_me:4826: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -6035,7 +6029,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6038 "configure"' > conftest.$ac_ext
+  echo '#line 6032 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -7888,11 +7882,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7891: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7885: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7895: \$? = $ac_status" >&5
+   echo "$as_me:7889: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8227,11 +8221,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8230: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8224: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8234: \$? = $ac_status" >&5
+   echo "$as_me:8228: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8332,11 +8326,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8335: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8329: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8339: \$? = $ac_status" >&5
+   echo "$as_me:8333: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -8387,11 +8381,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8390: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8384: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8394: \$? = $ac_status" >&5
+   echo "$as_me:8388: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11190,7 +11184,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11193 "configure"
+#line 11187 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11286,7 +11280,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11289 "configure"
+#line 11283 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11787,10 +11781,10 @@ $as_echo_n "checking linux distribution... " >&6; }
                VENDOR=redhat ;
        elif test -f /etc/fedora-release ; then
                VENDOR=fedora ;
-       elif test -f /etc/debian_version ; then
-               VENDOR=debian ;
        elif test -f /etc/lsb-release ; then
                VENDOR=ubuntu ;
+       elif test -f /etc/debian_version ; then
+               VENDOR=debian ;
        elif test -f /etc/SuSE-release ; then
                VENDOR=sles ;
        elif test -f /etc/slackware-version ; then
@@ -11822,22 +11816,9 @@ $as_echo "$DEFAULT_PACKAGE" >&6; }
 
 
 
-       TOPDIR=`readlink -f ${srcdir}`
-       BUILDDIR=$TOPDIR
-       LIBDIR=$TOPDIR/lib
-       CMDDIR=$TOPDIR/cmd
-       MODDIR=$TOPDIR/module
-       SCRIPTDIR=$TOPDIR/scripts
        TARGET_ASM_DIR=asm-generic
 
 
-
-
-
-
-
-
-
        ZFS_CONFIG=all
 
 # Check whether --with-config was given.
@@ -12036,11 +12017,7 @@ $as_echo "$splsrc" >&6; }
        { $as_echo "$as_me:$LINENO: checking spl build directory" >&5
 $as_echo_n "checking spl build directory... " >&6; }
        if test -z "$splbuild"; then
-               if test -d ${splsrc}/module; then
-                       splbuild=${splsrc}/module
-               else
-                       splbuild=${splsrc}
-               fi
+               splbuild=${splsrc}
        fi
        { $as_echo "$as_me:$LINENO: result: $splbuild" >&5
 $as_echo "$splbuild" >&6; }
@@ -12086,6 +12063,10 @@ $as_echo_n "checking spl file name for module symbols... " >&6; }
                SPL_SYMBOLS=Module.symvers
        elif test -r $SPL_OBJ/Modules.symvers; then
                SPL_SYMBOLS=Modules.symvers
+       elif test -r $SPL_OBJ/module/Module.symvers; then
+               SPL_SYMBOLS=Module.symvers
+       elif test -r $SPL_OBJ/module/Modules.symvers; then
+               SPL_SYMBOLS=Modules.symvers
        else
                SPL_SYMBOLS=$LINUX_SYMBOLS
        fi
 
 
 
-                       KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\""
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -I$SPL"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -I$SPL/include"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -include $SPL/spl_config.h"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -include $TOPDIR/zfs_config.h"
-
        if test "$LINUX_OBJ" != "$LINUX"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
        fi
 
 
 
+                       KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
+       KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\""
+
+
  ;;
                user)
 
@@ -15042,11 +15020,7 @@ $as_echo "$splsrc" >&6; }
        { $as_echo "$as_me:$LINENO: checking spl build directory" >&5
 $as_echo_n "checking spl build directory... " >&6; }
        if test -z "$splbuild"; then
-               if test -d ${splsrc}/module; then
-                       splbuild=${splsrc}/module
-               else
-                       splbuild=${splsrc}
-               fi
+               splbuild=${splsrc}
        fi
        { $as_echo "$as_me:$LINENO: result: $splbuild" >&5
 $as_echo "$splbuild" >&6; }
@@ -15092,6 +15066,10 @@ $as_echo_n "checking spl file name for module symbols... " >&6; }
                SPL_SYMBOLS=Module.symvers
        elif test -r $SPL_OBJ/Modules.symvers; then
                SPL_SYMBOLS=Modules.symvers
+       elif test -r $SPL_OBJ/module/Module.symvers; then
+               SPL_SYMBOLS=Module.symvers
+       elif test -r $SPL_OBJ/module/Modules.symvers; then
+               SPL_SYMBOLS=Modules.symvers
        else
                SPL_SYMBOLS=$LINUX_SYMBOLS
        fi
 
 
 
-                       KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\""
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -I$SPL"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -I$SPL/include"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -include $SPL/spl_config.h"
-       KERNELCPPFLAGS="$KERNELCPPFLAGS -include $TOPDIR/zfs_config.h"
-
        if test "$LINUX_OBJ" != "$LINUX"; then
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
        fi
 
 
 
+                       KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
+       KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\""
+
+
 
 
 
 
 
 
-       cat >.script-config <<EOF
-KERNELSRC=${LINUX}
-KERNELBUILD=${LINUX_OBJ}
-KERNELSRCVER=${LINUX_VERSION}
-KERNELMOD=/lib/modules/\${KERNELSRCVER}/kernel
-
-SPLSRC=${SPL}
-SPLBUILD=${SPL_OBJ}
-SPLSRCVER=${SPL_VERSION}
-
-TOPDIR=${TOPDIR}
-BUILDDIR=${BUILDDIR}
-LIBDIR=${LIBDIR}
-CMDDIR=${CMDDIR}
-MODDIR=${MODDIR}
-SCRIPTDIR=${SCRIPTDIR}
-ETCDIR=\${TOPDIR}/etc
-DEVDIR=\${TOPDIR}/dev
-ZPOOLDIR=\${TOPDIR}/scripts/zpool-config
-ZPIOSDIR=\${TOPDIR}/scripts/zpios-test
-ZPIOSPROFILEDIR=\${TOPDIR}/scripts/zpios-profile
-
-ZDB=\${CMDDIR}/zdb/zdb
-ZFS=\${CMDDIR}/zfs/zfs
-ZINJECT=\${CMDDIR}/zinject/zinject
-ZPOOL=\${CMDDIR}/zpool/zpool
-ZPOOL_ID=\${CMDDIR}/zpool_id/zpool_id
-ZTEST=\${CMDDIR}/ztest/ztest
-ZPIOS=\${CMDDIR}/zpios/zpios
-
-COMMON_SH=\${SCRIPTDIR}/common.sh
-ZFS_SH=\${SCRIPTDIR}/zfs.sh
-ZPOOL_CREATE_SH=\${SCRIPTDIR}/zpool-create.sh
-ZPIOS_SH=\${SCRIPTDIR}/zpios.sh
-ZPIOS_SURVEY_SH=\${SCRIPTDIR}/zpios-survey.sh
-
-INTREE=1
-LDMOD=/sbin/insmod
-
-KERNEL_MODULES=(                                      \\
-        \${KERNELMOD}/lib/zlib_deflate/zlib_deflate.ko \\
-)
-
-SPL_MODULES=(                                         \\
-        \${SPLBUILD}/spl/spl.ko                        \\
-        \${SPLBUILD}/splat/splat.ko                    \\
-)
-
-ZFS_MODULES=(                                         \\
-        \${MODDIR}/avl/zavl.ko                         \\
-        \${MODDIR}/nvpair/znvpair.ko                   \\
-        \${MODDIR}/unicode/zunicode.ko                 \\
-        \${MODDIR}/zcommon/zcommon.ko                  \\
-        \${MODDIR}/zfs/zfs.ko                          \\
-)
-
-ZPIOS_MODULES=(                                       \\
-        \${MODDIR}/zpios/zpios.ko                      \\
-)
-
-MODULES=(                                             \\
-        \${KERNEL_MODULES[*]}                          \\
-        \${SPL_MODULES[*]}                             \\
-        \${ZFS_MODULES[*]}                             \\
-)
-EOF
-
-
-
        { $as_echo "$as_me:$LINENO: checking whether debugging is enabled" >&5
 $as_echo_n "checking whether debugging is enabled... " >&6; }
        # Check whether --enable-debug was given.
@@ -17998,7 +17904,7 @@ fi
 $as_echo "$enable_debug" >&6; }
 
 
-ac_config_files="$ac_config_files Makefile config/Makefile etc/Makefile man/Makefile man/man8/Makefile lib/Makefile lib/libspl/Makefile lib/libspl/asm-generic/Makefile lib/libspl/asm-i386/Makefile lib/libspl/asm-x86_64/Makefile lib/libspl/include/Makefile lib/libavl/Makefile lib/libefi/Makefile lib/libnvpair/Makefile lib/libunicode/Makefile lib/libuutil/Makefile lib/libzpool/Makefile lib/libzpool/include/Makefile lib/libzfs/Makefile cmd/Makefile cmd/zdb/Makefile cmd/zfs/Makefile cmd/zinject/Makefile cmd/zpool/Makefile cmd/zpool_id/Makefile cmd/zpool_layout/Makefile cmd/ztest/Makefile cmd/zpios/Makefile module/Makefile module/avl/Makefile module/nvpair/Makefile module/unicode/Makefile module/zcommon/Makefile module/zfs/Makefile module/zpios/Makefile scripts/Makefile scripts/common.sh zfs.spec zfs-modules.spec"
+ac_config_files="$ac_config_files Makefile etc/Makefile man/Makefile man/man8/Makefile lib/Makefile lib/libspl/Makefile lib/libspl/asm-generic/Makefile lib/libspl/asm-i386/Makefile lib/libspl/asm-x86_64/Makefile lib/libspl/include/Makefile lib/libspl/include/ia32/Makefile lib/libspl/include/ia32/sys/Makefile lib/libspl/include/rpc/Makefile lib/libspl/include/sys/Makefile lib/libspl/include/sys/sysevent/Makefile lib/libspl/include/sys/dktp/Makefile lib/libspl/include/util/Makefile lib/libavl/Makefile lib/libefi/Makefile lib/libnvpair/Makefile lib/libunicode/Makefile lib/libuutil/Makefile lib/libzpool/Makefile lib/libzfs/Makefile cmd/Makefile cmd/zdb/Makefile cmd/zfs/Makefile cmd/zinject/Makefile cmd/zpool/Makefile cmd/zpool_id/Makefile cmd/zpool_layout/Makefile cmd/ztest/Makefile cmd/zpios/Makefile module/Makefile module/avl/Makefile module/nvpair/Makefile module/unicode/Makefile module/zcommon/Makefile module/zfs/Makefile module/zpios/Makefile include/Makefile include/sys/Makefile include/sys/fs/Makefile include/sys/fm/Makefile include/sys/fm/fs/Makefile scripts/Makefile scripts/zpios-profile/Makefile scripts/zpios-test/Makefile scripts/zpool-config/Makefile scripts/common.sh zfs.spec zfs-modules.spec zfs-script-config.sh"
 
 
 cat >confcache <<\_ACEOF
@@ -18915,7 +18821,6 @@ do
     "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
     "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "config/Makefile") CONFIG_FILES="$CONFIG_FILES config/Makefile" ;;
     "etc/Makefile") CONFIG_FILES="$CONFIG_FILES etc/Makefile" ;;
     "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
     "man/man8/Makefile") CONFIG_FILES="$CONFIG_FILES man/man8/Makefile" ;;
     "lib/libspl/asm-i386/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libspl/asm-i386/Makefile" ;;
     "lib/libspl/asm-x86_64/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libspl/asm-x86_64/Makefile" ;;
     "lib/libspl/include/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libspl/include/Makefile" ;;
+    "lib/libspl/include/ia32/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libspl/include/ia32/Makefile" ;;
+    "lib/libspl/include/ia32/sys/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libspl/include/ia32/sys/Makefile" ;;
+    "lib/libspl/include/rpc/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libspl/include/rpc/Makefile" ;;
+    "lib/libspl/include/sys/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libspl/include/sys/Makefile" ;;
+    "lib/libspl/include/sys/sysevent/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libspl/include/sys/sysevent/Makefile" ;;
+    "lib/libspl/include/sys/dktp/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libspl/include/sys/dktp/Makefile" ;;
+    "lib/libspl/include/util/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libspl/include/util/Makefile" ;;
     "lib/libavl/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libavl/Makefile" ;;
     "lib/libefi/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libefi/Makefile" ;;
     "lib/libnvpair/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libnvpair/Makefile" ;;
     "lib/libunicode/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libunicode/Makefile" ;;
     "lib/libuutil/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libuutil/Makefile" ;;
     "lib/libzpool/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libzpool/Makefile" ;;
-    "lib/libzpool/include/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libzpool/include/Makefile" ;;
     "lib/libzfs/Makefile") CONFIG_FILES="$CONFIG_FILES lib/libzfs/Makefile" ;;
     "cmd/Makefile") CONFIG_FILES="$CONFIG_FILES cmd/Makefile" ;;
     "cmd/zdb/Makefile") CONFIG_FILES="$CONFIG_FILES cmd/zdb/Makefile" ;;
     "module/zcommon/Makefile") CONFIG_FILES="$CONFIG_FILES module/zcommon/Makefile" ;;
     "module/zfs/Makefile") CONFIG_FILES="$CONFIG_FILES module/zfs/Makefile" ;;
     "module/zpios/Makefile") CONFIG_FILES="$CONFIG_FILES module/zpios/Makefile" ;;
+    "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
+    "include/sys/Makefile") CONFIG_FILES="$CONFIG_FILES include/sys/Makefile" ;;
+    "include/sys/fs/Makefile") CONFIG_FILES="$CONFIG_FILES include/sys/fs/Makefile" ;;
+    "include/sys/fm/Makefile") CONFIG_FILES="$CONFIG_FILES include/sys/fm/Makefile" ;;
+    "include/sys/fm/fs/Makefile") CONFIG_FILES="$CONFIG_FILES include/sys/fm/fs/Makefile" ;;
     "scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;;
+    "scripts/zpios-profile/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/zpios-profile/Makefile" ;;
+    "scripts/zpios-test/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/zpios-test/Makefile" ;;
+    "scripts/zpool-config/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/zpool-config/Makefile" ;;
     "scripts/common.sh") CONFIG_FILES="$CONFIG_FILES scripts/common.sh" ;;
     "zfs.spec") CONFIG_FILES="$CONFIG_FILES zfs.spec" ;;
     "zfs-modules.spec") CONFIG_FILES="$CONFIG_FILES zfs-modules.spec" ;;
+    "zfs-script-config.sh") CONFIG_FILES="$CONFIG_FILES zfs-script-config.sh" ;;
 
   *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
@@ -19609,7 +19529,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
   case $ac_file$ac_mode in
     "zfs_config.h":H)
        (mv zfs_config.h zfs_config.h.tmp &&
-       awk -f config/config.awk zfs_config.h.tmp >zfs_config.h &&
+       awk -f ${ac_srcdir}/config/config.awk zfs_config.h.tmp >zfs_config.h &&
        rm zfs_config.h.tmp) || exit 1 ;;
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
   # Autoconf 2.62 quotes --file arguments for eval, but not when files
index 3963d231c5b11432266c8ba542f52ac4ac93462a..d42b0c9f55d1006dab2b496833021d5f17c35f74 100644 (file)
@@ -40,7 +40,7 @@ AM_SILENT_RULES
 AM_INIT_AUTOMAKE([$ZFS_META_NAME], [$ZFS_META_VERSION])
 AC_CONFIG_HEADERS([zfs_config.h], [
        (mv zfs_config.h zfs_config.h.tmp &&
-       awk -f config/config.awk zfs_config.h.tmp >zfs_config.h &&
+       awk -f ${ac_srcdir}/config/config.awk zfs_config.h.tmp >zfs_config.h &&
        rm zfs_config.h.tmp) || exit 1])
 
 AC_PROG_INSTALL
@@ -55,7 +55,6 @@ ZFS_AC_DEBUG
 
 AC_CONFIG_FILES([ 
        Makefile
-       config/Makefile
        etc/Makefile
        man/Makefile
        man/man8/Makefile
@@ -65,13 +64,19 @@ AC_CONFIG_FILES([
        lib/libspl/asm-i386/Makefile
        lib/libspl/asm-x86_64/Makefile
        lib/libspl/include/Makefile
+       lib/libspl/include/ia32/Makefile
+       lib/libspl/include/ia32/sys/Makefile
+       lib/libspl/include/rpc/Makefile
+       lib/libspl/include/sys/Makefile
+       lib/libspl/include/sys/sysevent/Makefile
+       lib/libspl/include/sys/dktp/Makefile
+       lib/libspl/include/util/Makefile
        lib/libavl/Makefile
        lib/libefi/Makefile
        lib/libnvpair/Makefile
        lib/libunicode/Makefile
        lib/libuutil/Makefile
        lib/libzpool/Makefile
-       lib/libzpool/include/Makefile
        lib/libzfs/Makefile
        cmd/Makefile
        cmd/zdb/Makefile
@@ -89,10 +94,19 @@ AC_CONFIG_FILES([
        module/zcommon/Makefile
        module/zfs/Makefile
        module/zpios/Makefile
+       include/Makefile
+       include/sys/Makefile
+       include/sys/fs/Makefile
+       include/sys/fm/Makefile
+       include/sys/fm/fs/Makefile
        scripts/Makefile
+       scripts/zpios-profile/Makefile
+       scripts/zpios-test/Makefile
+       scripts/zpool-config/Makefile
        scripts/common.sh
        zfs.spec
        zfs-modules.spec
+       zfs-script-config.sh
 ])
 
 AC_OUTPUT
index 1bc847d1a28c02769cd8f08704c7caca6fbf6464..87349f59996fbce22444f42be15a873b6f152bb2 100644 (file)
@@ -1,3 +1,3 @@
 sysconfdir = /etc
-nobase_dist_sysconf_DATA  = zfs/*
-nobase_dist_sysconf_DATA += udev/rules.d/*
+nobase_dist_sysconf_DATA  = $(top_srcdir)/etc/zfs/*
+nobase_dist_sysconf_DATA += $(top_srcdir)/etc/udev/rules.d/*
index 145b9f574c000f8b3b0db8c0a7c825d84b013e63..f5835b395afb25f5d5b810ef47063e92421fb707 100644 (file)
@@ -117,14 +117,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -162,7 +160,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -177,7 +174,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -196,7 +192,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -206,7 +201,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -277,7 +271,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-nobase_dist_sysconf_DATA = zfs/* udev/rules.d/*
+nobase_dist_sysconf_DATA = $(top_srcdir)/etc/zfs/* \
+       $(top_srcdir)/etc/udev/rules.d/*
 all: all-am
 
 .SUFFIXES:
diff --git a/include/Makefile.am b/include/Makefile.am
new file mode 100644 (file)
index 0000000..0926c6a
--- /dev/null
@@ -0,0 +1,32 @@
+SUBDIRS = sys
+
+COMMON_H = \
+       $(top_srcdir)/include/zfs_comutil.h \
+       $(top_srcdir)/include/zfs_deleg.h \
+       $(top_srcdir)/include/zfs_fletcher.h \
+       $(top_srcdir)/include/zfs_namecheck.h \
+       $(top_srcdir)/include/zfs_prop.h \
+       $(top_srcdir)/include/zpios-ctl.h
+
+KERNEL_H = \
+       $(top_srcdir)/include/zpios-internal.h
+
+USER_H = \
+       $(top_srcdir)/include/libnvpair.h \
+       $(top_srcdir)/include/libuutil_common.h \
+       $(top_srcdir)/include/libuutil.h \
+       $(top_srcdir)/include/libuutil_impl.h \
+       $(top_srcdir)/include/libzfs.h \
+       $(top_srcdir)/include/libzfs_impl.h
+
+EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+
+if CONFIG_USER
+libzfsdir = $(includedir)/libzfs
+libzfs_HEADERS = $(COMMON_H) $(USER_H)
+endif
+
+if CONFIG_KERNEL
+kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION)
+kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+endif
diff --git a/include/Makefile.in b/include/Makefile.in
new file mode 100644 (file)
index 0000000..6c351a8
--- /dev/null
@@ -0,0 +1,752 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = include
+DIST_COMMON = $(am__kernel_HEADERS_DIST) $(am__libzfs_HEADERS_DIST) \
+       $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+am__kernel_HEADERS_DIST = $(top_srcdir)/include/zfs_comutil.h \
+       $(top_srcdir)/include/zfs_deleg.h \
+       $(top_srcdir)/include/zfs_fletcher.h \
+       $(top_srcdir)/include/zfs_namecheck.h \
+       $(top_srcdir)/include/zfs_prop.h \
+       $(top_srcdir)/include/zpios-ctl.h \
+       $(top_srcdir)/include/zpios-internal.h
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(kerneldir)" "$(DESTDIR)$(libzfsdir)"
+am__libzfs_HEADERS_DIST = $(top_srcdir)/include/zfs_comutil.h \
+       $(top_srcdir)/include/zfs_deleg.h \
+       $(top_srcdir)/include/zfs_fletcher.h \
+       $(top_srcdir)/include/zfs_namecheck.h \
+       $(top_srcdir)/include/zfs_prop.h \
+       $(top_srcdir)/include/zpios-ctl.h \
+       $(top_srcdir)/include/libnvpair.h \
+       $(top_srcdir)/include/libuutil_common.h \
+       $(top_srcdir)/include/libuutil.h \
+       $(top_srcdir)/include/libuutil_impl.h \
+       $(top_srcdir)/include/libzfs.h \
+       $(top_srcdir)/include/libzfs_impl.h
+HEADERS = $(kernel_HEADERS) $(libzfs_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = sys
+COMMON_H = \
+       $(top_srcdir)/include/zfs_comutil.h \
+       $(top_srcdir)/include/zfs_deleg.h \
+       $(top_srcdir)/include/zfs_fletcher.h \
+       $(top_srcdir)/include/zfs_namecheck.h \
+       $(top_srcdir)/include/zfs_prop.h \
+       $(top_srcdir)/include/zpios-ctl.h
+
+KERNEL_H = \
+       $(top_srcdir)/include/zpios-internal.h
+
+USER_H = \
+       $(top_srcdir)/include/libnvpair.h \
+       $(top_srcdir)/include/libuutil_common.h \
+       $(top_srcdir)/include/libuutil.h \
+       $(top_srcdir)/include/libuutil_impl.h \
+       $(top_srcdir)/include/libzfs.h \
+       $(top_srcdir)/include/libzfs_impl.h
+
+EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+@CONFIG_USER_TRUE@libzfsdir = $(includedir)/libzfs
+@CONFIG_USER_TRUE@libzfs_HEADERS = $(COMMON_H) $(USER_H)
+@CONFIG_KERNEL_TRUE@kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION)
+@CONFIG_KERNEL_TRUE@kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu include/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-kernelHEADERS: $(kernel_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(kerneldir)" || $(MKDIR_P) "$(DESTDIR)$(kerneldir)"
+       @list='$(kernel_HEADERS)'; test -n "$(kerneldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(kerneldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(kerneldir)" || exit $$?; \
+       done
+
+uninstall-kernelHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(kernel_HEADERS)'; test -n "$(kerneldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(kerneldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(kerneldir)" && rm -f $$files
+install-libzfsHEADERS: $(libzfs_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libzfsdir)" || $(MKDIR_P) "$(DESTDIR)$(libzfsdir)"
+       @list='$(libzfs_HEADERS)'; test -n "$(libzfsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libzfsdir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libzfsdir)" || exit $$?; \
+       done
+
+uninstall-libzfsHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libzfs_HEADERS)'; test -n "$(libzfsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libzfsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libzfsdir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+       for dir in "$(DESTDIR)$(kerneldir)" "$(DESTDIR)$(libzfsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-kernelHEADERS install-libzfsHEADERS
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-kernelHEADERS uninstall-libzfsHEADERS
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       ctags ctags-recursive distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-kernelHEADERS install-libzfsHEADERS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+       uninstall uninstall-am uninstall-kernelHEADERS \
+       uninstall-libzfsHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/include/libnvpair.h b/include/libnvpair.h
new file mode 100644 (file)
index 0000000..4c2615d
--- /dev/null
@@ -0,0 +1,194 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _LIBNVPAIR_H
+#define        _LIBNVPAIR_H
+
+#include <sys/nvpair.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <regex.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * All interfaces described in this file are private to Solaris, and
+ * are subject to change at any time and without notice.  The public
+ * nvlist/nvpair interfaces, as documented in manpage sections 3NVPAIR,
+ * are all imported from <sys/nvpair.h> included above.
+ */
+
+extern int nvpair_value_match(nvpair_t *, int, char *, char **);
+extern int nvpair_value_match_regex(nvpair_t *, int, char *, regex_t *,
+    char **);
+
+extern void nvlist_print(FILE *, nvlist_t *);
+extern void dump_nvlist(nvlist_t *, int);
+
+/*
+ * Private nvlist printing interface that allows the caller some control
+ * over output rendering (as opposed to nvlist_print and dump_nvlist).
+ *
+ * Obtain an opaque nvlist_prtctl_t cookie using nvlist_prtctl_alloc
+ * (NULL on failure);  on return the cookie is set up for default formatting
+ * and rendering.  Quote the cookie in subsequent customisation functions and
+ * then pass the cookie to nvlist_prt to render the nvlist.  Finally,
+ * use nvlist_prtctl_free to release the cookie.
+ *
+ * For all nvlist_lookup_xxx and nvlist_lookup_xxx_array functions
+ * we have a corresponding brace of functions that appoint replacement
+ * rendering functions:
+ *
+ *     extern void nvlist_prtctl_xxx(nvlist_prtctl_t,
+ *         void (*)(nvlist_prtctl_t ctl, void *private, const char *name,
+ *         xxxtype value))
+ *
+ *     and
+ *
+ *     extern void nvlist_prtctl_xxx_array(nvlist_prtctl_t,
+ *         void (*)(nvlist_prtctl_t ctl, void *private, const char *name,
+ *         xxxtype value, uint_t count))
+ *
+ * where xxxtype is the C datatype corresponding to xxx, eg int8_t for "int8"
+ * and char * for "string".  The function that is appointed to render the
+ * specified datatype receives as arguments the cookie, the nvlist
+ * member name, the value of that member (or a pointer for array function),
+ * and (for array rendering functions) a count of the number of elements.
+ */
+
+typedef struct nvlist_prtctl *nvlist_prtctl_t; /* opaque */
+
+enum nvlist_indent_mode {
+       NVLIST_INDENT_ABS,      /* Absolute indentation */
+       NVLIST_INDENT_TABBED    /* Indent with tabstops */
+};
+
+extern nvlist_prtctl_t nvlist_prtctl_alloc(void);
+extern void nvlist_prtctl_free(nvlist_prtctl_t);
+extern void nvlist_prt(nvlist_t *, nvlist_prtctl_t);
+
+/* Output stream */
+extern void nvlist_prtctl_setdest(nvlist_prtctl_t, FILE *);
+extern FILE *nvlist_prtctl_getdest(nvlist_prtctl_t);
+
+/* Indentation mode, start indent, indent increment; default tabbed/0/1 */
+extern void nvlist_prtctl_setindent(nvlist_prtctl_t, enum nvlist_indent_mode,
+    int, int);
+extern void nvlist_prtctl_doindent(nvlist_prtctl_t, int);
+
+enum nvlist_prtctl_fmt {
+       NVLIST_FMT_MEMBER_NAME,         /* name fmt; default "%s = " */
+       NVLIST_FMT_MEMBER_POSTAMBLE,    /* after nvlist member; default "\n" */
+       NVLIST_FMT_BTWN_ARRAY           /* between array members; default " " */
+};
+
+extern void nvlist_prtctl_setfmt(nvlist_prtctl_t, enum nvlist_prtctl_fmt,
+    const char *);
+extern void nvlist_prtctl_dofmt(nvlist_prtctl_t, enum nvlist_prtctl_fmt, ...);
+
+/*
+ * Function prototypes for interfaces that appoint a new rendering function
+ * for single-valued nvlist members.
+ *
+ * A replacement function receives arguments as follows:
+ *
+ *     nvlist_prtctl_t Print control structure; do not change preferences
+ *                     for this object from a print callback function.
+ *
+ *     void *          The function-private cookie argument registered
+ *                     when the replacement function was appointed.
+ *
+ *     nvlist_t *      The full nvlist that is being processed.  The
+ *                     rendering function is called to render a single
+ *                     member (name and value passed as below) but it may
+ *                     want to reference or incorporate other aspects of
+ *                     the full nvlist.
+ *
+ *     const char *    Member name to render
+ *
+ *     valtype         Value of the member to render
+ *
+ * The function must return non-zero if it has rendered output for this
+ * member, or 0 if it wants to default to standard rendering for this
+ * one member.
+ */
+
+#define        NVLIST_PRINTCTL_SVDECL(funcname, valtype) \
+    extern void funcname(nvlist_prtctl_t, \
+    int (*)(nvlist_prtctl_t, void *, nvlist_t *, const char *, valtype), \
+    void *)
+
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_boolean, int);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_boolean_value, boolean_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_byte, uchar_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_int8, int8_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_uint8, uint8_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_int16, int16_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_uint16, uint16_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_int32, int32_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_uint32, uint32_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_int64, int64_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_uint64, uint64_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_double, double);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_string, char *);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_hrtime, hrtime_t);
+NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_nvlist, nvlist_t *);
+
+#undef NVLIST_PRINTCTL_SVDECL  /* was just for "clarity" above */
+
+/*
+ * Function prototypes for interfaces that appoint a new rendering function
+ * for array-valued nvlist members.
+ *
+ * One additional argument is taken: uint_t for the number of array elements
+ *
+ * Return values as above.
+ */
+#define        NVLIST_PRINTCTL_AVDECL(funcname, vtype) \
+    extern void funcname(nvlist_prtctl_t, \
+    int (*)(nvlist_prtctl_t, void *, nvlist_t *, const char *, vtype, uint_t), \
+    void *)
+
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_boolean_array, boolean_t *);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_byte_array, uchar_t *);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_int8_array, int8_t *);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_uint8_array, uint8_t *);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_int16_array, int16_t *);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_uint16_array, uint16_t *);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_int32_array, int32_t *);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_uint32_array, uint32_t *);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_int64_array, int64_t *);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_uint64_array, uint64_t *);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_string_array, char **);
+NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_nvlist_array, nvlist_t **);
+
+#undef NVLIST_PRINTCTL_AVDECL  /* was just for "clarity" above */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LIBNVPAIR_H */
diff --git a/include/libuutil.h b/include/libuutil.h
new file mode 100644 (file)
index 0000000..6675424
--- /dev/null
@@ -0,0 +1,390 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _LIBUUTIL_H
+#define        _LIBUUTIL_H
+
+#include <sys/types.h>
+#include <stdarg.h>
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Standard flags codes.
+ */
+#define        UU_DEFAULT              0
+
+/*
+ * Standard error codes.
+ */
+#define        UU_ERROR_NONE           0       /* no error */
+#define        UU_ERROR_INVALID_ARGUMENT 1     /* invalid argument */
+#define        UU_ERROR_UNKNOWN_FLAG   2       /* passed flag invalid */
+#define        UU_ERROR_NO_MEMORY      3       /* out of memory */
+#define        UU_ERROR_CALLBACK_FAILED 4      /* callback-initiated error */
+#define        UU_ERROR_NOT_SUPPORTED  5       /* operation not supported */
+#define        UU_ERROR_EMPTY          6       /* no value provided */
+#define        UU_ERROR_UNDERFLOW      7       /* value is too small */
+#define        UU_ERROR_OVERFLOW       8       /* value is too value */
+#define        UU_ERROR_INVALID_CHAR   9       /* value contains unexpected char */
+#define        UU_ERROR_INVALID_DIGIT  10      /* value contains digit not in base */
+
+#define        UU_ERROR_SYSTEM         99      /* underlying system error */
+#define        UU_ERROR_UNKNOWN        100     /* error status not known */
+
+/*
+ * Standard program exit codes.
+ */
+#define        UU_EXIT_OK      (*(uu_exit_ok()))
+#define        UU_EXIT_FATAL   (*(uu_exit_fatal()))
+#define        UU_EXIT_USAGE   (*(uu_exit_usage()))
+
+/*
+ * Exit status profiles.
+ */
+#define        UU_PROFILE_DEFAULT      0
+#define        UU_PROFILE_LAUNCHER     1
+
+/*
+ * Error reporting functions.
+ */
+uint32_t uu_error(void);
+const char *uu_strerror(uint32_t);
+
+/*
+ * Program notification functions.
+ */
+extern void uu_alt_exit(int);
+extern const char *uu_setpname(char *);
+extern const char *uu_getpname(void);
+/*PRINTFLIKE1*/
+extern void uu_warn(const char *, ...);
+extern void uu_vwarn(const char *, va_list);
+/*PRINTFLIKE1*/
+extern void uu_die(const char *, ...) __NORETURN;
+extern void uu_vdie(const char *, va_list) __NORETURN;
+/*PRINTFLIKE2*/
+extern void uu_xdie(int, const char *, ...) __NORETURN;
+extern void uu_vxdie(int, const char *, va_list) __NORETURN;
+
+/*
+ * Exit status functions (not to be used directly)
+ */
+extern int *uu_exit_ok(void);
+extern int *uu_exit_fatal(void);
+extern int *uu_exit_usage(void);
+
+/*
+ * string->number conversions
+ */
+extern int uu_strtoint(const char *, void *, size_t, int, int64_t, int64_t);
+extern int uu_strtouint(const char *, void *, size_t, int, uint64_t, uint64_t);
+
+/*
+ * Debug print facility functions.
+ */
+typedef struct uu_dprintf uu_dprintf_t;
+
+typedef enum {
+       UU_DPRINTF_SILENT,
+       UU_DPRINTF_FATAL,
+       UU_DPRINTF_WARNING,
+       UU_DPRINTF_NOTICE,
+       UU_DPRINTF_INFO,
+       UU_DPRINTF_DEBUG
+} uu_dprintf_severity_t;
+
+extern uu_dprintf_t *uu_dprintf_create(const char *, uu_dprintf_severity_t,
+    uint_t);
+/*PRINTFLIKE3*/
+extern void uu_dprintf(uu_dprintf_t *, uu_dprintf_severity_t,
+    const char *, ...);
+extern void uu_dprintf_destroy(uu_dprintf_t *);
+extern const char *uu_dprintf_getname(uu_dprintf_t *);
+
+/*
+ * Identifier test flags and function.
+ */
+#define        UU_NAME_DOMAIN          0x1     /* allow SUNW, or com.sun, prefix */
+#define        UU_NAME_PATH            0x2     /* allow '/'-delimited paths */
+
+int uu_check_name(const char *, uint_t);
+
+/*
+ * File creation functions.
+ */
+extern int uu_open_tmp(const char *dir, uint_t uflags);
+
+/*
+ * Convenience functions.
+ */
+#define        UU_NELEM(a)     (sizeof (a) / sizeof ((a)[0]))
+
+/*PRINTFLIKE1*/
+extern char *uu_msprintf(const char *format, ...);
+extern void *uu_zalloc(size_t);
+extern char *uu_strdup(const char *);
+extern void uu_free(void *);
+
+extern boolean_t uu_strcaseeq(const char *a, const char *b);
+extern boolean_t uu_streq(const char *a, const char *b);
+extern char *uu_strndup(const char *s, size_t n);
+extern boolean_t uu_strbw(const char *a, const char *b);
+extern void *uu_memdup(const void *buf, size_t sz);
+extern void uu_dump(FILE *out, const char *prefix, const void *buf, size_t len);
+
+/*
+ * Comparison function type definition.
+ *   Developers should be careful in their use of the _private argument. If you
+ *   break interface guarantees, you get undefined behavior.
+ */
+typedef int uu_compare_fn_t(const void *__left, const void *__right,
+    void *__private);
+
+/*
+ * Walk variant flags.
+ *   A data structure need not provide support for all variants and
+ *   combinations.  Refer to the appropriate documentation.
+ */
+#define        UU_WALK_ROBUST          0x00000001      /* walk can survive removes */
+#define        UU_WALK_REVERSE         0x00000002      /* reverse walk order */
+
+#define        UU_WALK_PREORDER        0x00000010      /* walk tree in pre-order */
+#define        UU_WALK_POSTORDER       0x00000020      /* walk tree in post-order */
+
+/*
+ * Walk callback function return codes.
+ */
+#define        UU_WALK_ERROR           -1
+#define        UU_WALK_NEXT            0
+#define        UU_WALK_DONE            1
+
+/*
+ * Walk callback function type definition.
+ */
+typedef int uu_walk_fn_t(void *_elem, void *_private);
+
+/*
+ * lists: opaque structures
+ */
+typedef struct uu_list_pool uu_list_pool_t;
+typedef struct uu_list uu_list_t;
+
+typedef struct uu_list_node {
+       uintptr_t uln_opaque[2];
+} uu_list_node_t;
+
+typedef struct uu_list_walk uu_list_walk_t;
+
+typedef uintptr_t uu_list_index_t;
+
+/*
+ * lists: interface
+ *
+ * basic usage:
+ *     typedef struct foo {
+ *             ...
+ *             uu_list_node_t foo_node;
+ *             ...
+ *     } foo_t;
+ *
+ *     static int
+ *     foo_compare(void *l_arg, void *r_arg, void *private)
+ *     {
+ *             foo_t *l = l_arg;
+ *             foo_t *r = r_arg;
+ *
+ *             if (... l greater than r ...)
+ *                     return (1);
+ *             if (... l less than r ...)
+ *                     return (-1);
+ *             return (0);
+ *     }
+ *
+ *     ...
+ *             // at initialization time
+ *             foo_pool = uu_list_pool_create("foo_pool",
+ *                 sizeof (foo_t), offsetof(foo_t, foo_node), foo_compare,
+ *                 debugging? 0 : UU_AVL_POOL_DEBUG);
+ *     ...
+ */
+uu_list_pool_t *uu_list_pool_create(const char *, size_t, size_t,
+    uu_compare_fn_t *, uint32_t);
+#define        UU_LIST_POOL_DEBUG      0x00000001
+
+void uu_list_pool_destroy(uu_list_pool_t *);
+
+/*
+ * usage:
+ *
+ *     foo_t *a;
+ *     a = malloc(sizeof(*a));
+ *     uu_list_node_init(a, &a->foo_list, pool);
+ *     ...
+ *     uu_list_node_fini(a, &a->foo_list, pool);
+ *     free(a);
+ */
+void uu_list_node_init(void *, uu_list_node_t *, uu_list_pool_t *);
+void uu_list_node_fini(void *, uu_list_node_t *, uu_list_pool_t *);
+
+uu_list_t *uu_list_create(uu_list_pool_t *, void *_parent, uint32_t);
+#define        UU_LIST_DEBUG   0x00000001
+#define        UU_LIST_SORTED  0x00000002      /* list is sorted */
+
+void uu_list_destroy(uu_list_t *);     /* list must be empty */
+
+size_t uu_list_numnodes(uu_list_t *);
+
+void *uu_list_first(uu_list_t *);
+void *uu_list_last(uu_list_t *);
+
+void *uu_list_next(uu_list_t *, void *);
+void *uu_list_prev(uu_list_t *, void *);
+
+int uu_list_walk(uu_list_t *, uu_walk_fn_t *, void *, uint32_t);
+
+uu_list_walk_t *uu_list_walk_start(uu_list_t *, uint32_t);
+void *uu_list_walk_next(uu_list_walk_t *);
+void uu_list_walk_end(uu_list_walk_t *);
+
+void *uu_list_find(uu_list_t *, void *, void *, uu_list_index_t *);
+void uu_list_insert(uu_list_t *, void *, uu_list_index_t);
+
+void *uu_list_nearest_next(uu_list_t *, uu_list_index_t);
+void *uu_list_nearest_prev(uu_list_t *, uu_list_index_t);
+
+void *uu_list_teardown(uu_list_t *, void **);
+
+void uu_list_remove(uu_list_t *, void *);
+
+/*
+ * lists: interfaces for non-sorted lists only
+ */
+int uu_list_insert_before(uu_list_t *, void *_target, void *_elem);
+int uu_list_insert_after(uu_list_t *, void *_target, void *_elem);
+
+/*
+ * avl trees: opaque structures
+ */
+typedef struct uu_avl_pool uu_avl_pool_t;
+typedef struct uu_avl uu_avl_t;
+
+typedef struct uu_avl_node {
+#ifdef _LP64
+       uintptr_t uan_opaque[3];
+#else
+       uintptr_t uan_opaque[4];
+#endif
+} uu_avl_node_t;
+
+typedef struct uu_avl_walk uu_avl_walk_t;
+
+typedef uintptr_t uu_avl_index_t;
+
+/*
+ * avl trees: interface
+ *
+ * basic usage:
+ *     typedef struct foo {
+ *             ...
+ *             uu_avl_node_t foo_node;
+ *             ...
+ *     } foo_t;
+ *
+ *     static int
+ *     foo_compare(void *l_arg, void *r_arg, void *private)
+ *     {
+ *             foo_t *l = l_arg;
+ *             foo_t *r = r_arg;
+ *
+ *             if (... l greater than r ...)
+ *                     return (1);
+ *             if (... l less than r ...)
+ *                     return (-1);
+ *             return (0);
+ *     }
+ *
+ *     ...
+ *             // at initialization time
+ *             foo_pool = uu_avl_pool_create("foo_pool",
+ *                 sizeof (foo_t), offsetof(foo_t, foo_node), foo_compare,
+ *                 debugging? 0 : UU_AVL_POOL_DEBUG);
+ *     ...
+ */
+uu_avl_pool_t *uu_avl_pool_create(const char *, size_t, size_t,
+    uu_compare_fn_t *, uint32_t);
+#define        UU_AVL_POOL_DEBUG       0x00000001
+
+void uu_avl_pool_destroy(uu_avl_pool_t *);
+
+/*
+ * usage:
+ *
+ *     foo_t *a;
+ *     a = malloc(sizeof(*a));
+ *     uu_avl_node_init(a, &a->foo_avl, pool);
+ *     ...
+ *     uu_avl_node_fini(a, &a->foo_avl, pool);
+ *     free(a);
+ */
+void uu_avl_node_init(void *, uu_avl_node_t *, uu_avl_pool_t *);
+void uu_avl_node_fini(void *, uu_avl_node_t *, uu_avl_pool_t *);
+
+uu_avl_t *uu_avl_create(uu_avl_pool_t *, void *_parent, uint32_t);
+#define        UU_AVL_DEBUG    0x00000001
+
+void uu_avl_destroy(uu_avl_t *);       /* list must be empty */
+
+size_t uu_avl_numnodes(uu_avl_t *);
+
+void *uu_avl_first(uu_avl_t *);
+void *uu_avl_last(uu_avl_t *);
+
+void *uu_avl_next(uu_avl_t *, void *);
+void *uu_avl_prev(uu_avl_t *, void *);
+
+int uu_avl_walk(uu_avl_t *, uu_walk_fn_t *, void *, uint32_t);
+
+uu_avl_walk_t *uu_avl_walk_start(uu_avl_t *, uint32_t);
+void *uu_avl_walk_next(uu_avl_walk_t *);
+void uu_avl_walk_end(uu_avl_walk_t *);
+
+void *uu_avl_find(uu_avl_t *, void *, void *, uu_avl_index_t *);
+void uu_avl_insert(uu_avl_t *, void *, uu_avl_index_t);
+
+void *uu_avl_nearest_next(uu_avl_t *, uu_avl_index_t);
+void *uu_avl_nearest_prev(uu_avl_t *, uu_avl_index_t);
+
+void *uu_avl_teardown(uu_avl_t *, void **);
+
+void uu_avl_remove(uu_avl_t *, void *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LIBUUTIL_H */
diff --git a/include/libuutil_common.h b/include/libuutil_common.h
new file mode 100644 (file)
index 0000000..52ac488
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _LIBUUTIL_COMMON_H
+#define        _LIBUUTIL_COMMON_H
+
+
+
+#include <libuutil.h>
+#include <libuutil_impl.h>
+
+#endif /* _LIBUUTIL_COMMON_H */
diff --git a/include/libuutil_impl.h b/include/libuutil_impl.h
new file mode 100644 (file)
index 0000000..f978b47
--- /dev/null
@@ -0,0 +1,181 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _LIBUUTIL_IMPL_H
+#define        _LIBUUTIL_IMPL_H
+
+
+
+#include <libuutil.h>
+#include <pthread.h>
+
+#include <sys/avl_impl.h>
+#include <sys/byteorder.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void uu_set_error(uint_t);
+
+
+/*PRINTFLIKE1*/
+void uu_panic(const char *format, ...);
+
+
+struct uu_dprintf {
+       char    *uud_name;
+       uu_dprintf_severity_t uud_severity;
+       uint_t  uud_flags;
+};
+
+/*
+ * For debugging purposes, libuutil keeps around linked lists of all uu_lists
+ * and uu_avls, along with pointers to their parents.  These can cause false
+ * negatives when looking for memory leaks, so we encode the pointers by
+ * storing them with swapped endianness;  this is not perfect, but it's about
+ * the best we can do without wasting a lot of space.
+ */
+#ifdef _LP64
+#define        UU_PTR_ENCODE(ptr)              BSWAP_64((uintptr_t)(void *)(ptr))
+#else
+#define        UU_PTR_ENCODE(ptr)              BSWAP_32((uintptr_t)(void *)(ptr))
+#endif
+
+#define        UU_PTR_DECODE(ptr)              ((void *)UU_PTR_ENCODE(ptr))
+
+/*
+ * uu_list structures
+ */
+typedef struct uu_list_node_impl {
+       struct uu_list_node_impl *uln_next;
+       struct uu_list_node_impl *uln_prev;
+} uu_list_node_impl_t;
+
+struct uu_list_walk {
+       uu_list_walk_t  *ulw_next;
+       uu_list_walk_t  *ulw_prev;
+
+       uu_list_t       *ulw_list;
+       int8_t          ulw_dir;
+       uint8_t         ulw_robust;
+       uu_list_node_impl_t *ulw_next_result;
+};
+
+struct uu_list {
+       uintptr_t       ul_next_enc;
+       uintptr_t       ul_prev_enc;
+
+       uu_list_pool_t  *ul_pool;
+       uintptr_t       ul_parent_enc;  /* encoded parent pointer */
+       size_t          ul_offset;
+       size_t          ul_numnodes;
+       uint8_t         ul_debug;
+       uint8_t         ul_sorted;
+       uint8_t         ul_index;       /* mark for uu_list_index_ts */
+
+       uu_list_node_impl_t ul_null_node;
+       uu_list_walk_t  ul_null_walk;   /* for robust walkers */
+};
+
+#define        UU_LIST_PTR(ptr)                ((uu_list_t *)UU_PTR_DECODE(ptr))
+
+#define        UU_LIST_POOL_MAXNAME    64
+
+struct uu_list_pool {
+       uu_list_pool_t  *ulp_next;
+       uu_list_pool_t  *ulp_prev;
+
+       char            ulp_name[UU_LIST_POOL_MAXNAME];
+       size_t          ulp_nodeoffset;
+       size_t          ulp_objsize;
+       uu_compare_fn_t *ulp_cmp;
+       uint8_t         ulp_debug;
+       uint8_t         ulp_last_index;
+       pthread_mutex_t ulp_lock;               /* protects null_list */
+       uu_list_t       ulp_null_list;
+};
+
+/*
+ * uu_avl structures
+ */
+typedef struct avl_node                uu_avl_node_impl_t;
+
+struct uu_avl_walk {
+       uu_avl_walk_t   *uaw_next;
+       uu_avl_walk_t   *uaw_prev;
+
+       uu_avl_t        *uaw_avl;
+       void            *uaw_next_result;
+       int8_t          uaw_dir;
+       uint8_t         uaw_robust;
+};
+
+struct uu_avl {
+       uintptr_t       ua_next_enc;
+       uintptr_t       ua_prev_enc;
+
+       uu_avl_pool_t   *ua_pool;
+       uintptr_t       ua_parent_enc;
+       uint8_t         ua_debug;
+       uint8_t         ua_index;       /* mark for uu_avl_index_ts */
+
+       struct avl_tree ua_tree;
+       uu_avl_walk_t   ua_null_walk;
+};
+
+#define        UU_AVL_PTR(x)           ((uu_avl_t *)UU_PTR_DECODE(x))
+
+#define        UU_AVL_POOL_MAXNAME     64
+
+struct uu_avl_pool {
+       uu_avl_pool_t   *uap_next;
+       uu_avl_pool_t   *uap_prev;
+
+       char            uap_name[UU_AVL_POOL_MAXNAME];
+       size_t          uap_nodeoffset;
+       size_t          uap_objsize;
+       uu_compare_fn_t *uap_cmp;
+       uint8_t         uap_debug;
+       uint8_t         uap_last_index;
+       pthread_mutex_t uap_lock;               /* protects null_avl */
+       uu_avl_t        uap_null_avl;
+};
+
+/*
+ * atfork() handlers
+ */
+void uu_avl_lockup(void);
+void uu_avl_release(void);
+
+void uu_list_lockup(void);
+void uu_list_release(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LIBUUTIL_IMPL_H */
diff --git a/include/libzfs.h b/include/libzfs.h
new file mode 100644 (file)
index 0000000..dcbd283
--- /dev/null
@@ -0,0 +1,716 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _LIBZFS_H
+#define        _LIBZFS_H
+
+#include <assert.h>
+#include <libnvpair.h>
+#include <sys/mnttab.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/varargs.h>
+#include <sys/fs/zfs.h>
+#include <sys/avl.h>
+#include <ucred.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Miscellaneous ZFS constants
+ */
+#define        ZFS_MAXNAMELEN          MAXNAMELEN
+#define        ZPOOL_MAXNAMELEN        MAXNAMELEN
+#define        ZFS_MAXPROPLEN          MAXPATHLEN
+#define        ZPOOL_MAXPROPLEN        MAXPATHLEN
+
+/*
+ * Default device paths
+ */
+
+#if defined(__sun__) || defined(__sun)
+#define        DISK_ROOT       "/dev/dsk"
+#define        RDISK_ROOT      "/dev/rdsk"
+#define        UDISK_ROOT      RDISK_ROOT
+#define        FIRST_SLICE     "s0"
+#define        BACKUP_SLICE    "s2"
+#endif
+
+#ifdef __linux__
+#define        DISK_ROOT       "/dev"
+#define        RDISK_ROOT      DISK_ROOT
+#define        UDISK_ROOT      "/dev/disk"
+#define        FIRST_SLICE     "1"
+#define        BACKUP_SLICE    ""
+#endif
+
+/*
+ * libzfs errors
+ */
+enum {
+       EZFS_NOMEM = 2000,      /* out of memory */
+       EZFS_BADPROP,           /* invalid property value */
+       EZFS_PROPREADONLY,      /* cannot set readonly property */
+       EZFS_PROPTYPE,          /* property does not apply to dataset type */
+       EZFS_PROPNONINHERIT,    /* property is not inheritable */
+       EZFS_PROPSPACE,         /* bad quota or reservation */
+       EZFS_BADTYPE,           /* dataset is not of appropriate type */
+       EZFS_BUSY,              /* pool or dataset is busy */
+       EZFS_EXISTS,            /* pool or dataset already exists */
+       EZFS_NOENT,             /* no such pool or dataset */
+       EZFS_BADSTREAM,         /* bad backup stream */
+       EZFS_DSREADONLY,        /* dataset is readonly */
+       EZFS_VOLTOOBIG,         /* volume is too large for 32-bit system */
+       EZFS_INVALIDNAME,       /* invalid dataset name */
+       EZFS_BADRESTORE,        /* unable to restore to destination */
+       EZFS_BADBACKUP,         /* backup failed */
+       EZFS_BADTARGET,         /* bad attach/detach/replace target */
+       EZFS_NODEVICE,          /* no such device in pool */
+       EZFS_BADDEV,            /* invalid device to add */
+       EZFS_NOREPLICAS,        /* no valid replicas */
+       EZFS_RESILVERING,       /* currently resilvering */
+       EZFS_BADVERSION,        /* unsupported version */
+       EZFS_POOLUNAVAIL,       /* pool is currently unavailable */
+       EZFS_DEVOVERFLOW,       /* too many devices in one vdev */
+       EZFS_BADPATH,           /* must be an absolute path */
+       EZFS_CROSSTARGET,       /* rename or clone across pool or dataset */
+       EZFS_ZONED,             /* used improperly in local zone */
+       EZFS_MOUNTFAILED,       /* failed to mount dataset */
+       EZFS_UMOUNTFAILED,      /* failed to unmount dataset */
+       EZFS_UNSHARENFSFAILED,  /* unshare(1M) failed */
+       EZFS_SHARENFSFAILED,    /* share(1M) failed */
+       EZFS_PERM,              /* permission denied */
+       EZFS_NOSPC,             /* out of space */
+       EZFS_FAULT,             /* bad address */
+       EZFS_IO,                /* I/O error */
+       EZFS_INTR,              /* signal received */
+       EZFS_ISSPARE,           /* device is a hot spare */
+       EZFS_INVALCONFIG,       /* invalid vdev configuration */
+       EZFS_RECURSIVE,         /* recursive dependency */
+       EZFS_NOHISTORY,         /* no history object */
+       EZFS_POOLPROPS,         /* couldn't retrieve pool props */
+       EZFS_POOL_NOTSUP,       /* ops not supported for this type of pool */
+       EZFS_POOL_INVALARG,     /* invalid argument for this pool operation */
+       EZFS_NAMETOOLONG,       /* dataset name is too long */
+       EZFS_OPENFAILED,        /* open of device failed */
+       EZFS_NOCAP,             /* couldn't get capacity */
+       EZFS_LABELFAILED,       /* write of label failed */
+       EZFS_BADWHO,            /* invalid permission who */
+       EZFS_BADPERM,           /* invalid permission */
+       EZFS_BADPERMSET,        /* invalid permission set name */
+       EZFS_NODELEGATION,      /* delegated administration is disabled */
+       EZFS_UNSHARESMBFAILED,  /* failed to unshare over smb */
+       EZFS_SHARESMBFAILED,    /* failed to share over smb */
+       EZFS_BADCACHE,          /* bad cache file */
+       EZFS_ISL2CACHE,         /* device is for the level 2 ARC */
+       EZFS_VDEVNOTSUP,        /* unsupported vdev type */
+       EZFS_NOTSUP,            /* ops not supported on this dataset */
+       EZFS_ACTIVE_SPARE,      /* pool has active shared spare devices */
+       EZFS_UNPLAYED_LOGS,     /* log device has unplayed logs */
+       EZFS_REFTAG_RELE,       /* snapshot release: tag not found */
+       EZFS_REFTAG_HOLD,       /* snapshot hold: tag already exists */
+       EZFS_TAGTOOLONG,        /* snapshot hold/rele: tag too long */
+       EZFS_PIPEFAILED,        /* pipe create failed */
+       EZFS_THREADCREATEFAILED, /* thread create failed */
+       EZFS_POSTSPLIT_ONLINE,  /* onlining a disk after splitting it */
+       EZFS_SCRUBBING,         /* currently scrubbing */
+       EZFS_NO_SCRUB,          /* no active scrub */
+       EZFS_DIFF,              /* general failure of zfs diff */
+       EZFS_DIFFDATA,          /* bad zfs diff data */
+       EZFS_POOLREADONLY,      /* pool is in read-only mode */
+       EZFS_UNKNOWN
+};
+
+/*
+ * The following data structures are all part
+ * of the zfs_allow_t data structure which is
+ * used for printing 'allow' permissions.
+ * It is a linked list of zfs_allow_t's which
+ * then contain avl tree's for user/group/sets/...
+ * and each one of the entries in those trees have
+ * avl tree's for the permissions they belong to and
+ * whether they are local,descendent or local+descendent
+ * permissions.  The AVL trees are used primarily for
+ * sorting purposes, but also so that we can quickly find
+ * a given user and or permission.
+ */
+typedef struct zfs_perm_node {
+       avl_node_t z_node;
+       char z_pname[MAXPATHLEN];
+} zfs_perm_node_t;
+
+typedef struct zfs_allow_node {
+       avl_node_t z_node;
+       char z_key[MAXPATHLEN];         /* name, such as joe */
+       avl_tree_t z_localdescend;      /* local+descendent perms */
+       avl_tree_t z_local;             /* local permissions */
+       avl_tree_t z_descend;           /* descendent permissions */
+} zfs_allow_node_t;
+
+typedef struct zfs_allow {
+       struct zfs_allow *z_next;
+       char z_setpoint[MAXPATHLEN];
+       avl_tree_t z_sets;
+       avl_tree_t z_crperms;
+       avl_tree_t z_user;
+       avl_tree_t z_group;
+       avl_tree_t z_everyone;
+} zfs_allow_t;
+
+/*
+ * Basic handle types
+ */
+typedef struct zfs_handle zfs_handle_t;
+typedef struct zpool_handle zpool_handle_t;
+typedef struct libzfs_handle libzfs_handle_t;
+
+/*
+ * Library initialization
+ */
+extern libzfs_handle_t *libzfs_init(void);
+extern void libzfs_fini(libzfs_handle_t *);
+
+extern libzfs_handle_t *zpool_get_handle(zpool_handle_t *);
+extern libzfs_handle_t *zfs_get_handle(zfs_handle_t *);
+
+extern void libzfs_print_on_error(libzfs_handle_t *, boolean_t);
+
+extern int libzfs_errno(libzfs_handle_t *);
+extern const char *libzfs_error_action(libzfs_handle_t *);
+extern const char *libzfs_error_description(libzfs_handle_t *);
+extern void libzfs_mnttab_init(libzfs_handle_t *);
+extern void libzfs_mnttab_fini(libzfs_handle_t *);
+extern void libzfs_mnttab_cache(libzfs_handle_t *, boolean_t);
+extern int libzfs_mnttab_find(libzfs_handle_t *, const char *,
+    struct mnttab *);
+extern void libzfs_mnttab_add(libzfs_handle_t *, const char *,
+    const char *, const char *);
+extern void libzfs_mnttab_remove(libzfs_handle_t *, const char *);
+
+/*
+ * Basic handle functions
+ */
+extern zpool_handle_t *zpool_open(libzfs_handle_t *, const char *);
+extern zpool_handle_t *zpool_open_canfail(libzfs_handle_t *, const char *);
+extern void zpool_close(zpool_handle_t *);
+extern const char *zpool_get_name(zpool_handle_t *);
+extern int zpool_get_state(zpool_handle_t *);
+extern char *zpool_state_to_name(vdev_state_t, vdev_aux_t);
+extern void zpool_free_handles(libzfs_handle_t *);
+
+/*
+ * Iterate over all active pools in the system.
+ */
+typedef int (*zpool_iter_f)(zpool_handle_t *, void *);
+extern int zpool_iter(libzfs_handle_t *, zpool_iter_f, void *);
+
+/*
+ * Functions to create and destroy pools
+ */
+extern int zpool_create(libzfs_handle_t *, const char *, nvlist_t *,
+    nvlist_t *, nvlist_t *);
+extern int zpool_destroy(zpool_handle_t *);
+extern int zpool_add(zpool_handle_t *, nvlist_t *);
+
+typedef struct splitflags {
+       /* do not split, but return the config that would be split off */
+       int dryrun : 1;
+
+       /* after splitting, import the pool */
+       int import : 1;
+} splitflags_t;
+
+/*
+ * Functions to manipulate pool and vdev state
+ */
+extern int zpool_scan(zpool_handle_t *, pool_scan_func_t);
+extern int zpool_clear(zpool_handle_t *, const char *, nvlist_t *);
+
+extern int zpool_vdev_online(zpool_handle_t *, const char *, int,
+    vdev_state_t *);
+extern int zpool_vdev_offline(zpool_handle_t *, const char *, boolean_t);
+extern int zpool_vdev_attach(zpool_handle_t *, const char *,
+    const char *, nvlist_t *, int);
+extern int zpool_vdev_detach(zpool_handle_t *, const char *);
+extern int zpool_vdev_remove(zpool_handle_t *, const char *);
+extern int zpool_vdev_split(zpool_handle_t *, char *, nvlist_t **, nvlist_t *,
+    splitflags_t);
+
+extern int zpool_vdev_fault(zpool_handle_t *, uint64_t, vdev_aux_t);
+extern int zpool_vdev_degrade(zpool_handle_t *, uint64_t, vdev_aux_t);
+extern int zpool_vdev_clear(zpool_handle_t *, uint64_t);
+
+extern nvlist_t *zpool_find_vdev(zpool_handle_t *, const char *, boolean_t *,
+    boolean_t *, boolean_t *);
+extern nvlist_t *zpool_find_vdev_by_physpath(zpool_handle_t *, const char *,
+    boolean_t *, boolean_t *, boolean_t *);
+extern int zpool_label_disk_wait(char *, int);
+extern int zpool_label_disk(libzfs_handle_t *, zpool_handle_t *, char *);
+
+/*
+ * Functions to manage pool properties
+ */
+extern int zpool_set_prop(zpool_handle_t *, const char *, const char *);
+extern int zpool_get_prop(zpool_handle_t *, zpool_prop_t, char *,
+    size_t proplen, zprop_source_t *);
+extern uint64_t zpool_get_prop_int(zpool_handle_t *, zpool_prop_t,
+    zprop_source_t *);
+
+extern const char *zpool_prop_to_name(zpool_prop_t);
+extern const char *zpool_prop_values(zpool_prop_t);
+
+/*
+ * Pool health statistics.
+ */
+typedef enum {
+       /*
+        * The following correspond to faults as defined in the (fault.fs.zfs.*)
+        * event namespace.  Each is associated with a corresponding message ID.
+        */
+       ZPOOL_STATUS_CORRUPT_CACHE,     /* corrupt /kernel/drv/zpool.cache */
+       ZPOOL_STATUS_MISSING_DEV_R,     /* missing device with replicas */
+       ZPOOL_STATUS_MISSING_DEV_NR,    /* missing device with no replicas */
+       ZPOOL_STATUS_CORRUPT_LABEL_R,   /* bad device label with replicas */
+       ZPOOL_STATUS_CORRUPT_LABEL_NR,  /* bad device label with no replicas */
+       ZPOOL_STATUS_BAD_GUID_SUM,      /* sum of device guids didn't match */
+       ZPOOL_STATUS_CORRUPT_POOL,      /* pool metadata is corrupted */
+       ZPOOL_STATUS_CORRUPT_DATA,      /* data errors in user (meta)data */
+       ZPOOL_STATUS_FAILING_DEV,       /* device experiencing errors */
+       ZPOOL_STATUS_VERSION_NEWER,     /* newer on-disk version */
+       ZPOOL_STATUS_HOSTID_MISMATCH,   /* last accessed by another system */
+       ZPOOL_STATUS_IO_FAILURE_WAIT,   /* failed I/O, failmode 'wait' */
+       ZPOOL_STATUS_IO_FAILURE_CONTINUE, /* failed I/O, failmode 'continue' */
+       ZPOOL_STATUS_BAD_LOG,           /* cannot read log chain(s) */
+
+       /*
+        * These faults have no corresponding message ID.  At the time we are
+        * checking the status, the original reason for the FMA fault (I/O or
+        * checksum errors) has been lost.
+        */
+       ZPOOL_STATUS_FAULTED_DEV_R,     /* faulted device with replicas */
+       ZPOOL_STATUS_FAULTED_DEV_NR,    /* faulted device with no replicas */
+
+       /*
+        * The following are not faults per se, but still an error possibly
+        * requiring administrative attention.  There is no corresponding
+        * message ID.
+        */
+       ZPOOL_STATUS_VERSION_OLDER,     /* older on-disk version */
+       ZPOOL_STATUS_RESILVERING,       /* device being resilvered */
+       ZPOOL_STATUS_OFFLINE_DEV,       /* device online */
+       ZPOOL_STATUS_REMOVED_DEV,       /* removed device */
+
+       /*
+        * Finally, the following indicates a healthy pool.
+        */
+       ZPOOL_STATUS_OK
+} zpool_status_t;
+
+extern zpool_status_t zpool_get_status(zpool_handle_t *, char **);
+extern zpool_status_t zpool_import_status(nvlist_t *, char **);
+extern void zpool_dump_ddt(const ddt_stat_t *dds, const ddt_histogram_t *ddh);
+
+/*
+ * Statistics and configuration functions.
+ */
+extern nvlist_t *zpool_get_config(zpool_handle_t *, nvlist_t **);
+extern int zpool_refresh_stats(zpool_handle_t *, boolean_t *);
+extern int zpool_get_errlog(zpool_handle_t *, nvlist_t **);
+
+/*
+ * Import and export functions
+ */
+extern int zpool_export(zpool_handle_t *, boolean_t);
+extern int zpool_export_force(zpool_handle_t *);
+extern int zpool_import(libzfs_handle_t *, nvlist_t *, const char *,
+    char *altroot);
+extern int zpool_import_props(libzfs_handle_t *, nvlist_t *, const char *,
+    nvlist_t *, int);
+
+/*
+ * Search for pools to import
+ */
+
+typedef struct importargs {
+       char **path;            /* a list of paths to search            */
+       int paths;              /* number of paths to search            */
+       char *poolname;         /* name of a pool to find               */
+       uint64_t guid;          /* guid of a pool to find               */
+       char *cachefile;        /* cachefile to use for import          */
+       int can_be_active : 1;  /* can the pool be active?              */
+       int unique : 1;         /* does 'poolname' already exist?       */
+       int exists : 1;         /* set on return if pool already exists */
+} importargs_t;
+
+extern nvlist_t *zpool_search_import(libzfs_handle_t *, importargs_t *);
+
+/* legacy pool search routines */
+extern nvlist_t *zpool_find_import(libzfs_handle_t *, int, char **);
+extern nvlist_t *zpool_find_import_cached(libzfs_handle_t *, const char *,
+    char *, uint64_t);
+
+/*
+ * Miscellaneous pool functions
+ */
+struct zfs_cmd;
+
+extern const char *zfs_history_event_names[LOG_END];
+
+extern char *zpool_vdev_name(libzfs_handle_t *, zpool_handle_t *, nvlist_t *,
+    boolean_t verbose);
+extern int zpool_upgrade(zpool_handle_t *, uint64_t);
+extern int zpool_get_history(zpool_handle_t *, nvlist_t **);
+extern int zpool_history_unpack(char *, uint64_t, uint64_t *,
+    nvlist_t ***, uint_t *);
+extern void zpool_set_history_str(const char *subcommand, int argc,
+    char **argv, char *history_str);
+extern int zpool_stage_history(libzfs_handle_t *, const char *);
+extern int zpool_events_next(libzfs_handle_t *, nvlist_t **, int *, int, int);
+extern int zpool_events_clear(libzfs_handle_t *, int *);
+extern void zpool_obj_to_path(zpool_handle_t *, uint64_t, uint64_t, char *,
+    size_t len);
+extern int zfs_ioctl(libzfs_handle_t *, int, struct zfs_cmd *);
+extern int zpool_get_physpath(zpool_handle_t *, char *, size_t);
+extern void zpool_explain_recover(libzfs_handle_t *, const char *, int,
+    nvlist_t *);
+
+/*
+ * Basic handle manipulations.  These functions do not create or destroy the
+ * underlying datasets, only the references to them.
+ */
+extern zfs_handle_t *zfs_open(libzfs_handle_t *, const char *, int);
+extern void zfs_close(zfs_handle_t *);
+extern zfs_type_t zfs_get_type(const zfs_handle_t *);
+extern const char *zfs_get_name(const zfs_handle_t *);
+extern zpool_handle_t *zfs_get_pool_handle(const zfs_handle_t *);
+
+/*
+ * Property management functions.  Some functions are shared with the kernel,
+ * and are found in sys/fs/zfs.h.
+ */
+
+/*
+ * zfs dataset property management
+ */
+extern const char *zfs_prop_default_string(zfs_prop_t);
+extern uint64_t zfs_prop_default_numeric(zfs_prop_t);
+extern const char *zfs_prop_column_name(zfs_prop_t);
+extern boolean_t zfs_prop_align_right(zfs_prop_t);
+
+extern nvlist_t *zfs_valid_proplist(libzfs_handle_t *, zfs_type_t,
+    nvlist_t *, uint64_t, zfs_handle_t *, const char *);
+
+extern const char *zfs_prop_to_name(zfs_prop_t);
+extern int zfs_prop_set(zfs_handle_t *, const char *, const char *);
+extern int zfs_prop_get(zfs_handle_t *, zfs_prop_t, char *, size_t,
+    zprop_source_t *, char *, size_t, boolean_t);
+extern int zfs_prop_get_recvd(zfs_handle_t *, const char *, char *, size_t,
+    boolean_t);
+extern int zfs_prop_get_numeric(zfs_handle_t *, zfs_prop_t, uint64_t *,
+    zprop_source_t *, char *, size_t);
+extern int zfs_prop_get_userquota_int(zfs_handle_t *zhp, const char *propname,
+    uint64_t *propvalue);
+extern int zfs_prop_get_userquota(zfs_handle_t *zhp, const char *propname,
+    char *propbuf, int proplen, boolean_t literal);
+extern uint64_t zfs_prop_get_int(zfs_handle_t *, zfs_prop_t);
+extern int zfs_prop_inherit(zfs_handle_t *, const char *, boolean_t);
+extern const char *zfs_prop_values(zfs_prop_t);
+extern int zfs_prop_is_string(zfs_prop_t prop);
+extern nvlist_t *zfs_get_user_props(zfs_handle_t *);
+extern nvlist_t *zfs_get_recvd_props(zfs_handle_t *);
+
+typedef struct zprop_list {
+       int             pl_prop;
+       char            *pl_user_prop;
+       struct zprop_list *pl_next;
+       boolean_t       pl_all;
+       size_t          pl_width;
+       size_t          pl_recvd_width;
+       boolean_t       pl_fixed;
+} zprop_list_t;
+
+extern int zfs_expand_proplist(zfs_handle_t *, zprop_list_t **, boolean_t);
+extern void zfs_prune_proplist(zfs_handle_t *, uint8_t *);
+
+#define        ZFS_MOUNTPOINT_NONE     "none"
+#define        ZFS_MOUNTPOINT_LEGACY   "legacy"
+
+/*
+ * zpool property management
+ */
+extern int zpool_expand_proplist(zpool_handle_t *, zprop_list_t **);
+extern const char *zpool_prop_default_string(zpool_prop_t);
+extern uint64_t zpool_prop_default_numeric(zpool_prop_t);
+extern const char *zpool_prop_column_name(zpool_prop_t);
+extern boolean_t zpool_prop_align_right(zpool_prop_t);
+
+/*
+ * Functions shared by zfs and zpool property management.
+ */
+extern int zprop_iter(zprop_func func, void *cb, boolean_t show_all,
+    boolean_t ordered, zfs_type_t type);
+extern int zprop_get_list(libzfs_handle_t *, char *, zprop_list_t **,
+    zfs_type_t);
+extern void zprop_free_list(zprop_list_t *);
+
+#define        ZFS_GET_NCOLS   5
+
+typedef enum {
+       GET_COL_NONE,
+       GET_COL_NAME,
+       GET_COL_PROPERTY,
+       GET_COL_VALUE,
+       GET_COL_RECVD,
+       GET_COL_SOURCE
+} zfs_get_column_t;
+
+/*
+ * Functions for printing zfs or zpool properties
+ */
+typedef struct zprop_get_cbdata {
+       int cb_sources;
+       zfs_get_column_t cb_columns[ZFS_GET_NCOLS];
+       int cb_colwidths[ZFS_GET_NCOLS + 1];
+       boolean_t cb_scripted;
+       boolean_t cb_literal;
+       boolean_t cb_first;
+       zprop_list_t *cb_proplist;
+       zfs_type_t cb_type;
+} zprop_get_cbdata_t;
+
+void zprop_print_one_property(const char *, zprop_get_cbdata_t *,
+    const char *, const char *, zprop_source_t, const char *,
+    const char *);
+
+/*
+ * Iterator functions.
+ */
+typedef int (*zfs_iter_f)(zfs_handle_t *, void *);
+extern int zfs_iter_root(libzfs_handle_t *, zfs_iter_f, void *);
+extern int zfs_iter_children(zfs_handle_t *, zfs_iter_f, void *);
+extern int zfs_iter_dependents(zfs_handle_t *, boolean_t, zfs_iter_f, void *);
+extern int zfs_iter_filesystems(zfs_handle_t *, zfs_iter_f, void *);
+extern int zfs_iter_snapshots(zfs_handle_t *, zfs_iter_f, void *);
+extern int zfs_iter_snapshots_sorted(zfs_handle_t *, zfs_iter_f, void *);
+
+typedef struct get_all_cb {
+       zfs_handle_t    **cb_handles;
+       size_t          cb_alloc;
+       size_t          cb_used;
+       boolean_t       cb_verbose;
+       int             (*cb_getone)(zfs_handle_t *, void *);
+} get_all_cb_t;
+
+void libzfs_add_handle(get_all_cb_t *, zfs_handle_t *);
+int libzfs_dataset_cmp(const void *, const void *);
+
+/*
+ * Functions to create and destroy datasets.
+ */
+extern int zfs_create(libzfs_handle_t *, const char *, zfs_type_t,
+    nvlist_t *);
+extern int zfs_create_ancestors(libzfs_handle_t *, const char *);
+extern int zfs_destroy(zfs_handle_t *, boolean_t);
+extern int zfs_destroy_snaps(zfs_handle_t *, char *, boolean_t);
+extern int zfs_clone(zfs_handle_t *, const char *, nvlist_t *);
+extern int zfs_snapshot(libzfs_handle_t *, const char *, boolean_t, nvlist_t *);
+extern int zfs_rollback(zfs_handle_t *, zfs_handle_t *, boolean_t);
+extern int zfs_rename(zfs_handle_t *, const char *, boolean_t);
+
+typedef struct sendflags {
+       /* print informational messages (ie, -v was specified) */
+       int verbose : 1;
+
+       /* recursive send  (ie, -R) */
+       int replicate : 1;
+
+       /* for incrementals, do all intermediate snapshots */
+       int doall : 1; /* (ie, -I) */
+
+       /* if dataset is a clone, do incremental from its origin */
+       int fromorigin : 1;
+
+       /* do deduplication */
+       int dedup : 1;
+
+       /* send properties (ie, -p) */
+       int props : 1;
+} sendflags_t;
+
+typedef boolean_t (snapfilter_cb_t)(zfs_handle_t *, void *);
+
+extern int zfs_send(zfs_handle_t *zhp, const char *fromsnap, const char *tosnap,
+    sendflags_t flags, int outfd, snapfilter_cb_t filter_func,
+    void *cb_arg, nvlist_t **debugnvp);
+
+extern int zfs_promote(zfs_handle_t *);
+extern int zfs_hold(zfs_handle_t *, const char *, const char *, boolean_t,
+    boolean_t, boolean_t, int, uint64_t, uint64_t);
+extern int zfs_release(zfs_handle_t *, const char *, const char *, boolean_t);
+extern uint64_t zvol_volsize_to_reservation(uint64_t, nvlist_t *);
+
+typedef int (*zfs_userspace_cb_t)(void *arg, const char *domain,
+    uid_t rid, uint64_t space);
+
+extern int zfs_userspace(zfs_handle_t *zhp, zfs_userquota_prop_t type,
+    zfs_userspace_cb_t func, void *arg);
+
+typedef struct recvflags {
+       /* print informational messages (ie, -v was specified) */
+       int verbose : 1;
+
+       /* the destination is a prefix, not the exact fs (ie, -d) */
+       int isprefix : 1;
+
+       /*
+        * Only the tail of the sent snapshot path is appended to the
+        * destination to determine the received snapshot name (ie, -e).
+        */
+       int istail : 1;
+
+       /* do not actually do the recv, just check if it would work (ie, -n) */
+       int dryrun : 1;
+
+       /* rollback/destroy filesystems as necessary (eg, -F) */
+       int force : 1;
+
+       /* set "canmount=off" on all modified filesystems */
+       int canmountoff : 1;
+
+       /* byteswap flag is used internally; callers need not specify */
+       int byteswap : 1;
+
+       /* do not mount file systems as they are extracted (private) */
+       int nomount : 1;
+} recvflags_t;
+
+extern int zfs_receive(libzfs_handle_t *, const char *, recvflags_t,
+    int, avl_tree_t *);
+
+typedef enum diff_flags {
+       ZFS_DIFF_PARSEABLE = 0x1,
+       ZFS_DIFF_TIMESTAMP = 0x2,
+       ZFS_DIFF_CLASSIFY = 0x4
+} diff_flags_t;
+
+extern int zfs_show_diffs(zfs_handle_t *, int, const char *, const char *,
+    int);
+
+/*
+ * Miscellaneous functions.
+ */
+extern const char *zfs_type_to_name(zfs_type_t);
+extern void zfs_refresh_properties(zfs_handle_t *);
+extern int zfs_name_valid(const char *, zfs_type_t);
+extern zfs_handle_t *zfs_path_to_zhandle(libzfs_handle_t *, char *, zfs_type_t);
+extern boolean_t zfs_dataset_exists(libzfs_handle_t *, const char *,
+    zfs_type_t);
+extern int zfs_spa_version(zfs_handle_t *, int *);
+
+/*
+ * Mount support functions.
+ */
+extern boolean_t is_mounted(libzfs_handle_t *, const char *special, char **);
+extern boolean_t zfs_is_mounted(zfs_handle_t *, char **);
+extern int zfs_mount(zfs_handle_t *, const char *, int);
+extern int zfs_unmount(zfs_handle_t *, const char *, int);
+extern int zfs_unmountall(zfs_handle_t *, int);
+
+/*
+ * Share support functions.
+ */
+extern boolean_t zfs_is_shared(zfs_handle_t *);
+extern int zfs_share(zfs_handle_t *);
+extern int zfs_unshare(zfs_handle_t *);
+
+/*
+ * Protocol-specific share support functions.
+ */
+extern boolean_t zfs_is_shared_nfs(zfs_handle_t *, char **);
+extern boolean_t zfs_is_shared_smb(zfs_handle_t *, char **);
+extern int zfs_share_nfs(zfs_handle_t *);
+extern int zfs_share_smb(zfs_handle_t *);
+extern int zfs_shareall(zfs_handle_t *);
+extern int zfs_unshare_nfs(zfs_handle_t *, const char *);
+extern int zfs_unshare_smb(zfs_handle_t *, const char *);
+extern int zfs_unshareall_nfs(zfs_handle_t *);
+extern int zfs_unshareall_smb(zfs_handle_t *);
+extern int zfs_unshareall_bypath(zfs_handle_t *, const char *);
+extern int zfs_unshareall(zfs_handle_t *);
+extern int zfs_deleg_share_nfs(libzfs_handle_t *, char *, char *, char *,
+    void *, void *, int, zfs_share_op_t);
+
+/*
+ * Utility function to convert a number to a human-readable form.
+ */
+extern void zfs_nicenum(uint64_t, char *, size_t);
+extern int zfs_nicestrtonum(libzfs_handle_t *, const char *, uint64_t *);
+
+/*
+ * Given a device or file, determine if it is part of a pool.
+ */
+extern int zpool_in_use(libzfs_handle_t *, int, pool_state_t *, char **,
+    boolean_t *);
+
+/*
+ * Label manipulation.
+ */
+extern int zpool_read_label(int, nvlist_t **);
+extern int zpool_clear_label(int);
+
+/*
+ * Management interfaces for SMB ACL files
+ */
+
+int zfs_smb_acl_add(libzfs_handle_t *, char *, char *, char *);
+int zfs_smb_acl_remove(libzfs_handle_t *, char *, char *, char *);
+int zfs_smb_acl_purge(libzfs_handle_t *, char *, char *);
+int zfs_smb_acl_rename(libzfs_handle_t *, char *, char *, char *, char *);
+
+/*
+ * Enable and disable datasets within a pool by mounting/unmounting and
+ * sharing/unsharing them.
+ */
+extern int zpool_enable_datasets(zpool_handle_t *, const char *, int);
+extern int zpool_disable_datasets(zpool_handle_t *, boolean_t);
+
+/*
+ * Mappings between vdev and FRU.
+ */
+extern void libzfs_fru_refresh(libzfs_handle_t *);
+extern const char *libzfs_fru_lookup(libzfs_handle_t *, const char *);
+extern const char *libzfs_fru_devpath(libzfs_handle_t *, const char *);
+extern boolean_t libzfs_fru_compare(libzfs_handle_t *, const char *,
+    const char *);
+extern boolean_t libzfs_fru_notself(libzfs_handle_t *, const char *);
+extern int zpool_fru_set(zpool_handle_t *, uint64_t, const char *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LIBZFS_H */
diff --git a/include/libzfs_impl.h b/include/libzfs_impl.h
new file mode 100644 (file)
index 0000000..2389b78
--- /dev/null
@@ -0,0 +1,220 @@
+/*
+ * CDDL HEADER SART
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _LIBFS_IMPL_H
+#define        _LIBFS_IMPL_H
+
+#include <sys/dmu.h>
+#include <sys/fs/zfs.h>
+#include <sys/zfs_ioctl.h>
+#include <sys/spa.h>
+#include <sys/nvpair.h>
+
+#include <libuutil.h>
+#include <libzfs.h>
+#include <libshare.h>
+
+#if defined(HAVE_LIBTOPO)
+#include <fm/libtopo.h>
+#endif /* HAVE_LIBTOPO */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef VERIFY
+#undef VERIFY
+#endif
+#define        VERIFY  verify
+
+typedef struct libzfs_fru {
+       char *zf_device;
+       char *zf_fru;
+       struct libzfs_fru *zf_chain;
+       struct libzfs_fru *zf_next;
+} libzfs_fru_t;
+
+struct libzfs_handle {
+       int libzfs_error;
+       int libzfs_fd;
+       FILE *libzfs_mnttab;
+       FILE *libzfs_sharetab;
+       zpool_handle_t *libzfs_pool_handles;
+       uu_avl_pool_t *libzfs_ns_avlpool;
+       uu_avl_t *libzfs_ns_avl;
+       uint64_t libzfs_ns_gen;
+       int libzfs_desc_active;
+       char libzfs_action[1024];
+       char libzfs_desc[1024];
+       char *libzfs_log_str;
+       int libzfs_printerr;
+       int libzfs_storeerr; /* stuff error messages into buffer */
+       void *libzfs_sharehdl; /* libshare handle */
+       uint_t libzfs_shareflags;
+       boolean_t libzfs_mnttab_enable;
+       avl_tree_t libzfs_mnttab_cache;
+       int libzfs_pool_iter;
+#if defined(HAVE_LIBTOPO)
+       topo_hdl_t *libzfs_topo_hdl;
+       libzfs_fru_t **libzfs_fru_hash;
+       libzfs_fru_t *libzfs_fru_list;
+#endif /* HAVE_LIBTOPO */
+       char libzfs_chassis_id[256];
+};
+
+#define        ZFSSHARE_MISS   0x01    /* Didn't find entry in cache */
+
+struct zfs_handle {
+       libzfs_handle_t *zfs_hdl;
+       zpool_handle_t *zpool_hdl;
+       char zfs_name[ZFS_MAXNAMELEN];
+       zfs_type_t zfs_type; /* type including snapshot */
+       zfs_type_t zfs_head_type; /* type excluding snapshot */
+       dmu_objset_stats_t zfs_dmustats;
+       nvlist_t *zfs_props;
+       nvlist_t *zfs_user_props;
+       nvlist_t *zfs_recvd_props;
+       boolean_t zfs_mntcheck;
+       char *zfs_mntopts;
+       uint8_t *zfs_props_table;
+};
+
+/*
+ * This is different from checking zfs_type, because it will also catch
+ * snapshots of volumes.
+ */
+#define        ZFS_IS_VOLUME(zhp) ((zhp)->zfs_head_type == ZFS_TYPE_VOLUME)
+
+struct zpool_handle {
+       libzfs_handle_t *zpool_hdl;
+       zpool_handle_t *zpool_next;
+       char zpool_name[ZPOOL_MAXNAMELEN];
+       int zpool_state;
+       size_t zpool_config_size;
+       nvlist_t *zpool_config;
+       nvlist_t *zpool_old_config;
+       nvlist_t *zpool_props;
+       diskaddr_t zpool_start_block;
+};
+
+typedef  enum {
+       PROTO_NFS = 0,
+       PROTO_SMB = 1,
+       PROTO_END = 2
+} zfs_share_proto_t;
+
+/*
+ * The following can be used as a bitmask and any new values
+ * added must preserve that capability.
+ */
+typedef enum {
+       SHARED_NOT_SHARED = 0x0,
+       SHARED_NFS = 0x2,
+       SHARED_SMB = 0x4
+} zfs_share_type_t;
+
+int zfs_error(libzfs_handle_t *, int, const char *);
+int zfs_error_fmt(libzfs_handle_t *, int, const char *, ...);
+void zfs_error_aux(libzfs_handle_t *, const char *, ...);
+void *zfs_alloc(libzfs_handle_t *, size_t);
+void *zfs_realloc(libzfs_handle_t *, void *, size_t, size_t);
+char *zfs_asprintf(libzfs_handle_t *, const char *, ...);
+char *zfs_strdup(libzfs_handle_t *, const char *);
+int no_memory(libzfs_handle_t *);
+
+int zfs_standard_error(libzfs_handle_t *, int, const char *);
+int zfs_standard_error_fmt(libzfs_handle_t *, int, const char *, ...);
+int zpool_standard_error(libzfs_handle_t *, int, const char *);
+int zpool_standard_error_fmt(libzfs_handle_t *, int, const char *, ...);
+
+int get_dependents(libzfs_handle_t *, boolean_t, const char *, char ***,
+    size_t *);
+
+
+int zprop_parse_value(libzfs_handle_t *, nvpair_t *, int, zfs_type_t,
+    nvlist_t *, char **, uint64_t *, const char *);
+int zprop_expand_list(libzfs_handle_t *hdl, zprop_list_t **plp,
+    zfs_type_t type);
+
+/*
+ * Use this changelist_gather() flag to force attempting mounts
+ * on each change node regardless of whether or not it is currently
+ * mounted.
+ */
+#define        CL_GATHER_MOUNT_ALWAYS  1
+
+typedef struct prop_changelist prop_changelist_t;
+
+int zcmd_alloc_dst_nvlist(libzfs_handle_t *, zfs_cmd_t *, size_t);
+int zcmd_write_src_nvlist(libzfs_handle_t *, zfs_cmd_t *, nvlist_t *);
+int zcmd_write_conf_nvlist(libzfs_handle_t *, zfs_cmd_t *, nvlist_t *);
+int zcmd_expand_dst_nvlist(libzfs_handle_t *, zfs_cmd_t *);
+int zcmd_read_dst_nvlist(libzfs_handle_t *, zfs_cmd_t *, nvlist_t **);
+void zcmd_free_nvlists(zfs_cmd_t *);
+
+int changelist_prefix(prop_changelist_t *);
+int changelist_postfix(prop_changelist_t *);
+void changelist_rename(prop_changelist_t *, const char *, const char *);
+void changelist_remove(prop_changelist_t *, const char *);
+void changelist_free(prop_changelist_t *);
+prop_changelist_t *changelist_gather(zfs_handle_t *, zfs_prop_t, int, int);
+int changelist_unshare(prop_changelist_t *, zfs_share_proto_t *);
+int changelist_haszonedchild(prop_changelist_t *);
+
+void remove_mountpoint(zfs_handle_t *);
+int create_parents(libzfs_handle_t *, char *, int);
+boolean_t isa_child_of(const char *dataset, const char *parent);
+
+zfs_handle_t *make_dataset_handle(libzfs_handle_t *, const char *);
+
+int zpool_open_silent(libzfs_handle_t *, const char *, zpool_handle_t **);
+
+int zvol_create_link(libzfs_handle_t *, const char *);
+int zvol_remove_link(libzfs_handle_t *, const char *);
+boolean_t zpool_name_valid(libzfs_handle_t *, boolean_t, const char *);
+
+int zfs_validate_name(libzfs_handle_t *hdl, const char *path, int type,
+    boolean_t modifying);
+
+void namespace_clear(libzfs_handle_t *);
+
+/*
+ * libshare (sharemgr) interfaces used internally.
+ */
+
+extern int zfs_init_libshare(libzfs_handle_t *, int);
+extern void zfs_uninit_libshare(libzfs_handle_t *);
+extern int zfs_parse_options(char *, zfs_share_proto_t);
+
+extern int zfs_unshare_proto(zfs_handle_t *,
+    const char *, zfs_share_proto_t *);
+
+extern void libzfs_fru_clear(libzfs_handle_t *, boolean_t);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _LIBFS_IMPL_H */
diff --git a/include/sys/Makefile.am b/include/sys/Makefile.am
new file mode 100644 (file)
index 0000000..59e1371
--- /dev/null
@@ -0,0 +1,91 @@
+SUBDIRS = fm fs
+
+COMMON_H = \
+       $(top_srcdir)/include/sys/arc.h \
+       $(top_srcdir)/include/sys/avl.h \
+       $(top_srcdir)/include/sys/avl_impl.h \
+       $(top_srcdir)/include/sys/bplist.h \
+       $(top_srcdir)/include/sys/bpobj.h \
+       $(top_srcdir)/include/sys/dbuf.h \
+       $(top_srcdir)/include/sys/ddt.h \
+       $(top_srcdir)/include/sys/dmu.h \
+       $(top_srcdir)/include/sys/dmu_impl.h \
+       $(top_srcdir)/include/sys/dmu_objset.h \
+       $(top_srcdir)/include/sys/dmu_traverse.h \
+       $(top_srcdir)/include/sys/dmu_tx.h \
+       $(top_srcdir)/include/sys/dmu_zfetch.h \
+       $(top_srcdir)/include/sys/dnode.h \
+       $(top_srcdir)/include/sys/dsl_dataset.h \
+       $(top_srcdir)/include/sys/dsl_deadlist.h \
+       $(top_srcdir)/include/sys/dsl_deleg.h \
+       $(top_srcdir)/include/sys/dsl_dir.h \
+       $(top_srcdir)/include/sys/dsl_pool.h \
+       $(top_srcdir)/include/sys/dsl_prop.h \
+       $(top_srcdir)/include/sys/dsl_scan.h \
+       $(top_srcdir)/include/sys/dsl_synctask.h \
+       $(top_srcdir)/include/sys/efi_partition.h \
+       $(top_srcdir)/include/sys/metaslab.h \
+       $(top_srcdir)/include/sys/metaslab_impl.h \
+       $(top_srcdir)/include/sys/nvpair.h \
+       $(top_srcdir)/include/sys/nvpair_impl.h \
+       $(top_srcdir)/include/sys/refcount.h \
+       $(top_srcdir)/include/sys/rrwlock.h \
+       $(top_srcdir)/include/sys/sa.h \
+       $(top_srcdir)/include/sys/sa_impl.h \
+       $(top_srcdir)/include/sys/spa_boot.h \
+       $(top_srcdir)/include/sys/space_map.h \
+       $(top_srcdir)/include/sys/spa.h \
+       $(top_srcdir)/include/sys/spa_impl.h \
+       $(top_srcdir)/include/sys/txg.h \
+       $(top_srcdir)/include/sys/txg_impl.h \
+       $(top_srcdir)/include/sys/u8_textprep_data.h \
+       $(top_srcdir)/include/sys/u8_textprep.h \
+       $(top_srcdir)/include/sys/uberblock.h \
+       $(top_srcdir)/include/sys/uberblock_impl.h \
+       $(top_srcdir)/include/sys/unique.h \
+       $(top_srcdir)/include/sys/uuid.h \
+       $(top_srcdir)/include/sys/vdev_disk.h \
+       $(top_srcdir)/include/sys/vdev_file.h \
+       $(top_srcdir)/include/sys/vdev.h \
+       $(top_srcdir)/include/sys/vdev_impl.h \
+       $(top_srcdir)/include/sys/zap.h \
+       $(top_srcdir)/include/sys/zap_impl.h \
+       $(top_srcdir)/include/sys/zap_leaf.h \
+       $(top_srcdir)/include/sys/zfs_acl.h \
+       $(top_srcdir)/include/sys/zfs_context.h \
+       $(top_srcdir)/include/sys/zfs_ctldir.h \
+       $(top_srcdir)/include/sys/zfs_debug.h \
+       $(top_srcdir)/include/sys/zfs_dir.h \
+       $(top_srcdir)/include/sys/zfs_fuid.h \
+       $(top_srcdir)/include/sys/zfs_rlock.h \
+       $(top_srcdir)/include/sys/zfs_sa.h \
+       $(top_srcdir)/include/sys/zfs_stat.h \
+       $(top_srcdir)/include/sys/zfs_vfsops.h \
+       $(top_srcdir)/include/sys/zfs_znode.h \
+       $(top_srcdir)/include/sys/zil.h \
+       $(top_srcdir)/include/sys/zil_impl.h \
+       $(top_srcdir)/include/sys/zio_checksum.h \
+       $(top_srcdir)/include/sys/zio_compress.h \
+       $(top_srcdir)/include/sys/zio.h \
+       $(top_srcdir)/include/sys/zio_impl.h \
+       $(top_srcdir)/include/sys/zrlock.h
+
+KERNEL_H = \
+       $(top_srcdir)/include/sys/blkdev.h \
+       $(top_srcdir)/include/sys/zfs_ioctl.h \
+       $(top_srcdir)/include/sys/zfs_onexit.h \
+       $(top_srcdir)/include/sys/zvol.h
+
+USER_H =
+
+EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+
+if CONFIG_USER
+libzfsdir = $(includedir)/libzfs/sys
+libzfs_HEADERS = $(COMMON_H) $(USER_H)
+endif
+
+if CONFIG_KERNEL
+kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION)/sys
+kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+endif
diff --git a/include/sys/Makefile.in b/include/sys/Makefile.in
new file mode 100644 (file)
index 0000000..bcadd90
--- /dev/null
@@ -0,0 +1,931 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = include/sys
+DIST_COMMON = $(am__kernel_HEADERS_DIST) $(am__libzfs_HEADERS_DIST) \
+       $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+am__kernel_HEADERS_DIST = $(top_srcdir)/include/sys/arc.h \
+       $(top_srcdir)/include/sys/avl.h \
+       $(top_srcdir)/include/sys/avl_impl.h \
+       $(top_srcdir)/include/sys/bplist.h \
+       $(top_srcdir)/include/sys/bpobj.h \
+       $(top_srcdir)/include/sys/dbuf.h \
+       $(top_srcdir)/include/sys/ddt.h \
+       $(top_srcdir)/include/sys/dmu.h \
+       $(top_srcdir)/include/sys/dmu_impl.h \
+       $(top_srcdir)/include/sys/dmu_objset.h \
+       $(top_srcdir)/include/sys/dmu_traverse.h \
+       $(top_srcdir)/include/sys/dmu_tx.h \
+       $(top_srcdir)/include/sys/dmu_zfetch.h \
+       $(top_srcdir)/include/sys/dnode.h \
+       $(top_srcdir)/include/sys/dsl_dataset.h \
+       $(top_srcdir)/include/sys/dsl_deadlist.h \
+       $(top_srcdir)/include/sys/dsl_deleg.h \
+       $(top_srcdir)/include/sys/dsl_dir.h \
+       $(top_srcdir)/include/sys/dsl_pool.h \
+       $(top_srcdir)/include/sys/dsl_prop.h \
+       $(top_srcdir)/include/sys/dsl_scan.h \
+       $(top_srcdir)/include/sys/dsl_synctask.h \
+       $(top_srcdir)/include/sys/efi_partition.h \
+       $(top_srcdir)/include/sys/metaslab.h \
+       $(top_srcdir)/include/sys/metaslab_impl.h \
+       $(top_srcdir)/include/sys/nvpair.h \
+       $(top_srcdir)/include/sys/nvpair_impl.h \
+       $(top_srcdir)/include/sys/refcount.h \
+       $(top_srcdir)/include/sys/rrwlock.h \
+       $(top_srcdir)/include/sys/sa.h \
+       $(top_srcdir)/include/sys/sa_impl.h \
+       $(top_srcdir)/include/sys/spa_boot.h \
+       $(top_srcdir)/include/sys/space_map.h \
+       $(top_srcdir)/include/sys/spa.h \
+       $(top_srcdir)/include/sys/spa_impl.h \
+       $(top_srcdir)/include/sys/txg.h \
+       $(top_srcdir)/include/sys/txg_impl.h \
+       $(top_srcdir)/include/sys/u8_textprep_data.h \
+       $(top_srcdir)/include/sys/u8_textprep.h \
+       $(top_srcdir)/include/sys/uberblock.h \
+       $(top_srcdir)/include/sys/uberblock_impl.h \
+       $(top_srcdir)/include/sys/unique.h \
+       $(top_srcdir)/include/sys/uuid.h \
+       $(top_srcdir)/include/sys/vdev_disk.h \
+       $(top_srcdir)/include/sys/vdev_file.h \
+       $(top_srcdir)/include/sys/vdev.h \
+       $(top_srcdir)/include/sys/vdev_impl.h \
+       $(top_srcdir)/include/sys/zap.h \
+       $(top_srcdir)/include/sys/zap_impl.h \
+       $(top_srcdir)/include/sys/zap_leaf.h \
+       $(top_srcdir)/include/sys/zfs_acl.h \
+       $(top_srcdir)/include/sys/zfs_context.h \
+       $(top_srcdir)/include/sys/zfs_ctldir.h \
+       $(top_srcdir)/include/sys/zfs_debug.h \
+       $(top_srcdir)/include/sys/zfs_dir.h \
+       $(top_srcdir)/include/sys/zfs_fuid.h \
+       $(top_srcdir)/include/sys/zfs_rlock.h \
+       $(top_srcdir)/include/sys/zfs_sa.h \
+       $(top_srcdir)/include/sys/zfs_stat.h \
+       $(top_srcdir)/include/sys/zfs_vfsops.h \
+       $(top_srcdir)/include/sys/zfs_znode.h \
+       $(top_srcdir)/include/sys/zil.h \
+       $(top_srcdir)/include/sys/zil_impl.h \
+       $(top_srcdir)/include/sys/zio_checksum.h \
+       $(top_srcdir)/include/sys/zio_compress.h \
+       $(top_srcdir)/include/sys/zio.h \
+       $(top_srcdir)/include/sys/zio_impl.h \
+       $(top_srcdir)/include/sys/zrlock.h \
+       $(top_srcdir)/include/sys/blkdev.h \
+       $(top_srcdir)/include/sys/zfs_ioctl.h \
+       $(top_srcdir)/include/sys/zfs_onexit.h \
+       $(top_srcdir)/include/sys/zvol.h
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(kerneldir)" "$(DESTDIR)$(libzfsdir)"
+am__libzfs_HEADERS_DIST = $(top_srcdir)/include/sys/arc.h \
+       $(top_srcdir)/include/sys/avl.h \
+       $(top_srcdir)/include/sys/avl_impl.h \
+       $(top_srcdir)/include/sys/bplist.h \
+       $(top_srcdir)/include/sys/bpobj.h \
+       $(top_srcdir)/include/sys/dbuf.h \
+       $(top_srcdir)/include/sys/ddt.h \
+       $(top_srcdir)/include/sys/dmu.h \
+       $(top_srcdir)/include/sys/dmu_impl.h \
+       $(top_srcdir)/include/sys/dmu_objset.h \
+       $(top_srcdir)/include/sys/dmu_traverse.h \
+       $(top_srcdir)/include/sys/dmu_tx.h \
+       $(top_srcdir)/include/sys/dmu_zfetch.h \
+       $(top_srcdir)/include/sys/dnode.h \
+       $(top_srcdir)/include/sys/dsl_dataset.h \
+       $(top_srcdir)/include/sys/dsl_deadlist.h \
+       $(top_srcdir)/include/sys/dsl_deleg.h \
+       $(top_srcdir)/include/sys/dsl_dir.h \
+       $(top_srcdir)/include/sys/dsl_pool.h \
+       $(top_srcdir)/include/sys/dsl_prop.h \
+       $(top_srcdir)/include/sys/dsl_scan.h \
+       $(top_srcdir)/include/sys/dsl_synctask.h \
+       $(top_srcdir)/include/sys/efi_partition.h \
+       $(top_srcdir)/include/sys/metaslab.h \
+       $(top_srcdir)/include/sys/metaslab_impl.h \
+       $(top_srcdir)/include/sys/nvpair.h \
+       $(top_srcdir)/include/sys/nvpair_impl.h \
+       $(top_srcdir)/include/sys/refcount.h \
+       $(top_srcdir)/include/sys/rrwlock.h \
+       $(top_srcdir)/include/sys/sa.h \
+       $(top_srcdir)/include/sys/sa_impl.h \
+       $(top_srcdir)/include/sys/spa_boot.h \
+       $(top_srcdir)/include/sys/space_map.h \
+       $(top_srcdir)/include/sys/spa.h \
+       $(top_srcdir)/include/sys/spa_impl.h \
+       $(top_srcdir)/include/sys/txg.h \
+       $(top_srcdir)/include/sys/txg_impl.h \
+       $(top_srcdir)/include/sys/u8_textprep_data.h \
+       $(top_srcdir)/include/sys/u8_textprep.h \
+       $(top_srcdir)/include/sys/uberblock.h \
+       $(top_srcdir)/include/sys/uberblock_impl.h \
+       $(top_srcdir)/include/sys/unique.h \
+       $(top_srcdir)/include/sys/uuid.h \
+       $(top_srcdir)/include/sys/vdev_disk.h \
+       $(top_srcdir)/include/sys/vdev_file.h \
+       $(top_srcdir)/include/sys/vdev.h \
+       $(top_srcdir)/include/sys/vdev_impl.h \
+       $(top_srcdir)/include/sys/zap.h \
+       $(top_srcdir)/include/sys/zap_impl.h \
+       $(top_srcdir)/include/sys/zap_leaf.h \
+       $(top_srcdir)/include/sys/zfs_acl.h \
+       $(top_srcdir)/include/sys/zfs_context.h \
+       $(top_srcdir)/include/sys/zfs_ctldir.h \
+       $(top_srcdir)/include/sys/zfs_debug.h \
+       $(top_srcdir)/include/sys/zfs_dir.h \
+       $(top_srcdir)/include/sys/zfs_fuid.h \
+       $(top_srcdir)/include/sys/zfs_rlock.h \
+       $(top_srcdir)/include/sys/zfs_sa.h \
+       $(top_srcdir)/include/sys/zfs_stat.h \
+       $(top_srcdir)/include/sys/zfs_vfsops.h \
+       $(top_srcdir)/include/sys/zfs_znode.h \
+       $(top_srcdir)/include/sys/zil.h \
+       $(top_srcdir)/include/sys/zil_impl.h \
+       $(top_srcdir)/include/sys/zio_checksum.h \
+       $(top_srcdir)/include/sys/zio_compress.h \
+       $(top_srcdir)/include/sys/zio.h \
+       $(top_srcdir)/include/sys/zio_impl.h \
+       $(top_srcdir)/include/sys/zrlock.h
+HEADERS = $(kernel_HEADERS) $(libzfs_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = fm fs
+COMMON_H = \
+       $(top_srcdir)/include/sys/arc.h \
+       $(top_srcdir)/include/sys/avl.h \
+       $(top_srcdir)/include/sys/avl_impl.h \
+       $(top_srcdir)/include/sys/bplist.h \
+       $(top_srcdir)/include/sys/bpobj.h \
+       $(top_srcdir)/include/sys/dbuf.h \
+       $(top_srcdir)/include/sys/ddt.h \
+       $(top_srcdir)/include/sys/dmu.h \
+       $(top_srcdir)/include/sys/dmu_impl.h \
+       $(top_srcdir)/include/sys/dmu_objset.h \
+       $(top_srcdir)/include/sys/dmu_traverse.h \
+       $(top_srcdir)/include/sys/dmu_tx.h \
+       $(top_srcdir)/include/sys/dmu_zfetch.h \
+       $(top_srcdir)/include/sys/dnode.h \
+       $(top_srcdir)/include/sys/dsl_dataset.h \
+       $(top_srcdir)/include/sys/dsl_deadlist.h \
+       $(top_srcdir)/include/sys/dsl_deleg.h \
+       $(top_srcdir)/include/sys/dsl_dir.h \
+       $(top_srcdir)/include/sys/dsl_pool.h \
+       $(top_srcdir)/include/sys/dsl_prop.h \
+       $(top_srcdir)/include/sys/dsl_scan.h \
+       $(top_srcdir)/include/sys/dsl_synctask.h \
+       $(top_srcdir)/include/sys/efi_partition.h \
+       $(top_srcdir)/include/sys/metaslab.h \
+       $(top_srcdir)/include/sys/metaslab_impl.h \
+       $(top_srcdir)/include/sys/nvpair.h \
+       $(top_srcdir)/include/sys/nvpair_impl.h \
+       $(top_srcdir)/include/sys/refcount.h \
+       $(top_srcdir)/include/sys/rrwlock.h \
+       $(top_srcdir)/include/sys/sa.h \
+       $(top_srcdir)/include/sys/sa_impl.h \
+       $(top_srcdir)/include/sys/spa_boot.h \
+       $(top_srcdir)/include/sys/space_map.h \
+       $(top_srcdir)/include/sys/spa.h \
+       $(top_srcdir)/include/sys/spa_impl.h \
+       $(top_srcdir)/include/sys/txg.h \
+       $(top_srcdir)/include/sys/txg_impl.h \
+       $(top_srcdir)/include/sys/u8_textprep_data.h \
+       $(top_srcdir)/include/sys/u8_textprep.h \
+       $(top_srcdir)/include/sys/uberblock.h \
+       $(top_srcdir)/include/sys/uberblock_impl.h \
+       $(top_srcdir)/include/sys/unique.h \
+       $(top_srcdir)/include/sys/uuid.h \
+       $(top_srcdir)/include/sys/vdev_disk.h \
+       $(top_srcdir)/include/sys/vdev_file.h \
+       $(top_srcdir)/include/sys/vdev.h \
+       $(top_srcdir)/include/sys/vdev_impl.h \
+       $(top_srcdir)/include/sys/zap.h \
+       $(top_srcdir)/include/sys/zap_impl.h \
+       $(top_srcdir)/include/sys/zap_leaf.h \
+       $(top_srcdir)/include/sys/zfs_acl.h \
+       $(top_srcdir)/include/sys/zfs_context.h \
+       $(top_srcdir)/include/sys/zfs_ctldir.h \
+       $(top_srcdir)/include/sys/zfs_debug.h \
+       $(top_srcdir)/include/sys/zfs_dir.h \
+       $(top_srcdir)/include/sys/zfs_fuid.h \
+       $(top_srcdir)/include/sys/zfs_rlock.h \
+       $(top_srcdir)/include/sys/zfs_sa.h \
+       $(top_srcdir)/include/sys/zfs_stat.h \
+       $(top_srcdir)/include/sys/zfs_vfsops.h \
+       $(top_srcdir)/include/sys/zfs_znode.h \
+       $(top_srcdir)/include/sys/zil.h \
+       $(top_srcdir)/include/sys/zil_impl.h \
+       $(top_srcdir)/include/sys/zio_checksum.h \
+       $(top_srcdir)/include/sys/zio_compress.h \
+       $(top_srcdir)/include/sys/zio.h \
+       $(top_srcdir)/include/sys/zio_impl.h \
+       $(top_srcdir)/include/sys/zrlock.h
+
+KERNEL_H = \
+       $(top_srcdir)/include/sys/blkdev.h \
+       $(top_srcdir)/include/sys/zfs_ioctl.h \
+       $(top_srcdir)/include/sys/zfs_onexit.h \
+       $(top_srcdir)/include/sys/zvol.h
+
+USER_H = 
+EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+@CONFIG_USER_TRUE@libzfsdir = $(includedir)/libzfs/sys
+@CONFIG_USER_TRUE@libzfs_HEADERS = $(COMMON_H) $(USER_H)
+@CONFIG_KERNEL_TRUE@kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION)/sys
+@CONFIG_KERNEL_TRUE@kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/sys/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu include/sys/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-kernelHEADERS: $(kernel_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(kerneldir)" || $(MKDIR_P) "$(DESTDIR)$(kerneldir)"
+       @list='$(kernel_HEADERS)'; test -n "$(kerneldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(kerneldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(kerneldir)" || exit $$?; \
+       done
+
+uninstall-kernelHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(kernel_HEADERS)'; test -n "$(kerneldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(kerneldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(kerneldir)" && rm -f $$files
+install-libzfsHEADERS: $(libzfs_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libzfsdir)" || $(MKDIR_P) "$(DESTDIR)$(libzfsdir)"
+       @list='$(libzfs_HEADERS)'; test -n "$(libzfsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libzfsdir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libzfsdir)" || exit $$?; \
+       done
+
+uninstall-libzfsHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libzfs_HEADERS)'; test -n "$(libzfsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libzfsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libzfsdir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+       for dir in "$(DESTDIR)$(kerneldir)" "$(DESTDIR)$(libzfsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-kernelHEADERS install-libzfsHEADERS
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-kernelHEADERS uninstall-libzfsHEADERS
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       ctags ctags-recursive distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-kernelHEADERS install-libzfsHEADERS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+       uninstall uninstall-am uninstall-kernelHEADERS \
+       uninstall-libzfsHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/include/sys/arc.h b/include/sys/arc.h
new file mode 100644 (file)
index 0000000..8f189c6
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_ARC_H
+#define        _SYS_ARC_H
+
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/zio.h>
+#include <sys/dmu.h>
+#include <sys/spa.h>
+
+typedef struct arc_buf_hdr arc_buf_hdr_t;
+typedef struct arc_buf arc_buf_t;
+typedef void arc_done_func_t(zio_t *zio, arc_buf_t *buf, void *private);
+typedef int arc_evict_func_t(void *private);
+
+/* generic arc_done_func_t's which you can use */
+arc_done_func_t arc_bcopy_func;
+arc_done_func_t arc_getbuf_func;
+
+struct arc_buf {
+       arc_buf_hdr_t           *b_hdr;
+       arc_buf_t               *b_next;
+       kmutex_t                b_evict_lock;
+       krwlock_t               b_data_lock;
+       void                    *b_data;
+       arc_evict_func_t        *b_efunc;
+       void                    *b_private;
+};
+
+typedef enum arc_buf_contents {
+       ARC_BUFC_DATA,                          /* buffer contains data */
+       ARC_BUFC_METADATA,                      /* buffer contains metadata */
+       ARC_BUFC_NUMTYPES
+} arc_buf_contents_t;
+/*
+ * These are the flags we pass into calls to the arc
+ */
+#define        ARC_WAIT        (1 << 1)        /* perform I/O synchronously */
+#define        ARC_NOWAIT      (1 << 2)        /* perform I/O asynchronously */
+#define        ARC_PREFETCH    (1 << 3)        /* I/O is a prefetch */
+#define        ARC_CACHED      (1 << 4)        /* I/O was already in cache */
+#define        ARC_L2CACHE     (1 << 5)        /* cache in L2ARC */
+
+/*
+ * The following breakdows of arc_size exist for kstat only.
+ */
+typedef enum arc_space_type {
+       ARC_SPACE_DATA,
+       ARC_SPACE_HDRS,
+       ARC_SPACE_L2HDRS,
+       ARC_SPACE_OTHER,
+       ARC_SPACE_NUMTYPES
+} arc_space_type_t;
+
+void arc_space_consume(uint64_t space, arc_space_type_t type);
+void arc_space_return(uint64_t space, arc_space_type_t type);
+void *arc_data_buf_alloc(uint64_t space);
+void arc_data_buf_free(void *buf, uint64_t space);
+arc_buf_t *arc_buf_alloc(spa_t *spa, int size, void *tag,
+    arc_buf_contents_t type);
+arc_buf_t *arc_loan_buf(spa_t *spa, int size);
+void arc_return_buf(arc_buf_t *buf, void *tag);
+void arc_loan_inuse_buf(arc_buf_t *buf, void *tag);
+void arc_buf_add_ref(arc_buf_t *buf, void *tag);
+int arc_buf_remove_ref(arc_buf_t *buf, void *tag);
+int arc_buf_size(arc_buf_t *buf);
+void arc_release(arc_buf_t *buf, void *tag);
+int arc_release_bp(arc_buf_t *buf, void *tag, blkptr_t *bp, spa_t *spa,
+    zbookmark_t *zb);
+int arc_released(arc_buf_t *buf);
+int arc_has_callback(arc_buf_t *buf);
+void arc_buf_freeze(arc_buf_t *buf);
+void arc_buf_thaw(arc_buf_t *buf);
+#ifdef ZFS_DEBUG
+int arc_referenced(arc_buf_t *buf);
+#endif
+
+int arc_read(zio_t *pio, spa_t *spa, const blkptr_t *bp, arc_buf_t *pbuf,
+    arc_done_func_t *done, void *private, int priority, int zio_flags,
+    uint32_t *arc_flags, const zbookmark_t *zb);
+int arc_read_nolock(zio_t *pio, spa_t *spa, const blkptr_t *bp,
+    arc_done_func_t *done, void *private, int priority, int flags,
+    uint32_t *arc_flags, const zbookmark_t *zb);
+zio_t *arc_write(zio_t *pio, spa_t *spa, uint64_t txg,
+    blkptr_t *bp, arc_buf_t *buf, boolean_t l2arc, const zio_prop_t *zp,
+    arc_done_func_t *ready, arc_done_func_t *done, void *private,
+    int priority, int zio_flags, const zbookmark_t *zb);
+
+void arc_set_callback(arc_buf_t *buf, arc_evict_func_t *func, void *private);
+int arc_buf_evict(arc_buf_t *buf);
+
+void arc_flush(spa_t *spa);
+void arc_tempreserve_clear(uint64_t reserve);
+int arc_tempreserve_space(uint64_t reserve, uint64_t txg);
+
+void arc_init(void);
+void arc_fini(void);
+
+/*
+ * Level 2 ARC
+ */
+
+void l2arc_add_vdev(spa_t *spa, vdev_t *vd);
+void l2arc_remove_vdev(vdev_t *vd);
+boolean_t l2arc_vdev_present(vdev_t *vd);
+void l2arc_init(void);
+void l2arc_fini(void);
+void l2arc_start(void);
+void l2arc_stop(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ARC_H */
diff --git a/include/sys/avl.h b/include/sys/avl.h
new file mode 100644 (file)
index 0000000..ba305c9
--- /dev/null
@@ -0,0 +1,309 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _AVL_H
+#define        _AVL_H
+
+/*
+ * This is a private header file.  Applications should not directly include
+ * this file.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/types.h>
+#include <sys/avl_impl.h>
+
+/*
+ * This is a generic implemenatation of AVL trees for use in the Solaris kernel.
+ * The interfaces provide an efficient way of implementing an ordered set of
+ * data structures.
+ *
+ * AVL trees provide an alternative to using an ordered linked list. Using AVL
+ * trees will usually be faster, however they requires more storage. An ordered
+ * linked list in general requires 2 pointers in each data structure. The
+ * AVL tree implementation uses 3 pointers. The following chart gives the
+ * approximate performance of operations with the different approaches:
+ *
+ *     Operation        Link List      AVL tree
+ *     ---------        --------       --------
+ *     lookup             O(n)         O(log(n))
+ *
+ *     insert 1 node    constant       constant
+ *
+ *     delete 1 node    constant       between constant and O(log(n))
+ *
+ *     delete all nodes   O(n)         O(n)
+ *
+ *     visit the next
+ *     or prev node     constant       between constant and O(log(n))
+ *
+ *
+ * The data structure nodes are anchored at an "avl_tree_t" (the equivalent
+ * of a list header) and the individual nodes will have a field of
+ * type "avl_node_t" (corresponding to list pointers).
+ *
+ * The type "avl_index_t" is used to indicate a position in the list for
+ * certain calls.
+ *
+ * The usage scenario is generally:
+ *
+ * 1. Create the list/tree with: avl_create()
+ *
+ * followed by any mixture of:
+ *
+ * 2a. Insert nodes with: avl_add(), or avl_find() and avl_insert()
+ *
+ * 2b. Visited elements with:
+ *      avl_first() - returns the lowest valued node
+ *      avl_last() - returns the highest valued node
+ *      AVL_NEXT() - given a node go to next higher one
+ *      AVL_PREV() - given a node go to previous lower one
+ *
+ * 2c.  Find the node with the closest value either less than or greater
+ *     than a given value with avl_nearest().
+ *
+ * 2d. Remove individual nodes from the list/tree with avl_remove().
+ *
+ * and finally when the list is being destroyed
+ *
+ * 3. Use avl_destroy_nodes() to quickly process/free up any remaining nodes.
+ *    Note that once you use avl_destroy_nodes(), you can no longer
+ *    use any routine except avl_destroy_nodes() and avl_destoy().
+ *
+ * 4. Use avl_destroy() to destroy the AVL tree itself.
+ *
+ * Any locking for multiple thread access is up to the user to provide, just
+ * as is needed for any linked list implementation.
+ */
+
+
+/*
+ * Type used for the root of the AVL tree.
+ */
+typedef struct avl_tree avl_tree_t;
+
+/*
+ * The data nodes in the AVL tree must have a field of this type.
+ */
+typedef struct avl_node avl_node_t;
+
+/*
+ * An opaque type used to locate a position in the tree where a node
+ * would be inserted.
+ */
+typedef uintptr_t avl_index_t;
+
+
+/*
+ * Direction constants used for avl_nearest().
+ */
+#define        AVL_BEFORE      (0)
+#define        AVL_AFTER       (1)
+
+
+/*
+ * Prototypes
+ *
+ * Where not otherwise mentioned, "void *" arguments are a pointer to the
+ * user data structure which must contain a field of type avl_node_t.
+ *
+ * Also assume the user data structures looks like:
+ *     stuct my_type {
+ *             ...
+ *             avl_node_t      my_link;
+ *             ...
+ *     };
+ */
+
+/*
+ * Initialize an AVL tree. Arguments are:
+ *
+ * tree   - the tree to be initialized
+ * compar - function to compare two nodes, it must return exactly: -1, 0, or +1
+ *          -1 for <, 0 for ==, and +1 for >
+ * size   - the value of sizeof(struct my_type)
+ * offset - the value of OFFSETOF(struct my_type, my_link)
+ */
+extern void avl_create(avl_tree_t *tree,
+       int (*compar) (const void *, const void *), size_t size, size_t offset);
+
+
+/*
+ * Find a node with a matching value in the tree. Returns the matching node
+ * found. If not found, it returns NULL and then if "where" is not NULL it sets
+ * "where" for use with avl_insert() or avl_nearest().
+ *
+ * node   - node that has the value being looked for
+ * where  - position for use with avl_nearest() or avl_insert(), may be NULL
+ */
+extern void *avl_find(avl_tree_t *tree, const void *node, avl_index_t *where);
+
+/*
+ * Insert a node into the tree.
+ *
+ * node   - the node to insert
+ * where  - position as returned from avl_find()
+ */
+extern void avl_insert(avl_tree_t *tree, void *node, avl_index_t where);
+
+/*
+ * Insert "new_data" in "tree" in the given "direction" either after
+ * or before the data "here".
+ *
+ * This might be usefull for avl clients caching recently accessed
+ * data to avoid doing avl_find() again for insertion.
+ *
+ * new_data    - new data to insert
+ * here                - existing node in "tree"
+ * direction   - either AVL_AFTER or AVL_BEFORE the data "here".
+ */
+extern void avl_insert_here(avl_tree_t *tree, void *new_data, void *here,
+    int direction);
+
+
+/*
+ * Return the first or last valued node in the tree. Will return NULL
+ * if the tree is empty.
+ *
+ */
+extern void *avl_first(avl_tree_t *tree);
+extern void *avl_last(avl_tree_t *tree);
+
+
+/*
+ * Return the next or previous valued node in the tree.
+ * AVL_NEXT() will return NULL if at the last node.
+ * AVL_PREV() will return NULL if at the first node.
+ *
+ * node   - the node from which the next or previous node is found
+ */
+#define        AVL_NEXT(tree, node)    avl_walk(tree, node, AVL_AFTER)
+#define        AVL_PREV(tree, node)    avl_walk(tree, node, AVL_BEFORE)
+
+
+/*
+ * Find the node with the nearest value either greater or less than
+ * the value from a previous avl_find(). Returns the node or NULL if
+ * there isn't a matching one.
+ *
+ * where     - position as returned from avl_find()
+ * direction - either AVL_BEFORE or AVL_AFTER
+ *
+ * EXAMPLE get the greatest node that is less than a given value:
+ *
+ *     avl_tree_t *tree;
+ *     struct my_data look_for_value = {....};
+ *     struct my_data *node;
+ *     struct my_data *less;
+ *     avl_index_t where;
+ *
+ *     node = avl_find(tree, &look_for_value, &where);
+ *     if (node != NULL)
+ *             less = AVL_PREV(tree, node);
+ *     else
+ *             less = avl_nearest(tree, where, AVL_BEFORE);
+ */
+extern void *avl_nearest(avl_tree_t *tree, avl_index_t where, int direction);
+
+
+/*
+ * Add a single node to the tree.
+ * The node must not be in the tree, and it must not
+ * compare equal to any other node already in the tree.
+ *
+ * node   - the node to add
+ */
+extern void avl_add(avl_tree_t *tree, void *node);
+
+
+/*
+ * Remove a single node from the tree.  The node must be in the tree.
+ *
+ * node   - the node to remove
+ */
+extern void avl_remove(avl_tree_t *tree, void *node);
+
+/*
+ * Reinsert a node only if its order has changed relative to its nearest
+ * neighbors. To optimize performance avl_update_lt() checks only the previous
+ * node and avl_update_gt() checks only the next node. Use avl_update_lt() and
+ * avl_update_gt() only if you know the direction in which the order of the
+ * node may change.
+ */
+extern boolean_t avl_update(avl_tree_t *, void *);
+extern boolean_t avl_update_lt(avl_tree_t *, void *);
+extern boolean_t avl_update_gt(avl_tree_t *, void *);
+
+/*
+ * Return the number of nodes in the tree
+ */
+extern ulong_t avl_numnodes(avl_tree_t *tree);
+
+/*
+ * Return B_TRUE if there are zero nodes in the tree, B_FALSE otherwise.
+ */
+extern boolean_t avl_is_empty(avl_tree_t *tree);
+
+/*
+ * Used to destroy any remaining nodes in a tree. The cookie argument should
+ * be initialized to NULL before the first call. Returns a node that has been
+ * removed from the tree and may be free()'d. Returns NULL when the tree is
+ * empty.
+ *
+ * Once you call avl_destroy_nodes(), you can only continuing calling it and
+ * finally avl_destroy(). No other AVL routines will be valid.
+ *
+ * cookie - a "void *" used to save state between calls to avl_destroy_nodes()
+ *
+ * EXAMPLE:
+ *     avl_tree_t *tree;
+ *     struct my_data *node;
+ *     void *cookie;
+ *
+ *     cookie = NULL;
+ *     while ((node = avl_destroy_nodes(tree, &cookie)) != NULL)
+ *             free(node);
+ *     avl_destroy(tree);
+ */
+extern void *avl_destroy_nodes(avl_tree_t *tree, void **cookie);
+
+
+/*
+ * Final destroy of an AVL tree. Arguments are:
+ *
+ * tree   - the empty tree to destroy
+ */
+extern void avl_destroy(avl_tree_t *tree);
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AVL_H */
diff --git a/include/sys/avl_impl.h b/include/sys/avl_impl.h
new file mode 100644 (file)
index 0000000..fddf769
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _AVL_IMPL_H
+#define        _AVL_IMPL_H
+
+
+
+/*
+ * This is a private header file.  Applications should not directly include
+ * this file.
+ */
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+ * generic AVL tree implementation for kernel use
+ *
+ * There are 5 pieces of information stored for each node in an AVL tree
+ *
+ *     pointer to less than child
+ *     pointer to greater than child
+ *     a pointer to the parent of this node
+ *     an indication  [0/1]  of which child I am of my parent
+ *     a "balance" (-1, 0, +1)  indicating which child tree is taller
+ *
+ * Since they only need 3 bits, the last two fields are packed into the
+ * bottom bits of the parent pointer on 64 bit machines to save on space.
+ */
+
+#ifndef _LP64
+
+struct avl_node {
+       struct avl_node *avl_child[2];  /* left/right children */
+       struct avl_node *avl_parent;    /* this node's parent */
+       unsigned short avl_child_index; /* my index in parent's avl_child[] */
+       short avl_balance;              /* balance value: -1, 0, +1 */
+};
+
+#define        AVL_XPARENT(n)          ((n)->avl_parent)
+#define        AVL_SETPARENT(n, p)     ((n)->avl_parent = (p))
+
+#define        AVL_XCHILD(n)           ((n)->avl_child_index)
+#define        AVL_SETCHILD(n, c)      ((n)->avl_child_index = (unsigned short)(c))
+
+#define        AVL_XBALANCE(n)         ((n)->avl_balance)
+#define        AVL_SETBALANCE(n, b)    ((n)->avl_balance = (short)(b))
+
+#else /* _LP64 */
+
+/*
+ * for 64 bit machines, avl_pcb contains parent pointer, balance and child_index
+ * values packed in the following manner:
+ *
+ * |63                                  3|        2        |1          0 |
+ * |-------------------------------------|-----------------|-------------|
+ * |      avl_parent hi order bits       | avl_child_index | avl_balance |
+ * |                                     |                 |     + 1     |
+ * |-------------------------------------|-----------------|-------------|
+ *
+ */
+struct avl_node {
+       struct avl_node *avl_child[2];  /* left/right children nodes */
+       uintptr_t avl_pcb;              /* parent, child_index, balance */
+};
+
+/*
+ * macros to extract/set fields in avl_pcb
+ *
+ * pointer to the parent of the current node is the high order bits
+ */
+#define        AVL_XPARENT(n)          ((struct avl_node *)((n)->avl_pcb & ~7))
+#define        AVL_SETPARENT(n, p)                                             \
+       ((n)->avl_pcb = (((n)->avl_pcb & 7) | (uintptr_t)(p)))
+
+/*
+ * index of this node in its parent's avl_child[]: bit #2
+ */
+#define        AVL_XCHILD(n)           (((n)->avl_pcb >> 2) & 1)
+#define        AVL_SETCHILD(n, c)                                              \
+       ((n)->avl_pcb = (uintptr_t)(((n)->avl_pcb & ~4) | ((c) << 2)))
+
+/*
+ * balance indication for a node, lowest 2 bits. A valid balance is
+ * -1, 0, or +1, and is encoded by adding 1 to the value to get the
+ * unsigned values of 0, 1, 2.
+ */
+#define        AVL_XBALANCE(n)         ((int)(((n)->avl_pcb & 3) - 1))
+#define        AVL_SETBALANCE(n, b)                                            \
+       ((n)->avl_pcb = (uintptr_t)((((n)->avl_pcb & ~3) | ((b) + 1))))
+
+#endif /* _LP64 */
+
+
+
+/*
+ * switch between a node and data pointer for a given tree
+ * the value of "o" is tree->avl_offset
+ */
+#define        AVL_NODE2DATA(n, o)     ((void *)((uintptr_t)(n) - (o)))
+#define        AVL_DATA2NODE(d, o)     ((struct avl_node *)((uintptr_t)(d) + (o)))
+
+
+
+/*
+ * macros used to create/access an avl_index_t
+ */
+#define        AVL_INDEX2NODE(x)       ((avl_node_t *)((x) & ~1))
+#define        AVL_INDEX2CHILD(x)      ((x) & 1)
+#define        AVL_MKINDEX(n, c)       ((avl_index_t)(n) | (c))
+
+
+/*
+ * The tree structure. The fields avl_root, avl_compar, and avl_offset come
+ * first since they are needed for avl_find().  We want them to fit into
+ * a single 64 byte cache line to make avl_find() as fast as possible.
+ */
+struct avl_tree {
+       struct avl_node *avl_root;      /* root node in tree */
+       int (*avl_compar)(const void *, const void *);
+       size_t avl_offset;              /* offsetof(type, avl_link_t field) */
+       ulong_t avl_numnodes;           /* number of nodes in the tree */
+       size_t avl_size;                /* sizeof user type struct */
+};
+
+
+/*
+ * This will only by used via AVL_NEXT() or AVL_PREV()
+ */
+extern void *avl_walk(struct avl_tree *, void *, int);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _AVL_IMPL_H */
diff --git a/include/sys/blkdev.h b/include/sys/blkdev.h
new file mode 100644 (file)
index 0000000..b84f66a
--- /dev/null
@@ -0,0 +1,211 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
+ * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+ * Written by Brian Behlendorf <behlendorf1@llnl.gov>.
+ * LLNL-CODE-403049.
+ */
+
+#ifndef        _SYS_BLKDEV_H
+#define        _SYS_BLKDEV_H
+
+#ifdef _KERNEL
+
+#include <linux/blkdev.h>
+#include <linux/elevator.h>
+
+#ifndef HAVE_FMODE_T
+typedef unsigned __bitwise__ fmode_t;
+#endif /* HAVE_FMODE_T */
+
+#ifndef HAVE_BLK_FETCH_REQUEST
+static inline struct request *
+blk_fetch_request(struct request_queue *q)
+{
+       struct request *req;
+
+       req = elv_next_request(q);
+       if (req)
+               blkdev_dequeue_request(req);
+
+       return req;
+}
+#endif /* HAVE_BLK_FETCH_REQUEST */
+
+#ifndef HAVE_BLK_REQUEUE_REQUEST
+static inline void
+blk_requeue_request(request_queue_t *q, struct request *req)
+{
+       elv_requeue_request(q, req);
+}
+#endif /* HAVE_BLK_REQUEUE_REQUEST */
+
+#ifndef HAVE_BLK_END_REQUEST
+static inline bool
+__blk_end_request(struct request *req, int error, unsigned int nr_bytes)
+{
+       LIST_HEAD(list);
+
+       /*
+        * Request has already been dequeued but 2.6.18 version of
+        * end_request() unconditionally dequeues the request so we
+        * add it to a local list to prevent hitting the BUG_ON.
+        */
+       list_add(&req->queuelist, &list);
+
+       /*
+        * The old API required the driver to end each segment and not
+        * the entire request.  In our case we always need to end the
+        * entire request partial requests are not supported.
+        */
+       req->hard_cur_sectors = nr_bytes >> 9;
+       end_request(req, ((error == 0) ? 1 : error));
+
+       return 0;
+}
+
+static inline bool
+blk_end_request(struct request *req, int error, unsigned int nr_bytes)
+{
+       struct request_queue *q = req->q;
+       bool rc;
+
+       spin_lock_irq(q->queue_lock);
+       rc = __blk_end_request(req, error, nr_bytes);
+       spin_unlock_irq(q->queue_lock);
+
+       return rc;
+}
+#else
+# ifdef HAVE_BLK_END_REQUEST_GPL_ONLY
+/*
+ * Define required to avoid conflicting 2.6.29 non-static prototype for a
+ * GPL-only version of the helper.  As of 2.6.31 the helper is available
+ * to non-GPL modules and is not explicitly exported GPL-only.
+ */
+# define __blk_end_request __blk_end_request_x
+# define blk_end_request blk_end_request_x
+
+static inline bool
+__blk_end_request_x(struct request *req, int error, unsigned int nr_bytes)
+{
+       /*
+        * The old API required the driver to end each segment and not
+        * the entire request.  In our case we always need to end the
+        * entire request partial requests are not supported.
+        */
+       req->hard_cur_sectors = nr_bytes >> 9;
+       end_request(req, ((error == 0) ? 1 : error));
+
+       return 0;
+}
+static inline bool
+blk_end_request_x(struct request *req, int error, unsigned int nr_bytes)
+{
+       struct request_queue *q = req->q;
+       bool rc;
+
+       spin_lock_irq(q->queue_lock);
+       rc = __blk_end_request_x(req, error, nr_bytes);
+       spin_unlock_irq(q->queue_lock);
+
+       return rc;
+}
+# endif /* HAVE_BLK_END_REQUEST_GPL_ONLY */
+#endif /* HAVE_BLK_END_REQUEST */
+
+#ifndef HAVE_BLK_RQ_POS
+static inline sector_t
+blk_rq_pos(struct request *req)
+{
+       return req->sector;
+}
+#endif /* HAVE_BLK_RQ_POS */
+
+#ifndef HAVE_BLK_RQ_SECTORS
+static inline unsigned int
+blk_rq_sectors(struct request *req)
+{
+       return req->nr_sectors;
+}
+#endif /* HAVE_BLK_RQ_SECTORS */
+
+#if !defined(HAVE_BLK_RQ_BYTES) || defined(HAVE_BLK_RQ_BYTES_GPL_ONLY)
+/*
+ * Define required to avoid conflicting 2.6.29 non-static prototype for a
+ * GPL-only version of the helper.  As of 2.6.31 the helper is available
+ * to non-GPL modules in the form of a static inline in the header.
+ */
+#define blk_rq_bytes __blk_rq_bytes
+static inline unsigned int
+__blk_rq_bytes(struct request *req)
+{
+       return blk_rq_sectors(req) << 9;
+}
+#endif /* !HAVE_BLK_RQ_BYTES || HAVE_BLK_RQ_BYTES_GPL_ONLY */
+
+#ifndef HAVE_GET_DISK_RO
+static inline int
+get_disk_ro(struct gendisk *disk)
+{
+       int policy = 0;
+
+       if (disk->part[0])
+               policy = disk->part[0]->policy;
+
+       return policy;
+}
+#endif /* HAVE_GET_DISK_RO */
+
+#ifndef HAVE_RQ_IS_SYNC
+static inline bool
+rq_is_sync(struct request *req)
+{
+       return (req->flags & REQ_RW_SYNC);
+}
+#endif /* HAVE_RQ_IS_SYNC */
+
+#ifndef HAVE_RQ_FOR_EACH_SEGMENT
+struct req_iterator {
+       int i;
+       struct bio *bio;
+};
+
+# define for_each_bio(_bio)              \
+       for (; _bio; _bio = _bio->bi_next)
+
+# define __rq_for_each_bio(_bio, rq)    \
+       if ((rq->bio))                  \
+               for (_bio = (rq)->bio; _bio; _bio = _bio->bi_next)
+
+# define rq_for_each_segment(bvl, _rq, _iter)                   \
+       __rq_for_each_bio(_iter.bio, _rq)                       \
+               bio_for_each_segment(bvl, _iter.bio, _iter.i)
+#endif /* HAVE_RQ_FOR_EACH_SEGMENT */
+
+#ifndef DISK_NAME_LEN
+#define DISK_NAME_LEN  32
+#endif /* DISK_NAME_LEN */
+
+#endif /* KERNEL */
+
+#endif /* _SYS_BLKDEV_H */
diff --git a/include/sys/bplist.h b/include/sys/bplist.h
new file mode 100644 (file)
index 0000000..471be90
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_BPLIST_H
+#define        _SYS_BPLIST_H
+
+#include <sys/zfs_context.h>
+#include <sys/spa.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct bplist_entry {
+       blkptr_t        bpe_blk;
+       list_node_t     bpe_node;
+} bplist_entry_t;
+
+typedef struct bplist {
+       kmutex_t        bpl_lock;
+       list_t          bpl_list;
+} bplist_t;
+
+typedef int bplist_itor_t(void *arg, const blkptr_t *bp, dmu_tx_t *tx);
+
+void bplist_create(bplist_t *bpl);
+void bplist_destroy(bplist_t *bpl);
+void bplist_append(bplist_t *bpl, const blkptr_t *bp);
+void bplist_iterate(bplist_t *bpl, bplist_itor_t *func,
+    void *arg, dmu_tx_t *tx);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_BPLIST_H */
diff --git a/include/sys/bpobj.h b/include/sys/bpobj.h
new file mode 100644 (file)
index 0000000..3771a95
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_BPOBJ_H
+#define        _SYS_BPOBJ_H
+
+#include <sys/dmu.h>
+#include <sys/spa.h>
+#include <sys/txg.h>
+#include <sys/zio.h>
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct bpobj_phys {
+       /*
+        * This is the bonus buffer for the dead lists.  The object's
+        * contents is an array of bpo_entries blkptr_t's, representing
+        * a total of bpo_bytes physical space.
+        */
+       uint64_t        bpo_num_blkptrs;
+       uint64_t        bpo_bytes;
+       uint64_t        bpo_comp;
+       uint64_t        bpo_uncomp;
+       uint64_t        bpo_subobjs;
+       uint64_t        bpo_num_subobjs;
+} bpobj_phys_t;
+
+#define        BPOBJ_SIZE_V0   (2 * sizeof (uint64_t))
+#define        BPOBJ_SIZE_V1   (4 * sizeof (uint64_t))
+
+typedef struct bpobj {
+       kmutex_t        bpo_lock;
+       objset_t        *bpo_os;
+       uint64_t        bpo_object;
+       int             bpo_epb;
+       uint8_t         bpo_havecomp;
+       uint8_t         bpo_havesubobj;
+       bpobj_phys_t    *bpo_phys;
+       dmu_buf_t       *bpo_dbuf;
+       dmu_buf_t       *bpo_cached_dbuf;
+} bpobj_t;
+
+typedef int bpobj_itor_t(void *arg, const blkptr_t *bp, dmu_tx_t *tx);
+
+uint64_t bpobj_alloc(objset_t *mos, int blocksize, dmu_tx_t *tx);
+void bpobj_free(objset_t *os, uint64_t obj, dmu_tx_t *tx);
+
+int bpobj_open(bpobj_t *bpo, objset_t *mos, uint64_t object);
+void bpobj_close(bpobj_t *bpo);
+
+int bpobj_iterate(bpobj_t *bpo, bpobj_itor_t func, void *arg, dmu_tx_t *tx);
+int bpobj_iterate_nofree(bpobj_t *bpo, bpobj_itor_t func, void *, dmu_tx_t *);
+int bpobj_iterate_dbg(bpobj_t *bpo, uint64_t *itorp, blkptr_t *bp);
+
+void bpobj_enqueue_subobj(bpobj_t *bpo, uint64_t subobj, dmu_tx_t *tx);
+void bpobj_enqueue(bpobj_t *bpo, const blkptr_t *bp, dmu_tx_t *tx);
+
+int bpobj_space(bpobj_t *bpo,
+    uint64_t *usedp, uint64_t *compp, uint64_t *uncompp);
+int bpobj_space_range(bpobj_t *bpo, uint64_t mintxg, uint64_t maxtxg,
+    uint64_t *usedp, uint64_t *compp, uint64_t *uncompp);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_BPOBJ_H */
diff --git a/include/sys/dbuf.h b/include/sys/dbuf.h
new file mode 100644 (file)
index 0000000..cf1bbc0
--- /dev/null
@@ -0,0 +1,375 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DBUF_H
+#define        _SYS_DBUF_H
+
+#include <sys/dmu.h>
+#include <sys/spa.h>
+#include <sys/txg.h>
+#include <sys/zio.h>
+#include <sys/arc.h>
+#include <sys/zfs_context.h>
+#include <sys/refcount.h>
+#include <sys/zrlock.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define        IN_DMU_SYNC 2
+
+/*
+ * define flags for dbuf_read
+ */
+
+#define        DB_RF_MUST_SUCCEED      (1 << 0)
+#define        DB_RF_CANFAIL           (1 << 1)
+#define        DB_RF_HAVESTRUCT        (1 << 2)
+#define        DB_RF_NOPREFETCH        (1 << 3)
+#define        DB_RF_NEVERWAIT         (1 << 4)
+#define        DB_RF_CACHED            (1 << 5)
+
+/*
+ * The simplified state transition diagram for dbufs looks like:
+ *
+ *             +----> READ ----+
+ *             |               |
+ *             |               V
+ *  (alloc)-->UNCACHED      CACHED-->EVICTING-->(free)
+ *             |               ^        ^
+ *             |               |        |
+ *             +----> FILL ----+        |
+ *             |                        |
+ *             |                        |
+ *             +--------> NOFILL -------+
+ */
+typedef enum dbuf_states {
+       DB_UNCACHED,
+       DB_FILL,
+       DB_NOFILL,
+       DB_READ,
+       DB_CACHED,
+       DB_EVICTING
+} dbuf_states_t;
+
+struct dnode;
+struct dmu_tx;
+
+/*
+ * level = 0 means the user data
+ * level = 1 means the single indirect block
+ * etc.
+ */
+
+struct dmu_buf_impl;
+
+typedef enum override_states {
+       DR_NOT_OVERRIDDEN,
+       DR_IN_DMU_SYNC,
+       DR_OVERRIDDEN
+} override_states_t;
+
+typedef struct dbuf_dirty_record {
+       /* link on our parents dirty list */
+       list_node_t dr_dirty_node;
+
+       /* transaction group this data will sync in */
+       uint64_t dr_txg;
+
+       /* zio of outstanding write IO */
+       zio_t *dr_zio;
+
+       /* pointer back to our dbuf */
+       struct dmu_buf_impl *dr_dbuf;
+
+       /* pointer to next dirty record */
+       struct dbuf_dirty_record *dr_next;
+
+       /* pointer to parent dirty record */
+       struct dbuf_dirty_record *dr_parent;
+
+       union dirty_types {
+               struct dirty_indirect {
+
+                       /* protect access to list */
+                       kmutex_t dr_mtx;
+
+                       /* Our list of dirty children */
+                       list_t dr_children;
+               } di;
+               struct dirty_leaf {
+
+                       /*
+                        * dr_data is set when we dirty the buffer
+                        * so that we can retain the pointer even if it
+                        * gets COW'd in a subsequent transaction group.
+                        */
+                       arc_buf_t *dr_data;
+                       blkptr_t dr_overridden_by;
+                       override_states_t dr_override_state;
+                       uint8_t dr_copies;
+               } dl;
+       } dt;
+} dbuf_dirty_record_t;
+
+typedef struct dmu_buf_impl {
+       /*
+        * The following members are immutable, with the exception of
+        * db.db_data, which is protected by db_mtx.
+        */
+
+       /* the publicly visible structure */
+       dmu_buf_t db;
+
+       /* the objset we belong to */
+       struct objset *db_objset;
+
+       /*
+        * handle to safely access the dnode we belong to (NULL when evicted)
+        */
+       struct dnode_handle *db_dnode_handle;
+
+       /*
+        * our parent buffer; if the dnode points to us directly,
+        * db_parent == db_dnode_handle->dnh_dnode->dn_dbuf
+        * only accessed by sync thread ???
+        * (NULL when evicted)
+        * May change from NULL to non-NULL under the protection of db_mtx
+        * (see dbuf_check_blkptr())
+        */
+       struct dmu_buf_impl *db_parent;
+
+       /*
+        * link for hash table of all dmu_buf_impl_t's
+        */
+       struct dmu_buf_impl *db_hash_next;
+
+       /* our block number */
+       uint64_t db_blkid;
+
+       /*
+        * Pointer to the blkptr_t which points to us. May be NULL if we
+        * don't have one yet. (NULL when evicted)
+        */
+       blkptr_t *db_blkptr;
+
+       /*
+        * Our indirection level.  Data buffers have db_level==0.
+        * Indirect buffers which point to data buffers have
+        * db_level==1. etc.  Buffers which contain dnodes have
+        * db_level==0, since the dnodes are stored in a file.
+        */
+       uint8_t db_level;
+
+       /* db_mtx protects the members below */
+       kmutex_t db_mtx;
+
+       /*
+        * Current state of the buffer
+        */
+       dbuf_states_t db_state;
+
+       /*
+        * Refcount accessed by dmu_buf_{hold,rele}.
+        * If nonzero, the buffer can't be destroyed.
+        * Protected by db_mtx.
+        */
+       refcount_t db_holds;
+
+       /* buffer holding our data */
+       arc_buf_t *db_buf;
+
+       kcondvar_t db_changed;
+       dbuf_dirty_record_t *db_data_pending;
+
+       /* pointer to most recent dirty record for this buffer */
+       dbuf_dirty_record_t *db_last_dirty;
+
+       /*
+        * Our link on the owner dnodes's dn_dbufs list.
+        * Protected by its dn_dbufs_mtx.
+        */
+       list_node_t db_link;
+
+       /* Data which is unique to data (leaf) blocks: */
+
+       /* stuff we store for the user (see dmu_buf_set_user) */
+       void *db_user_ptr;
+       void **db_user_data_ptr_ptr;
+       dmu_buf_evict_func_t *db_evict_func;
+
+       uint8_t db_immediate_evict;
+       uint8_t db_freed_in_flight;
+
+       uint8_t db_dirtycnt;
+} dmu_buf_impl_t;
+
+/* Note: the dbuf hash table is exposed only for the mdb module */
+#define        DBUF_MUTEXES 256
+#define        DBUF_HASH_MUTEX(h, idx) (&(h)->hash_mutexes[(idx) & (DBUF_MUTEXES-1)])
+typedef struct dbuf_hash_table {
+       uint64_t hash_table_mask;
+       dmu_buf_impl_t **hash_table;
+       kmutex_t hash_mutexes[DBUF_MUTEXES];
+} dbuf_hash_table_t;
+
+
+uint64_t dbuf_whichblock(struct dnode *di, uint64_t offset);
+
+dmu_buf_impl_t *dbuf_create_tlib(struct dnode *dn, char *data);
+void dbuf_create_bonus(struct dnode *dn);
+int dbuf_spill_set_blksz(dmu_buf_t *db, uint64_t blksz, dmu_tx_t *tx);
+void dbuf_spill_hold(struct dnode *dn, dmu_buf_impl_t **dbp, void *tag);
+
+void dbuf_rm_spill(struct dnode *dn, dmu_tx_t *tx);
+
+dmu_buf_impl_t *dbuf_hold(struct dnode *dn, uint64_t blkid, void *tag);
+dmu_buf_impl_t *dbuf_hold_level(struct dnode *dn, int level, uint64_t blkid,
+    void *tag);
+int dbuf_hold_impl(struct dnode *dn, uint8_t level, uint64_t blkid, int create,
+    void *tag, dmu_buf_impl_t **dbp);
+
+void dbuf_prefetch(struct dnode *dn, uint64_t blkid);
+
+void dbuf_add_ref(dmu_buf_impl_t *db, void *tag);
+uint64_t dbuf_refcount(dmu_buf_impl_t *db);
+
+void dbuf_rele(dmu_buf_impl_t *db, void *tag);
+void dbuf_rele_and_unlock(dmu_buf_impl_t *db, void *tag);
+
+dmu_buf_impl_t *dbuf_find(struct dnode *dn, uint8_t level, uint64_t blkid);
+
+int dbuf_read(dmu_buf_impl_t *db, zio_t *zio, uint32_t flags);
+void dbuf_will_dirty(dmu_buf_impl_t *db, dmu_tx_t *tx);
+void dbuf_fill_done(dmu_buf_impl_t *db, dmu_tx_t *tx);
+void dmu_buf_will_not_fill(dmu_buf_t *db, dmu_tx_t *tx);
+void dmu_buf_will_fill(dmu_buf_t *db, dmu_tx_t *tx);
+void dmu_buf_fill_done(dmu_buf_t *db, dmu_tx_t *tx);
+void dbuf_assign_arcbuf(dmu_buf_impl_t *db, arc_buf_t *buf, dmu_tx_t *tx);
+dbuf_dirty_record_t *dbuf_dirty(dmu_buf_impl_t *db, dmu_tx_t *tx);
+arc_buf_t *dbuf_loan_arcbuf(dmu_buf_impl_t *db);
+
+void dbuf_clear(dmu_buf_impl_t *db);
+void dbuf_evict(dmu_buf_impl_t *db);
+
+void dbuf_setdirty(dmu_buf_impl_t *db, dmu_tx_t *tx);
+void dbuf_unoverride(dbuf_dirty_record_t *dr);
+void dbuf_sync_list(list_t *list, dmu_tx_t *tx);
+void dbuf_release_bp(dmu_buf_impl_t *db);
+
+void dbuf_free_range(struct dnode *dn, uint64_t start, uint64_t end,
+    struct dmu_tx *);
+
+void dbuf_new_size(dmu_buf_impl_t *db, int size, dmu_tx_t *tx);
+
+#define        DB_DNODE(_db)           ((_db)->db_dnode_handle->dnh_dnode)
+#define        DB_DNODE_LOCK(_db)      ((_db)->db_dnode_handle->dnh_zrlock)
+#define        DB_DNODE_ENTER(_db)     (zrl_add(&DB_DNODE_LOCK(_db)))
+#define        DB_DNODE_EXIT(_db)      (zrl_remove(&DB_DNODE_LOCK(_db)))
+#define        DB_DNODE_HELD(_db)      (!zrl_is_zero(&DB_DNODE_LOCK(_db)))
+#define        DB_GET_SPA(_spa_p, _db) {               \
+       dnode_t *__dn;                          \
+       DB_DNODE_ENTER(_db);                    \
+       __dn = DB_DNODE(_db);                   \
+       *(_spa_p) = __dn->dn_objset->os_spa;    \
+       DB_DNODE_EXIT(_db);                     \
+}
+#define        DB_GET_OBJSET(_os_p, _db) {             \
+       dnode_t *__dn;                          \
+       DB_DNODE_ENTER(_db);                    \
+       __dn = DB_DNODE(_db);                   \
+       *(_os_p) = __dn->dn_objset;             \
+       DB_DNODE_EXIT(_db);                     \
+}
+
+void dbuf_init(void);
+void dbuf_fini(void);
+
+boolean_t dbuf_is_metadata(dmu_buf_impl_t *db);
+
+#define        DBUF_IS_METADATA(_db)   \
+       (dbuf_is_metadata(_db))
+
+#define        DBUF_GET_BUFC_TYPE(_db) \
+       (DBUF_IS_METADATA(_db) ? ARC_BUFC_METADATA : ARC_BUFC_DATA)
+
+#define        DBUF_IS_CACHEABLE(_db)                                          \
+       ((_db)->db_objset->os_primary_cache == ZFS_CACHE_ALL ||         \
+       (DBUF_IS_METADATA(_db) &&                                       \
+       ((_db)->db_objset->os_primary_cache == ZFS_CACHE_METADATA)))
+
+#define        DBUF_IS_L2CACHEABLE(_db)                                        \
+       ((_db)->db_objset->os_secondary_cache == ZFS_CACHE_ALL ||       \
+       (DBUF_IS_METADATA(_db) &&                                       \
+       ((_db)->db_objset->os_secondary_cache == ZFS_CACHE_METADATA)))
+
+#ifdef ZFS_DEBUG
+
+/*
+ * There should be a ## between the string literal and fmt, to make it
+ * clear that we're joining two strings together, but gcc does not
+ * support that preprocessor token.
+ */
+#define        dprintf_dbuf(dbuf, fmt, ...) do { \
+       if (zfs_flags & ZFS_DEBUG_DPRINTF) { \
+       char __db_buf[32]; \
+       uint64_t __db_obj = (dbuf)->db.db_object; \
+       if (__db_obj == DMU_META_DNODE_OBJECT) \
+               (void) strcpy(__db_buf, "mdn"); \
+       else \
+               (void) snprintf(__db_buf, sizeof (__db_buf), "%lld", \
+                   (u_longlong_t)__db_obj); \
+       dprintf_ds((dbuf)->db_objset->os_dsl_dataset, \
+           "obj=%s lvl=%u blkid=%lld " fmt, \
+           __db_buf, (dbuf)->db_level, \
+           (u_longlong_t)(dbuf)->db_blkid, __VA_ARGS__); \
+       } \
+_NOTE(CONSTCOND) } while (0)
+
+#define        dprintf_dbuf_bp(db, bp, fmt, ...) do {                  \
+       if (zfs_flags & ZFS_DEBUG_DPRINTF) {                    \
+       char *__blkbuf = kmem_alloc(BP_SPRINTF_LEN, KM_SLEEP);  \
+       sprintf_blkptr(__blkbuf, bp);                           \
+       dprintf_dbuf(db, fmt " %s\n", __VA_ARGS__, __blkbuf);   \
+       kmem_free(__blkbuf, BP_SPRINTF_LEN);                    \
+       }                                                       \
+_NOTE(CONSTCOND) } while (0)
+
+#define        DBUF_VERIFY(db) dbuf_verify(db)
+
+#else
+
+#define        dprintf_dbuf(db, fmt, ...)
+#define        dprintf_dbuf_bp(db, bp, fmt, ...)
+#define        DBUF_VERIFY(db)
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DBUF_H */
diff --git a/include/sys/ddt.h b/include/sys/ddt.h
new file mode 100644 (file)
index 0000000..9724d6e
--- /dev/null
@@ -0,0 +1,246 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _SYS_DDT_H
+#define        _SYS_DDT_H
+
+#include <sys/sysmacros.h>
+#include <sys/types.h>
+#include <sys/fs/zfs.h>
+#include <sys/zio.h>
+#include <sys/dmu.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * On-disk DDT formats, in the desired search order (newest version first).
+ */
+enum ddt_type {
+       DDT_TYPE_ZAP = 0,
+       DDT_TYPES
+};
+
+/*
+ * DDT classes, in the desired search order (highest replication level first).
+ */
+enum ddt_class {
+       DDT_CLASS_DITTO = 0,
+       DDT_CLASS_DUPLICATE,
+       DDT_CLASS_UNIQUE,
+       DDT_CLASSES
+};
+
+#define        DDT_TYPE_CURRENT                0
+
+#define        DDT_COMPRESS_BYTEORDER_MASK     0x80
+#define        DDT_COMPRESS_FUNCTION_MASK      0x7f
+
+/*
+ * On-disk ddt entry:  key (name) and physical storage (value).
+ */
+typedef struct ddt_key {
+       zio_cksum_t     ddk_cksum;      /* 256-bit block checksum */
+       uint64_t        ddk_prop;       /* LSIZE, PSIZE, compression */
+} ddt_key_t;
+
+/*
+ * ddk_prop layout:
+ *
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ *     |   0   |   0   |   0   | comp  |     PSIZE     |     LSIZE     |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ */
+#define        DDK_GET_LSIZE(ddk)      \
+       BF64_GET_SB((ddk)->ddk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1)
+#define        DDK_SET_LSIZE(ddk, x)   \
+       BF64_SET_SB((ddk)->ddk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1, x)
+
+#define        DDK_GET_PSIZE(ddk)      \
+       BF64_GET_SB((ddk)->ddk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1)
+#define        DDK_SET_PSIZE(ddk, x)   \
+       BF64_SET_SB((ddk)->ddk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1, x)
+
+#define        DDK_GET_COMPRESS(ddk)           BF64_GET((ddk)->ddk_prop, 32, 8)
+#define        DDK_SET_COMPRESS(ddk, x)        BF64_SET((ddk)->ddk_prop, 32, 8, x)
+
+#define        DDT_KEY_WORDS   (sizeof (ddt_key_t) / sizeof (uint64_t))
+
+typedef struct ddt_phys {
+       dva_t           ddp_dva[SPA_DVAS_PER_BP];
+       uint64_t        ddp_refcnt;
+       uint64_t        ddp_phys_birth;
+} ddt_phys_t;
+
+enum ddt_phys_type {
+       DDT_PHYS_DITTO = 0,
+       DDT_PHYS_SINGLE = 1,
+       DDT_PHYS_DOUBLE = 2,
+       DDT_PHYS_TRIPLE = 3,
+       DDT_PHYS_TYPES
+};
+
+/*
+ * In-core ddt entry
+ */
+struct ddt_entry {
+       ddt_key_t       dde_key;
+       ddt_phys_t      dde_phys[DDT_PHYS_TYPES];
+       zio_t           *dde_lead_zio[DDT_PHYS_TYPES];
+       void            *dde_repair_data;
+       enum ddt_type   dde_type;
+       enum ddt_class  dde_class;
+       uint8_t         dde_loading;
+       uint8_t         dde_loaded;
+       kcondvar_t      dde_cv;
+       avl_node_t      dde_node;
+};
+
+/*
+ * In-core ddt
+ */
+struct ddt {
+       kmutex_t        ddt_lock;
+       avl_tree_t      ddt_tree;
+       avl_tree_t      ddt_repair_tree;
+       enum zio_checksum ddt_checksum;
+       spa_t           *ddt_spa;
+       objset_t        *ddt_os;
+       uint64_t        ddt_stat_object;
+       uint64_t        ddt_object[DDT_TYPES][DDT_CLASSES];
+       ddt_histogram_t ddt_histogram[DDT_TYPES][DDT_CLASSES];
+       ddt_histogram_t ddt_histogram_cache[DDT_TYPES][DDT_CLASSES];
+       ddt_object_t    ddt_object_stats[DDT_TYPES][DDT_CLASSES];
+       avl_node_t      ddt_node;
+};
+
+/*
+ * In-core and on-disk bookmark for DDT walks
+ */
+typedef struct ddt_bookmark {
+       uint64_t        ddb_class;
+       uint64_t        ddb_type;
+       uint64_t        ddb_checksum;
+       uint64_t        ddb_cursor;
+} ddt_bookmark_t;
+
+/*
+ * Ops vector to access a specific DDT object type.
+ */
+typedef struct ddt_ops {
+       char ddt_op_name[32];
+       int (*ddt_op_create)(objset_t *os, uint64_t *object, dmu_tx_t *tx,
+           boolean_t prehash);
+       int (*ddt_op_destroy)(objset_t *os, uint64_t object, dmu_tx_t *tx);
+       int (*ddt_op_lookup)(objset_t *os, uint64_t object, ddt_entry_t *dde);
+       void (*ddt_op_prefetch)(objset_t *os, uint64_t object,
+           ddt_entry_t *dde);
+       int (*ddt_op_update)(objset_t *os, uint64_t object, ddt_entry_t *dde,
+           dmu_tx_t *tx);
+       int (*ddt_op_remove)(objset_t *os, uint64_t object, ddt_entry_t *dde,
+           dmu_tx_t *tx);
+       int (*ddt_op_walk)(objset_t *os, uint64_t object, ddt_entry_t *dde,
+           uint64_t *walk);
+       uint64_t (*ddt_op_count)(objset_t *os, uint64_t object);
+} ddt_ops_t;
+
+#define        DDT_NAMELEN     80
+
+extern void ddt_object_name(ddt_t *ddt, enum ddt_type type,
+    enum ddt_class class, char *name);
+extern int ddt_object_walk(ddt_t *ddt, enum ddt_type type,
+    enum ddt_class class, uint64_t *walk, ddt_entry_t *dde);
+extern uint64_t ddt_object_count(ddt_t *ddt, enum ddt_type type,
+    enum ddt_class class);
+extern int ddt_object_info(ddt_t *ddt, enum ddt_type type,
+    enum ddt_class class, dmu_object_info_t *);
+extern boolean_t ddt_object_exists(ddt_t *ddt, enum ddt_type type,
+    enum ddt_class class);
+
+extern void ddt_bp_fill(const ddt_phys_t *ddp, blkptr_t *bp,
+    uint64_t txg);
+extern void ddt_bp_create(enum zio_checksum checksum, const ddt_key_t *ddk,
+    const ddt_phys_t *ddp, blkptr_t *bp);
+
+extern void ddt_key_fill(ddt_key_t *ddk, const blkptr_t *bp);
+
+extern void ddt_phys_fill(ddt_phys_t *ddp, const blkptr_t *bp);
+extern void ddt_phys_clear(ddt_phys_t *ddp);
+extern void ddt_phys_addref(ddt_phys_t *ddp);
+extern void ddt_phys_decref(ddt_phys_t *ddp);
+extern void ddt_phys_free(ddt_t *ddt, ddt_key_t *ddk, ddt_phys_t *ddp,
+    uint64_t txg);
+extern ddt_phys_t *ddt_phys_select(const ddt_entry_t *dde, const blkptr_t *bp);
+extern uint64_t ddt_phys_total_refcnt(const ddt_entry_t *dde);
+
+extern void ddt_stat_add(ddt_stat_t *dst, const ddt_stat_t *src, uint64_t neg);
+
+extern void ddt_histogram_add(ddt_histogram_t *dst, const ddt_histogram_t *src);
+extern void ddt_histogram_stat(ddt_stat_t *dds, const ddt_histogram_t *ddh);
+extern boolean_t ddt_histogram_empty(const ddt_histogram_t *ddh);
+extern void ddt_get_dedup_object_stats(spa_t *spa, ddt_object_t *ddo);
+extern void ddt_get_dedup_histogram(spa_t *spa, ddt_histogram_t *ddh);
+extern void ddt_get_dedup_stats(spa_t *spa, ddt_stat_t *dds_total);
+
+extern uint64_t ddt_get_dedup_dspace(spa_t *spa);
+extern uint64_t ddt_get_pool_dedup_ratio(spa_t *spa);
+
+extern int ddt_ditto_copies_needed(ddt_t *ddt, ddt_entry_t *dde,
+    ddt_phys_t *ddp_willref);
+extern int ddt_ditto_copies_present(ddt_entry_t *dde);
+
+extern size_t ddt_compress(void *src, uchar_t *dst, size_t s_len, size_t d_len);
+extern void ddt_decompress(uchar_t *src, void *dst, size_t s_len, size_t d_len);
+
+extern ddt_t *ddt_select(spa_t *spa, const blkptr_t *bp);
+extern void ddt_enter(ddt_t *ddt);
+extern void ddt_exit(ddt_t *ddt);
+extern ddt_entry_t *ddt_lookup(ddt_t *ddt, const blkptr_t *bp, boolean_t add);
+extern void ddt_prefetch(spa_t *spa, const blkptr_t *bp);
+extern void ddt_remove(ddt_t *ddt, ddt_entry_t *dde);
+
+extern boolean_t ddt_class_contains(spa_t *spa, enum ddt_class max_class,
+    const blkptr_t *bp);
+
+extern ddt_entry_t *ddt_repair_start(ddt_t *ddt, const blkptr_t *bp);
+extern void ddt_repair_done(ddt_t *ddt, ddt_entry_t *dde);
+
+extern int ddt_entry_compare(const void *x1, const void *x2);
+
+extern void ddt_create(spa_t *spa);
+extern int ddt_load(spa_t *spa);
+extern void ddt_unload(spa_t *spa);
+extern void ddt_sync(spa_t *spa, uint64_t txg);
+extern int ddt_walk(spa_t *spa, ddt_bookmark_t *ddb, ddt_entry_t *dde);
+extern int ddt_object_update(ddt_t *ddt, enum ddt_type type,
+    enum ddt_class class, ddt_entry_t *dde, dmu_tx_t *tx);
+
+extern const ddt_ops_t ddt_zap_ops;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DDT_H */
diff --git a/include/sys/dmu.h b/include/sys/dmu.h
new file mode 100644 (file)
index 0000000..575cb2d
--- /dev/null
@@ -0,0 +1,743 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+/* Portions Copyright 2010 Robert Milkowski */
+
+#ifndef        _SYS_DMU_H
+#define        _SYS_DMU_H
+
+/*
+ * This file describes the interface that the DMU provides for its
+ * consumers.
+ *
+ * The DMU also interacts with the SPA.  That interface is described in
+ * dmu_spa.h.
+ */
+
+#include <sys/inttypes.h>
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/cred.h>
+#include <sys/time.h>
+#include <sys/uio.h>
+#ifdef _KERNEL
+#include <sys/blkdev.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct page;
+struct vnode;
+struct spa;
+struct zilog;
+struct zio;
+struct blkptr;
+struct zap_cursor;
+struct dsl_dataset;
+struct dsl_pool;
+struct dnode;
+struct drr_begin;
+struct drr_end;
+struct zbookmark;
+struct spa;
+struct nvlist;
+struct arc_buf;
+struct zio_prop;
+struct sa_handle;
+
+typedef struct objset objset_t;
+typedef struct dmu_tx dmu_tx_t;
+typedef struct dsl_dir dsl_dir_t;
+
+typedef enum dmu_object_type {
+       DMU_OT_NONE,
+       /* general: */
+       DMU_OT_OBJECT_DIRECTORY,        /* ZAP */
+       DMU_OT_OBJECT_ARRAY,            /* UINT64 */
+       DMU_OT_PACKED_NVLIST,           /* UINT8 (XDR by nvlist_pack/unpack) */
+       DMU_OT_PACKED_NVLIST_SIZE,      /* UINT64 */
+       DMU_OT_BPOBJ,                   /* UINT64 */
+       DMU_OT_BPOBJ_HDR,               /* UINT64 */
+       /* spa: */
+       DMU_OT_SPACE_MAP_HEADER,        /* UINT64 */
+       DMU_OT_SPACE_MAP,               /* UINT64 */
+       /* zil: */
+       DMU_OT_INTENT_LOG,              /* UINT64 */
+       /* dmu: */
+       DMU_OT_DNODE,                   /* DNODE */
+       DMU_OT_OBJSET,                  /* OBJSET */
+       /* dsl: */
+       DMU_OT_DSL_DIR,                 /* UINT64 */
+       DMU_OT_DSL_DIR_CHILD_MAP,       /* ZAP */
+       DMU_OT_DSL_DS_SNAP_MAP,         /* ZAP */
+       DMU_OT_DSL_PROPS,               /* ZAP */
+       DMU_OT_DSL_DATASET,             /* UINT64 */
+       /* zpl: */
+       DMU_OT_ZNODE,                   /* ZNODE */
+       DMU_OT_OLDACL,                  /* Old ACL */
+       DMU_OT_PLAIN_FILE_CONTENTS,     /* UINT8 */
+       DMU_OT_DIRECTORY_CONTENTS,      /* ZAP */
+       DMU_OT_MASTER_NODE,             /* ZAP */
+       DMU_OT_UNLINKED_SET,            /* ZAP */
+       /* zvol: */
+       DMU_OT_ZVOL,                    /* UINT8 */
+       DMU_OT_ZVOL_PROP,               /* ZAP */
+       /* other; for testing only! */
+       DMU_OT_PLAIN_OTHER,             /* UINT8 */
+       DMU_OT_UINT64_OTHER,            /* UINT64 */
+       DMU_OT_ZAP_OTHER,               /* ZAP */
+       /* new object types: */
+       DMU_OT_ERROR_LOG,               /* ZAP */
+       DMU_OT_SPA_HISTORY,             /* UINT8 */
+       DMU_OT_SPA_HISTORY_OFFSETS,     /* spa_his_phys_t */
+       DMU_OT_POOL_PROPS,              /* ZAP */
+       DMU_OT_DSL_PERMS,               /* ZAP */
+       DMU_OT_ACL,                     /* ACL */
+       DMU_OT_SYSACL,                  /* SYSACL */
+       DMU_OT_FUID,                    /* FUID table (Packed NVLIST UINT8) */
+       DMU_OT_FUID_SIZE,               /* FUID table size UINT64 */
+       DMU_OT_NEXT_CLONES,             /* ZAP */
+       DMU_OT_SCAN_QUEUE,              /* ZAP */
+       DMU_OT_USERGROUP_USED,          /* ZAP */
+       DMU_OT_USERGROUP_QUOTA,         /* ZAP */
+       DMU_OT_USERREFS,                /* ZAP */
+       DMU_OT_DDT_ZAP,                 /* ZAP */
+       DMU_OT_DDT_STATS,               /* ZAP */
+       DMU_OT_SA,                      /* System attr */
+       DMU_OT_SA_MASTER_NODE,          /* ZAP */
+       DMU_OT_SA_ATTR_REGISTRATION,    /* ZAP */
+       DMU_OT_SA_ATTR_LAYOUTS,         /* ZAP */
+       DMU_OT_SCAN_XLATE,              /* ZAP */
+       DMU_OT_DEDUP,                   /* fake dedup BP from ddt_bp_create() */
+       DMU_OT_DEADLIST,                /* ZAP */
+       DMU_OT_DEADLIST_HDR,            /* UINT64 */
+       DMU_OT_DSL_CLONES,              /* ZAP */
+       DMU_OT_BPOBJ_SUBOBJ,            /* UINT64 */
+       DMU_OT_NUMTYPES
+} dmu_object_type_t;
+
+typedef enum dmu_objset_type {
+       DMU_OST_NONE,
+       DMU_OST_META,
+       DMU_OST_ZFS,
+       DMU_OST_ZVOL,
+       DMU_OST_OTHER,                  /* For testing only! */
+       DMU_OST_ANY,                    /* Be careful! */
+       DMU_OST_NUMTYPES
+} dmu_objset_type_t;
+
+void byteswap_uint64_array(void *buf, size_t size);
+void byteswap_uint32_array(void *buf, size_t size);
+void byteswap_uint16_array(void *buf, size_t size);
+void byteswap_uint8_array(void *buf, size_t size);
+void zap_byteswap(void *buf, size_t size);
+void zfs_oldacl_byteswap(void *buf, size_t size);
+void zfs_acl_byteswap(void *buf, size_t size);
+void zfs_znode_byteswap(void *buf, size_t size);
+
+#define        DS_FIND_SNAPSHOTS       (1<<0)
+#define        DS_FIND_CHILDREN        (1<<1)
+
+/*
+ * The maximum number of bytes that can be accessed as part of one
+ * operation, including metadata.
+ */
+#define        DMU_MAX_ACCESS (10<<20) /* 10MB */
+#define        DMU_MAX_DELETEBLKCNT (20480) /* ~5MB of indirect blocks */
+
+#define        DMU_USERUSED_OBJECT     (-1ULL)
+#define        DMU_GROUPUSED_OBJECT    (-2ULL)
+#define        DMU_DEADLIST_OBJECT     (-3ULL)
+
+/*
+ * artificial blkids for bonus buffer and spill blocks
+ */
+#define        DMU_BONUS_BLKID         (-1ULL)
+#define        DMU_SPILL_BLKID         (-2ULL)
+/*
+ * Public routines to create, destroy, open, and close objsets.
+ */
+int dmu_objset_hold(const char *name, void *tag, objset_t **osp);
+int dmu_objset_own(const char *name, dmu_objset_type_t type,
+    boolean_t readonly, void *tag, objset_t **osp);
+void dmu_objset_rele(objset_t *os, void *tag);
+void dmu_objset_disown(objset_t *os, void *tag);
+int dmu_objset_open_ds(struct dsl_dataset *ds, objset_t **osp);
+
+int dmu_objset_evict_dbufs(objset_t *os);
+int dmu_objset_create(const char *name, dmu_objset_type_t type, uint64_t flags,
+    void (*func)(objset_t *os, void *arg, cred_t *cr, dmu_tx_t *tx), void *arg);
+int dmu_objset_clone(const char *name, struct dsl_dataset *clone_origin,
+    uint64_t flags);
+int dmu_objset_destroy(const char *name, boolean_t defer);
+int dmu_snapshots_destroy(char *fsname, char *snapname, boolean_t defer);
+int dmu_objset_snapshot(char *fsname, char *snapname, char *tag,
+    struct nvlist *props, boolean_t recursive, boolean_t temporary, int fd);
+int dmu_objset_rename(const char *name, const char *newname,
+    boolean_t recursive);
+int dmu_objset_find(char *name, int func(const char *, void *), void *arg,
+    int flags);
+void dmu_objset_byteswap(void *buf, size_t size);
+
+typedef struct dmu_buf {
+       uint64_t db_object;             /* object that this buffer is part of */
+       uint64_t db_offset;             /* byte offset in this object */
+       uint64_t db_size;               /* size of buffer in bytes */
+       void *db_data;                  /* data in buffer */
+} dmu_buf_t;
+
+typedef void dmu_buf_evict_func_t(struct dmu_buf *db, void *user_ptr);
+
+/*
+ * The names of zap entries in the DIRECTORY_OBJECT of the MOS.
+ */
+#define        DMU_POOL_DIRECTORY_OBJECT       1
+#define        DMU_POOL_CONFIG                 "config"
+#define        DMU_POOL_ROOT_DATASET           "root_dataset"
+#define        DMU_POOL_SYNC_BPOBJ             "sync_bplist"
+#define        DMU_POOL_ERRLOG_SCRUB           "errlog_scrub"
+#define        DMU_POOL_ERRLOG_LAST            "errlog_last"
+#define        DMU_POOL_SPARES                 "spares"
+#define        DMU_POOL_DEFLATE                "deflate"
+#define        DMU_POOL_HISTORY                "history"
+#define        DMU_POOL_PROPS                  "pool_props"
+#define        DMU_POOL_L2CACHE                "l2cache"
+#define        DMU_POOL_TMP_USERREFS           "tmp_userrefs"
+#define        DMU_POOL_DDT                    "DDT-%s-%s-%s"
+#define        DMU_POOL_DDT_STATS              "DDT-statistics"
+#define        DMU_POOL_CREATION_VERSION       "creation_version"
+#define        DMU_POOL_SCAN                   "scan"
+#define        DMU_POOL_FREE_BPOBJ             "free_bpobj"
+
+/*
+ * Allocate an object from this objset.  The range of object numbers
+ * available is (0, DN_MAX_OBJECT).  Object 0 is the meta-dnode.
+ *
+ * The transaction must be assigned to a txg.  The newly allocated
+ * object will be "held" in the transaction (ie. you can modify the
+ * newly allocated object in this transaction).
+ *
+ * dmu_object_alloc() chooses an object and returns it in *objectp.
+ *
+ * dmu_object_claim() allocates a specific object number.  If that
+ * number is already allocated, it fails and returns EEXIST.
+ *
+ * Return 0 on success, or ENOSPC or EEXIST as specified above.
+ */
+uint64_t dmu_object_alloc(objset_t *os, dmu_object_type_t ot,
+    int blocksize, dmu_object_type_t bonus_type, int bonus_len, dmu_tx_t *tx);
+int dmu_object_claim(objset_t *os, uint64_t object, dmu_object_type_t ot,
+    int blocksize, dmu_object_type_t bonus_type, int bonus_len, dmu_tx_t *tx);
+int dmu_object_reclaim(objset_t *os, uint64_t object, dmu_object_type_t ot,
+    int blocksize, dmu_object_type_t bonustype, int bonuslen);
+
+/*
+ * Free an object from this objset.
+ *
+ * The object's data will be freed as well (ie. you don't need to call
+ * dmu_free(object, 0, -1, tx)).
+ *
+ * The object need not be held in the transaction.
+ *
+ * If there are any holds on this object's buffers (via dmu_buf_hold()),
+ * or tx holds on the object (via dmu_tx_hold_object()), you can not
+ * free it; it fails and returns EBUSY.
+ *
+ * If the object is not allocated, it fails and returns ENOENT.
+ *
+ * Return 0 on success, or EBUSY or ENOENT as specified above.
+ */
+int dmu_object_free(objset_t *os, uint64_t object, dmu_tx_t *tx);
+
+/*
+ * Find the next allocated or free object.
+ *
+ * The objectp parameter is in-out.  It will be updated to be the next
+ * object which is allocated.  Ignore objects which have not been
+ * modified since txg.
+ *
+ * XXX Can only be called on a objset with no dirty data.
+ *
+ * Returns 0 on success, or ENOENT if there are no more objects.
+ */
+int dmu_object_next(objset_t *os, uint64_t *objectp,
+    boolean_t hole, uint64_t txg);
+
+/*
+ * Set the data blocksize for an object.
+ *
+ * The object cannot have any blocks allcated beyond the first.  If
+ * the first block is allocated already, the new size must be greater
+ * than the current block size.  If these conditions are not met,
+ * ENOTSUP will be returned.
+ *
+ * Returns 0 on success, or EBUSY if there are any holds on the object
+ * contents, or ENOTSUP as described above.
+ */
+int dmu_object_set_blocksize(objset_t *os, uint64_t object, uint64_t size,
+    int ibs, dmu_tx_t *tx);
+
+/*
+ * Set the checksum property on a dnode.  The new checksum algorithm will
+ * apply to all newly written blocks; existing blocks will not be affected.
+ */
+void dmu_object_set_checksum(objset_t *os, uint64_t object, uint8_t checksum,
+    dmu_tx_t *tx);
+
+/*
+ * Set the compress property on a dnode.  The new compression algorithm will
+ * apply to all newly written blocks; existing blocks will not be affected.
+ */
+void dmu_object_set_compress(objset_t *os, uint64_t object, uint8_t compress,
+    dmu_tx_t *tx);
+
+/*
+ * Decide how to write a block: checksum, compression, number of copies, etc.
+ */
+#define        WP_NOFILL       0x1
+#define        WP_DMU_SYNC     0x2
+#define        WP_SPILL        0x4
+
+void dmu_write_policy(objset_t *os, struct dnode *dn, int level, int wp,
+    struct zio_prop *zp);
+/*
+ * The bonus data is accessed more or less like a regular buffer.
+ * You must dmu_bonus_hold() to get the buffer, which will give you a
+ * dmu_buf_t with db_offset==-1ULL, and db_size = the size of the bonus
+ * data.  As with any normal buffer, you must call dmu_buf_read() to
+ * read db_data, dmu_buf_will_dirty() before modifying it, and the
+ * object must be held in an assigned transaction before calling
+ * dmu_buf_will_dirty.  You may use dmu_buf_set_user() on the bonus
+ * buffer as well.  You must release your hold with dmu_buf_rele().
+ */
+int dmu_bonus_hold(objset_t *os, uint64_t object, void *tag, dmu_buf_t **);
+int dmu_bonus_max(void);
+int dmu_set_bonus(dmu_buf_t *, int, dmu_tx_t *);
+int dmu_set_bonustype(dmu_buf_t *, dmu_object_type_t, dmu_tx_t *);
+dmu_object_type_t dmu_get_bonustype(dmu_buf_t *);
+int dmu_rm_spill(objset_t *, uint64_t, dmu_tx_t *);
+
+/*
+ * Special spill buffer support used by "SA" framework
+ */
+
+int dmu_spill_hold_by_bonus(dmu_buf_t *bonus, void *tag, dmu_buf_t **dbp);
+int dmu_spill_hold_by_dnode(struct dnode *dn, uint32_t flags,
+    void *tag, dmu_buf_t **dbp);
+int dmu_spill_hold_existing(dmu_buf_t *bonus, void *tag, dmu_buf_t **dbp);
+
+/*
+ * Obtain the DMU buffer from the specified object which contains the
+ * specified offset.  dmu_buf_hold() puts a "hold" on the buffer, so
+ * that it will remain in memory.  You must release the hold with
+ * dmu_buf_rele().  You musn't access the dmu_buf_t after releasing your
+ * hold.  You must have a hold on any dmu_buf_t* you pass to the DMU.
+ *
+ * You must call dmu_buf_read, dmu_buf_will_dirty, or dmu_buf_will_fill
+ * on the returned buffer before reading or writing the buffer's
+ * db_data.  The comments for those routines describe what particular
+ * operations are valid after calling them.
+ *
+ * The object number must be a valid, allocated object number.
+ */
+int dmu_buf_hold(objset_t *os, uint64_t object, uint64_t offset,
+    void *tag, dmu_buf_t **, int flags);
+void dmu_buf_add_ref(dmu_buf_t *db, void* tag);
+void dmu_buf_rele(dmu_buf_t *db, void *tag);
+uint64_t dmu_buf_refcount(dmu_buf_t *db);
+
+/*
+ * dmu_buf_hold_array holds the DMU buffers which contain all bytes in a
+ * range of an object.  A pointer to an array of dmu_buf_t*'s is
+ * returned (in *dbpp).
+ *
+ * dmu_buf_rele_array releases the hold on an array of dmu_buf_t*'s, and
+ * frees the array.  The hold on the array of buffers MUST be released
+ * with dmu_buf_rele_array.  You can NOT release the hold on each buffer
+ * individually with dmu_buf_rele.
+ */
+int dmu_buf_hold_array_by_bonus(dmu_buf_t *db, uint64_t offset,
+    uint64_t length, int read, void *tag, int *numbufsp, dmu_buf_t ***dbpp);
+void dmu_buf_rele_array(dmu_buf_t **, int numbufs, void *tag);
+
+/*
+ * Returns NULL on success, or the existing user ptr if it's already
+ * been set.
+ *
+ * user_ptr is for use by the user and can be obtained via dmu_buf_get_user().
+ *
+ * user_data_ptr_ptr should be NULL, or a pointer to a pointer which
+ * will be set to db->db_data when you are allowed to access it.  Note
+ * that db->db_data (the pointer) can change when you do dmu_buf_read(),
+ * dmu_buf_tryupgrade(), dmu_buf_will_dirty(), or dmu_buf_will_fill().
+ * *user_data_ptr_ptr will be set to the new value when it changes.
+ *
+ * If non-NULL, pageout func will be called when this buffer is being
+ * excised from the cache, so that you can clean up the data structure
+ * pointed to by user_ptr.
+ *
+ * dmu_evict_user() will call the pageout func for all buffers in a
+ * objset with a given pageout func.
+ */
+void *dmu_buf_set_user(dmu_buf_t *db, void *user_ptr, void *user_data_ptr_ptr,
+    dmu_buf_evict_func_t *pageout_func);
+/*
+ * set_user_ie is the same as set_user, but request immediate eviction
+ * when hold count goes to zero.
+ */
+void *dmu_buf_set_user_ie(dmu_buf_t *db, void *user_ptr,
+    void *user_data_ptr_ptr, dmu_buf_evict_func_t *pageout_func);
+void *dmu_buf_update_user(dmu_buf_t *db_fake, void *old_user_ptr,
+    void *user_ptr, void *user_data_ptr_ptr,
+    dmu_buf_evict_func_t *pageout_func);
+void dmu_evict_user(objset_t *os, dmu_buf_evict_func_t *func);
+
+/*
+ * Returns the user_ptr set with dmu_buf_set_user(), or NULL if not set.
+ */
+void *dmu_buf_get_user(dmu_buf_t *db);
+
+/*
+ * Indicate that you are going to modify the buffer's data (db_data).
+ *
+ * The transaction (tx) must be assigned to a txg (ie. you've called
+ * dmu_tx_assign()).  The buffer's object must be held in the tx
+ * (ie. you've called dmu_tx_hold_object(tx, db->db_object)).
+ */
+void dmu_buf_will_dirty(dmu_buf_t *db, dmu_tx_t *tx);
+
+/*
+ * Tells if the given dbuf is freeable.
+ */
+boolean_t dmu_buf_freeable(dmu_buf_t *);
+
+/*
+ * You must create a transaction, then hold the objects which you will
+ * (or might) modify as part of this transaction.  Then you must assign
+ * the transaction to a transaction group.  Once the transaction has
+ * been assigned, you can modify buffers which belong to held objects as
+ * part of this transaction.  You can't modify buffers before the
+ * transaction has been assigned; you can't modify buffers which don't
+ * belong to objects which this transaction holds; you can't hold
+ * objects once the transaction has been assigned.  You may hold an
+ * object which you are going to free (with dmu_object_free()), but you
+ * don't have to.
+ *
+ * You can abort the transaction before it has been assigned.
+ *
+ * Note that you may hold buffers (with dmu_buf_hold) at any time,
+ * regardless of transaction state.
+ */
+
+#define        DMU_NEW_OBJECT  (-1ULL)
+#define        DMU_OBJECT_END  (-1ULL)
+
+dmu_tx_t *dmu_tx_create(objset_t *os);
+void dmu_tx_hold_write(dmu_tx_t *tx, uint64_t object, uint64_t off, int len);
+void dmu_tx_hold_free(dmu_tx_t *tx, uint64_t object, uint64_t off,
+    uint64_t len);
+void dmu_tx_hold_zap(dmu_tx_t *tx, uint64_t object, int add, const char *name);
+void dmu_tx_hold_bonus(dmu_tx_t *tx, uint64_t object);
+void dmu_tx_hold_spill(dmu_tx_t *tx, uint64_t object);
+void dmu_tx_hold_sa(dmu_tx_t *tx, struct sa_handle *hdl, boolean_t may_grow);
+void dmu_tx_hold_sa_create(dmu_tx_t *tx, int total_size);
+void dmu_tx_abort(dmu_tx_t *tx);
+int dmu_tx_assign(dmu_tx_t *tx, uint64_t txg_how);
+void dmu_tx_wait(dmu_tx_t *tx);
+void dmu_tx_commit(dmu_tx_t *tx);
+
+/*
+ * To register a commit callback, dmu_tx_callback_register() must be called.
+ *
+ * dcb_data is a pointer to caller private data that is passed on as a
+ * callback parameter. The caller is responsible for properly allocating and
+ * freeing it.
+ *
+ * When registering a callback, the transaction must be already created, but
+ * it cannot be committed or aborted. It can be assigned to a txg or not.
+ *
+ * The callback will be called after the transaction has been safely written
+ * to stable storage and will also be called if the dmu_tx is aborted.
+ * If there is any error which prevents the transaction from being committed to
+ * disk, the callback will be called with a value of error != 0.
+ */
+typedef void dmu_tx_callback_func_t(void *dcb_data, int error);
+
+void dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *dcb_func,
+    void *dcb_data);
+
+/*
+ * Free up the data blocks for a defined range of a file.  If size is
+ * zero, the range from offset to end-of-file is freed.
+ */
+int dmu_free_range(objset_t *os, uint64_t object, uint64_t offset,
+       uint64_t size, dmu_tx_t *tx);
+int dmu_free_long_range(objset_t *os, uint64_t object, uint64_t offset,
+       uint64_t size);
+int dmu_free_object(objset_t *os, uint64_t object);
+
+/*
+ * Convenience functions.
+ *
+ * Canfail routines will return 0 on success, or an errno if there is a
+ * nonrecoverable I/O error.
+ */
+#define        DMU_READ_PREFETCH       0 /* prefetch */
+#define        DMU_READ_NO_PREFETCH    1 /* don't prefetch */
+int dmu_read(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
+       void *buf, uint32_t flags);
+void dmu_write(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
+       const void *buf, dmu_tx_t *tx);
+void dmu_prealloc(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
+       dmu_tx_t *tx);
+#ifdef _KERNEL
+int dmu_read_req(objset_t *os, uint64_t object, struct request *req);
+int dmu_write_req(objset_t *os, uint64_t object, struct request *req, dmu_tx_t *tx);
+#endif
+#ifdef HAVE_ZPL
+int dmu_write_pages(objset_t *os, uint64_t object, uint64_t offset,
+    uint64_t size, struct page *pp, dmu_tx_t *tx);
+#endif
+struct arc_buf *dmu_request_arcbuf(dmu_buf_t *handle, int size);
+void dmu_return_arcbuf(struct arc_buf *buf);
+void dmu_assign_arcbuf(dmu_buf_t *handle, uint64_t offset, struct arc_buf *buf,
+    dmu_tx_t *tx);
+int dmu_xuio_init(struct xuio *uio, int niov);
+void dmu_xuio_fini(struct xuio *uio);
+int dmu_xuio_add(struct xuio *uio, struct arc_buf *abuf, offset_t off,
+    size_t n);
+int dmu_xuio_cnt(struct xuio *uio);
+struct arc_buf *dmu_xuio_arcbuf(struct xuio *uio, int i);
+void dmu_xuio_clear(struct xuio *uio, int i);
+void xuio_stat_wbuf_copied(void);
+void xuio_stat_wbuf_nocopy(void);
+
+extern int zfs_prefetch_disable;
+
+/*
+ * Asynchronously try to read in the data.
+ */
+void dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset,
+    uint64_t len);
+
+typedef struct dmu_object_info {
+       /* All sizes are in bytes unless otherwise indicated. */
+       uint32_t doi_data_block_size;
+       uint32_t doi_metadata_block_size;
+       dmu_object_type_t doi_type;
+       dmu_object_type_t doi_bonus_type;
+       uint64_t doi_bonus_size;
+       uint8_t doi_indirection;                /* 2 = dnode->indirect->data */
+       uint8_t doi_checksum;
+       uint8_t doi_compress;
+       uint8_t doi_pad[5];
+       uint64_t doi_physical_blocks_512;       /* data + metadata, 512b blks */
+       uint64_t doi_max_offset;
+       uint64_t doi_fill_count;                /* number of non-empty blocks */
+} dmu_object_info_t;
+
+typedef void arc_byteswap_func_t(void *buf, size_t size);
+
+typedef struct dmu_object_type_info {
+       arc_byteswap_func_t     *ot_byteswap;
+       boolean_t               ot_metadata;
+       char                    *ot_name;
+} dmu_object_type_info_t;
+
+extern const dmu_object_type_info_t dmu_ot[DMU_OT_NUMTYPES];
+
+/*
+ * Get information on a DMU object.
+ *
+ * Return 0 on success or ENOENT if object is not allocated.
+ *
+ * If doi is NULL, just indicates whether the object exists.
+ */
+int dmu_object_info(objset_t *os, uint64_t object, dmu_object_info_t *doi);
+void dmu_object_info_from_dnode(struct dnode *dn, dmu_object_info_t *doi);
+void dmu_object_info_from_db(dmu_buf_t *db, dmu_object_info_t *doi);
+void dmu_object_size_from_db(dmu_buf_t *db, uint32_t *blksize,
+    u_longlong_t *nblk512);
+
+typedef struct dmu_objset_stats {
+       uint64_t dds_num_clones; /* number of clones of this */
+       uint64_t dds_creation_txg;
+       uint64_t dds_guid;
+       dmu_objset_type_t dds_type;
+       uint8_t dds_is_snapshot;
+       uint8_t dds_inconsistent;
+       char dds_origin[MAXNAMELEN];
+} dmu_objset_stats_t;
+
+/*
+ * Get stats on a dataset.
+ */
+void dmu_objset_fast_stat(objset_t *os, dmu_objset_stats_t *stat);
+
+/*
+ * Add entries to the nvlist for all the objset's properties.  See
+ * zfs_prop_table[] and zfs(1m) for details on the properties.
+ */
+void dmu_objset_stats(objset_t *os, struct nvlist *nv);
+
+/*
+ * Get the space usage statistics for statvfs().
+ *
+ * refdbytes is the amount of space "referenced" by this objset.
+ * availbytes is the amount of space available to this objset, taking
+ * into account quotas & reservations, assuming that no other objsets
+ * use the space first.  These values correspond to the 'referenced' and
+ * 'available' properties, described in the zfs(1m) manpage.
+ *
+ * usedobjs and availobjs are the number of objects currently allocated,
+ * and available.
+ */
+void dmu_objset_space(objset_t *os, uint64_t *refdbytesp, uint64_t *availbytesp,
+    uint64_t *usedobjsp, uint64_t *availobjsp);
+
+/*
+ * The fsid_guid is a 56-bit ID that can change to avoid collisions.
+ * (Contrast with the ds_guid which is a 64-bit ID that will never
+ * change, so there is a small probability that it will collide.)
+ */
+uint64_t dmu_objset_fsid_guid(objset_t *os);
+
+/*
+ * Get the [cm]time for an objset's snapshot dir
+ */
+timestruc_t dmu_objset_snap_cmtime(objset_t *os);
+
+int dmu_objset_is_snapshot(objset_t *os);
+
+extern struct spa *dmu_objset_spa(objset_t *os);
+extern struct zilog *dmu_objset_zil(objset_t *os);
+extern struct dsl_pool *dmu_objset_pool(objset_t *os);
+extern struct dsl_dataset *dmu_objset_ds(objset_t *os);
+extern void dmu_objset_name(objset_t *os, char *buf);
+extern dmu_objset_type_t dmu_objset_type(objset_t *os);
+extern uint64_t dmu_objset_id(objset_t *os);
+extern uint64_t dmu_objset_syncprop(objset_t *os);
+extern uint64_t dmu_objset_logbias(objset_t *os);
+extern int dmu_snapshot_list_next(objset_t *os, int namelen, char *name,
+    uint64_t *id, uint64_t *offp, boolean_t *case_conflict);
+extern int dmu_snapshot_realname(objset_t *os, char *name, char *real,
+    int maxlen, boolean_t *conflict);
+extern int dmu_dir_list_next(objset_t *os, int namelen, char *name,
+    uint64_t *idp, uint64_t *offp);
+
+typedef int objset_used_cb_t(dmu_object_type_t bonustype,
+    void *bonus, uint64_t *userp, uint64_t *groupp);
+extern void dmu_objset_register_type(dmu_objset_type_t ost,
+    objset_used_cb_t *cb);
+extern void dmu_objset_set_user(objset_t *os, void *user_ptr);
+extern void *dmu_objset_get_user(objset_t *os);
+
+/*
+ * Return the txg number for the given assigned transaction.
+ */
+uint64_t dmu_tx_get_txg(dmu_tx_t *tx);
+
+/*
+ * Synchronous write.
+ * If a parent zio is provided this function initiates a write on the
+ * provided buffer as a child of the parent zio.
+ * In the absence of a parent zio, the write is completed synchronously.
+ * At write completion, blk is filled with the bp of the written block.
+ * Note that while the data covered by this function will be on stable
+ * storage when the write completes this new data does not become a
+ * permanent part of the file until the associated transaction commits.
+ */
+
+/*
+ * {zfs,zvol,ztest}_get_done() args
+ */
+typedef struct zgd {
+       struct zilog    *zgd_zilog;
+       struct blkptr   *zgd_bp;
+       dmu_buf_t       *zgd_db;
+       struct rl       *zgd_rl;
+       void            *zgd_private;
+} zgd_t;
+
+typedef void dmu_sync_cb_t(zgd_t *arg, int error);
+int dmu_sync(struct zio *zio, uint64_t txg, dmu_sync_cb_t *done, zgd_t *zgd);
+
+/*
+ * Find the next hole or data block in file starting at *off
+ * Return found offset in *off. Return ESRCH for end of file.
+ */
+int dmu_offset_next(objset_t *os, uint64_t object, boolean_t hole,
+    uint64_t *off);
+
+/*
+ * Initial setup and final teardown.
+ */
+extern void dmu_init(void);
+extern void dmu_fini(void);
+
+typedef void (*dmu_traverse_cb_t)(objset_t *os, void *arg, struct blkptr *bp,
+    uint64_t object, uint64_t offset, int len);
+void dmu_traverse_objset(objset_t *os, uint64_t txg_start,
+    dmu_traverse_cb_t cb, void *arg);
+
+int dmu_sendbackup(objset_t *tosnap, objset_t *fromsnap, boolean_t fromorigin,
+    struct vnode *vp, offset_t *off);
+
+typedef struct dmu_recv_cookie {
+       /*
+        * This structure is opaque!
+        *
+        * If logical and real are different, we are recving the stream
+        * into the "real" temporary clone, and then switching it with
+        * the "logical" target.
+        */
+       struct dsl_dataset *drc_logical_ds;
+       struct dsl_dataset *drc_real_ds;
+       struct drr_begin *drc_drrb;
+       char *drc_tosnap;
+       char *drc_top_ds;
+       boolean_t drc_newfs;
+       boolean_t drc_force;
+} dmu_recv_cookie_t;
+
+int dmu_recv_begin(char *tofs, char *tosnap, char *topds, struct drr_begin *,
+    boolean_t force, objset_t *origin, dmu_recv_cookie_t *);
+int dmu_recv_stream(dmu_recv_cookie_t *drc, struct vnode *vp, offset_t *voffp,
+    int cleanup_fd, uint64_t *action_handlep);
+int dmu_recv_end(dmu_recv_cookie_t *drc);
+
+int dmu_diff(objset_t *tosnap, objset_t *fromsnap, struct vnode *vp,
+    offset_t *off);
+
+/* CRC64 table */
+#define        ZFS_CRC64_POLY  0xC96C5795D7870F42ULL   /* ECMA-182, reflected form */
+extern uint64_t zfs_crc64_table[256];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DMU_H */
diff --git a/include/sys/dmu_impl.h b/include/sys/dmu_impl.h
new file mode 100644 (file)
index 0000000..0b8748d
--- /dev/null
@@ -0,0 +1,246 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_DMU_IMPL_H
+#define        _SYS_DMU_IMPL_H
+
+#include <sys/txg_impl.h>
+#include <sys/zio.h>
+#include <sys/dnode.h>
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * This is the locking strategy for the DMU.  Numbers in parenthesis are
+ * cases that use that lock order, referenced below:
+ *
+ * ARC is self-contained
+ * bplist is self-contained
+ * refcount is self-contained
+ * txg is self-contained (hopefully!)
+ * zst_lock
+ * zf_rwlock
+ *
+ * XXX try to improve evicting path?
+ *
+ * dp_config_rwlock > os_obj_lock > dn_struct_rwlock >
+ *     dn_dbufs_mtx > hash_mutexes > db_mtx > dd_lock > leafs
+ *
+ * dp_config_rwlock
+ *    must be held before: everything
+ *    protects dd namespace changes
+ *    protects property changes globally
+ *    held from:
+ *     dsl_dir_open/r:
+ *     dsl_dir_create_sync/w:
+ *     dsl_dir_sync_destroy/w:
+ *     dsl_dir_rename_sync/w:
+ *     dsl_prop_changed_notify/r:
+ *
+ * os_obj_lock
+ *   must be held before:
+ *     everything except dp_config_rwlock
+ *   protects os_obj_next
+ *   held from:
+ *     dmu_object_alloc: dn_dbufs_mtx, db_mtx, hash_mutexes, dn_struct_rwlock
+ *
+ * dn_struct_rwlock
+ *   must be held before:
+ *     everything except dp_config_rwlock and os_obj_lock
+ *   protects structure of dnode (eg. nlevels)
+ *     db_blkptr can change when syncing out change to nlevels
+ *     dn_maxblkid
+ *     dn_nlevels
+ *     dn_*blksz*
+ *     phys nlevels, maxblkid, physical blkptr_t's (?)
+ *   held from:
+ *     callers of dbuf_read_impl, dbuf_hold[_impl], dbuf_prefetch
+ *     dmu_object_info_from_dnode: dn_dirty_mtx (dn_datablksz)
+ *     dmu_tx_count_free:
+ *     dbuf_read_impl: db_mtx, dmu_zfetch()
+ *     dmu_zfetch: zf_rwlock/r, zst_lock, dbuf_prefetch()
+ *     dbuf_new_size: db_mtx
+ *     dbuf_dirty: db_mtx
+ *     dbuf_findbp: (callers, phys? - the real need)
+ *     dbuf_create: dn_dbufs_mtx, hash_mutexes, db_mtx (phys?)
+ *     dbuf_prefetch: dn_dirty_mtx, hash_mutexes, db_mtx, dn_dbufs_mtx
+ *     dbuf_hold_impl: hash_mutexes, db_mtx, dn_dbufs_mtx, dbuf_findbp()
+ *     dnode_sync/w (increase_indirection): db_mtx (phys)
+ *     dnode_set_blksz/w: dn_dbufs_mtx (dn_*blksz*)
+ *     dnode_new_blkid/w: (dn_maxblkid)
+ *     dnode_free_range/w: dn_dirty_mtx (dn_maxblkid)
+ *     dnode_next_offset: (phys)
+ *
+ * dn_dbufs_mtx
+ *    must be held before:
+ *     db_mtx, hash_mutexes
+ *    protects:
+ *     dn_dbufs
+ *     dn_evicted
+ *    held from:
+ *     dmu_evict_user: db_mtx (dn_dbufs)
+ *     dbuf_free_range: db_mtx (dn_dbufs)
+ *     dbuf_remove_ref: db_mtx, callees:
+ *             dbuf_hash_remove: hash_mutexes, db_mtx
+ *     dbuf_create: hash_mutexes, db_mtx (dn_dbufs)
+ *     dnode_set_blksz: (dn_dbufs)
+ *
+ * hash_mutexes (global)
+ *   must be held before:
+ *     db_mtx
+ *   protects dbuf_hash_table (global) and db_hash_next
+ *   held from:
+ *     dbuf_find: db_mtx
+ *     dbuf_hash_insert: db_mtx
+ *     dbuf_hash_remove: db_mtx
+ *
+ * db_mtx (meta-leaf)
+ *   must be held before:
+ *     dn_mtx, dn_dirty_mtx, dd_lock (leaf mutexes)
+ *   protects:
+ *     db_state
+ *     db_holds
+ *     db_buf
+ *     db_changed
+ *     db_data_pending
+ *     db_dirtied
+ *     db_link
+ *     db_dirty_node (??)
+ *     db_dirtycnt
+ *     db_d.*
+ *     db.*
+ *   held from:
+ *     dbuf_dirty: dn_mtx, dn_dirty_mtx
+ *     dbuf_dirty->dsl_dir_willuse_space: dd_lock
+ *     dbuf_dirty->dbuf_new_block->dsl_dataset_block_freeable: dd_lock
+ *     dbuf_undirty: dn_dirty_mtx (db_d)
+ *     dbuf_write_done: dn_dirty_mtx (db_state)
+ *     dbuf_*
+ *     dmu_buf_update_user: none (db_d)
+ *     dmu_evict_user: none (db_d) (maybe can eliminate)
+ *     dbuf_find: none (db_holds)
+ *     dbuf_hash_insert: none (db_holds)
+ *     dmu_buf_read_array_impl: none (db_state, db_changed)
+ *     dmu_sync: none (db_dirty_node, db_d)
+ *     dnode_reallocate: none (db)
+ *
+ * dn_mtx (leaf)
+ *   protects:
+ *     dn_dirty_dbufs
+ *     dn_ranges
+ *     phys accounting
+ *     dn_allocated_txg
+ *     dn_free_txg
+ *     dn_assigned_txg
+ *     dd_assigned_tx
+ *     dn_notxholds
+ *     dn_dirtyctx
+ *     dn_dirtyctx_firstset
+ *     (dn_phys copy fields?)
+ *     (dn_phys contents?)
+ *   held from:
+ *     dnode_*
+ *     dbuf_dirty: none
+ *     dbuf_sync: none (phys accounting)
+ *     dbuf_undirty: none (dn_ranges, dn_dirty_dbufs)
+ *     dbuf_write_done: none (phys accounting)
+ *     dmu_object_info_from_dnode: none (accounting)
+ *     dmu_tx_commit: none
+ *     dmu_tx_hold_object_impl: none
+ *     dmu_tx_try_assign: dn_notxholds(cv)
+ *     dmu_tx_unassign: none
+ *
+ * dd_lock
+ *    must be held before:
+ *      ds_lock
+ *      ancestors' dd_lock
+ *    protects:
+ *     dd_prop_cbs
+ *     dd_sync_*
+ *     dd_used_bytes
+ *     dd_tempreserved
+ *     dd_space_towrite
+ *     dd_myname
+ *     dd_phys accounting?
+ *    held from:
+ *     dsl_dir_*
+ *     dsl_prop_changed_notify: none (dd_prop_cbs)
+ *     dsl_prop_register: none (dd_prop_cbs)
+ *     dsl_prop_unregister: none (dd_prop_cbs)
+ *     dsl_dataset_block_freeable: none (dd_sync_*)
+ *
+ * os_lock (leaf)
+ *   protects:
+ *     os_dirty_dnodes
+ *     os_free_dnodes
+ *     os_dnodes
+ *     os_downgraded_dbufs
+ *     dn_dirtyblksz
+ *     dn_dirty_link
+ *   held from:
+ *     dnode_create: none (os_dnodes)
+ *     dnode_destroy: none (os_dnodes)
+ *     dnode_setdirty: none (dn_dirtyblksz, os_*_dnodes)
+ *     dnode_free: none (dn_dirtyblksz, os_*_dnodes)
+ *
+ * ds_lock
+ *    protects:
+ *     ds_objset
+ *     ds_open_refcount
+ *     ds_snapname
+ *     ds_phys accounting
+ *     ds_phys userrefs zapobj
+ *     ds_reserved
+ *    held from:
+ *     dsl_dataset_*
+ *
+ * dr_mtx (leaf)
+ *    protects:
+ *     dr_children
+ *    held from:
+ *     dbuf_dirty
+ *     dbuf_undirty
+ *     dbuf_sync_indirect
+ *     dnode_new_blkid
+ */
+
+struct objset;
+struct dmu_pool;
+
+typedef struct dmu_xuio {
+       int next;
+       int cnt;
+       struct arc_buf **bufs;
+       iovec_t *iovp;
+} dmu_xuio_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DMU_IMPL_H */
diff --git a/include/sys/dmu_objset.h b/include/sys/dmu_objset.h
new file mode 100644 (file)
index 0000000..c6d202e
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+/* Portions Copyright 2010 Robert Milkowski */
+
+#ifndef        _SYS_DMU_OBJSET_H
+#define        _SYS_DMU_OBJSET_H
+
+#include <sys/spa.h>
+#include <sys/arc.h>
+#include <sys/txg.h>
+#include <sys/zfs_context.h>
+#include <sys/dnode.h>
+#include <sys/zio.h>
+#include <sys/zil.h>
+#include <sys/sa.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern krwlock_t os_lock;
+
+struct dsl_dataset;
+struct dmu_tx;
+
+#define        OBJSET_PHYS_SIZE 2048
+#define        OBJSET_OLD_PHYS_SIZE 1024
+
+#define        OBJSET_BUF_HAS_USERUSED(buf) \
+       (arc_buf_size(buf) > OBJSET_OLD_PHYS_SIZE)
+
+#define        OBJSET_FLAG_USERACCOUNTING_COMPLETE     (1ULL<<0)
+
+typedef struct objset_phys {
+       dnode_phys_t os_meta_dnode;
+       zil_header_t os_zil_header;
+       uint64_t os_type;
+       uint64_t os_flags;
+       char os_pad[OBJSET_PHYS_SIZE - sizeof (dnode_phys_t)*3 -
+           sizeof (zil_header_t) - sizeof (uint64_t)*2];
+       dnode_phys_t os_userused_dnode;
+       dnode_phys_t os_groupused_dnode;
+} objset_phys_t;
+
+struct objset {
+       /* Immutable: */
+       struct dsl_dataset *os_dsl_dataset;
+       spa_t *os_spa;
+       arc_buf_t *os_phys_buf;
+       objset_phys_t *os_phys;
+       /*
+        * The following "special" dnodes have no parent and are exempt from
+        * dnode_move(), but they root their descendents in this objset using
+        * handles anyway, so that all access to dnodes from dbufs consistently
+        * uses handles.
+        */
+       dnode_handle_t os_meta_dnode;
+       dnode_handle_t os_userused_dnode;
+       dnode_handle_t os_groupused_dnode;
+       zilog_t *os_zil;
+
+       /* can change, under dsl_dir's locks: */
+       uint8_t os_checksum;
+       uint8_t os_compress;
+       uint8_t os_copies;
+       uint8_t os_dedup_checksum;
+       uint8_t os_dedup_verify;
+       uint8_t os_logbias;
+       uint8_t os_primary_cache;
+       uint8_t os_secondary_cache;
+       uint8_t os_sync;
+
+       /* no lock needed: */
+       struct dmu_tx *os_synctx; /* XXX sketchy */
+       blkptr_t *os_rootbp;
+       zil_header_t os_zil_header;
+       list_t os_synced_dnodes;
+       uint64_t os_flags;
+
+       /* Protected by os_obj_lock */
+       kmutex_t os_obj_lock;
+       uint64_t os_obj_next;
+
+       /* Protected by os_lock */
+       kmutex_t os_lock;
+       list_t os_dirty_dnodes[TXG_SIZE];
+       list_t os_free_dnodes[TXG_SIZE];
+       list_t os_dnodes;
+       list_t os_downgraded_dbufs;
+
+       /* stuff we store for the user */
+       kmutex_t os_user_ptr_lock;
+       void *os_user_ptr;
+
+       /* SA layout/attribute registration */
+       sa_os_t *os_sa;
+};
+
+#define        DMU_META_OBJSET         0
+#define        DMU_META_DNODE_OBJECT   0
+#define        DMU_OBJECT_IS_SPECIAL(obj) ((int64_t)(obj) <= 0)
+#define        DMU_META_DNODE(os)      ((os)->os_meta_dnode.dnh_dnode)
+#define        DMU_USERUSED_DNODE(os)  ((os)->os_userused_dnode.dnh_dnode)
+#define        DMU_GROUPUSED_DNODE(os) ((os)->os_groupused_dnode.dnh_dnode)
+
+#define        DMU_OS_IS_L2CACHEABLE(os)                               \
+       ((os)->os_secondary_cache == ZFS_CACHE_ALL ||           \
+       (os)->os_secondary_cache == ZFS_CACHE_METADATA)
+
+/* called from zpl */
+int dmu_objset_hold(const char *name, void *tag, objset_t **osp);
+int dmu_objset_own(const char *name, dmu_objset_type_t type,
+    boolean_t readonly, void *tag, objset_t **osp);
+void dmu_objset_rele(objset_t *os, void *tag);
+void dmu_objset_disown(objset_t *os, void *tag);
+int dmu_objset_from_ds(struct dsl_dataset *ds, objset_t **osp);
+
+int dmu_objset_create(const char *name, dmu_objset_type_t type, uint64_t flags,
+    void (*func)(objset_t *os, void *arg, cred_t *cr, dmu_tx_t *tx), void *arg);
+int dmu_objset_clone(const char *name, struct dsl_dataset *clone_origin,
+    uint64_t flags);
+int dmu_objset_destroy(const char *name, boolean_t defer);
+int dmu_objset_snapshot(char *fsname, char *snapname, char *tag,
+    struct nvlist *props, boolean_t recursive, boolean_t temporary, int fd);
+void dmu_objset_stats(objset_t *os, nvlist_t *nv);
+void dmu_objset_fast_stat(objset_t *os, dmu_objset_stats_t *stat);
+void dmu_objset_space(objset_t *os, uint64_t *refdbytesp, uint64_t *availbytesp,
+    uint64_t *usedobjsp, uint64_t *availobjsp);
+uint64_t dmu_objset_fsid_guid(objset_t *os);
+int dmu_objset_find(char *name, int func(const char *, void *), void *arg,
+    int flags);
+int dmu_objset_find_spa(spa_t *spa, const char *name,
+    int func(spa_t *, uint64_t, const char *, void *), void *arg, int flags);
+int dmu_objset_prefetch(const char *name, void *arg);
+void dmu_objset_byteswap(void *buf, size_t size);
+int dmu_objset_evict_dbufs(objset_t *os);
+timestruc_t dmu_objset_snap_cmtime(objset_t *os);
+
+/* called from dsl */
+void dmu_objset_sync(objset_t *os, zio_t *zio, dmu_tx_t *tx);
+boolean_t dmu_objset_is_dirty(objset_t *os, uint64_t txg);
+boolean_t dmu_objset_is_dirty_anywhere(objset_t *os);
+objset_t *dmu_objset_create_impl(spa_t *spa, struct dsl_dataset *ds,
+    blkptr_t *bp, dmu_objset_type_t type, dmu_tx_t *tx);
+int dmu_objset_open_impl(spa_t *spa, struct dsl_dataset *ds, blkptr_t *bp,
+    objset_t **osp);
+void dmu_objset_evict(objset_t *os);
+void dmu_objset_do_userquota_updates(objset_t *os, dmu_tx_t *tx);
+void dmu_objset_userquota_get_ids(dnode_t *dn, boolean_t before, dmu_tx_t *tx);
+boolean_t dmu_objset_userused_enabled(objset_t *os);
+int dmu_objset_userspace_upgrade(objset_t *os);
+boolean_t dmu_objset_userspace_present(objset_t *os);
+
+void dmu_objset_init(void);
+void dmu_objset_fini(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DMU_OBJSET_H */
diff --git a/include/sys/dmu_traverse.h b/include/sys/dmu_traverse.h
new file mode 100644 (file)
index 0000000..5b326cd
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DMU_TRAVERSE_H
+#define        _SYS_DMU_TRAVERSE_H
+
+#include <sys/zfs_context.h>
+#include <sys/spa.h>
+#include <sys/zio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct dnode_phys;
+struct dsl_dataset;
+struct zilog;
+struct arc_buf;
+
+typedef int (blkptr_cb_t)(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
+    struct arc_buf *pbuf, const zbookmark_t *zb, const struct dnode_phys *dnp,
+    void *arg);
+
+#define        TRAVERSE_PRE                    (1<<0)
+#define        TRAVERSE_POST                   (1<<1)
+#define        TRAVERSE_PREFETCH_METADATA      (1<<2)
+#define        TRAVERSE_PREFETCH_DATA          (1<<3)
+#define        TRAVERSE_PREFETCH (TRAVERSE_PREFETCH_METADATA | TRAVERSE_PREFETCH_DATA)
+#define        TRAVERSE_HARD                   (1<<4)
+
+/* Special traverse error return value to indicate skipping of children */
+#define        TRAVERSE_VISIT_NO_CHILDREN      -1
+
+int traverse_dataset(struct dsl_dataset *ds,
+    uint64_t txg_start, int flags, blkptr_cb_t func, void *arg);
+int traverse_pool(spa_t *spa,
+    uint64_t txg_start, int flags, blkptr_cb_t func, void *arg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DMU_TRAVERSE_H */
diff --git a/include/sys/dmu_tx.h b/include/sys/dmu_tx.h
new file mode 100644 (file)
index 0000000..c5ea50f
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SYS_DMU_TX_H
+#define        _SYS_DMU_TX_H
+
+#include <sys/inttypes.h>
+#include <sys/dmu.h>
+#include <sys/txg.h>
+#include <sys/refcount.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct dmu_buf_impl;
+struct dmu_tx_hold;
+struct dnode_link;
+struct dsl_pool;
+struct dnode;
+struct dsl_dir;
+
+struct dmu_tx {
+       /*
+        * No synchronization is needed because a tx can only be handled
+        * by one thread.
+        */
+       list_t tx_holds; /* list of dmu_tx_hold_t */
+       objset_t *tx_objset;
+       struct dsl_dir *tx_dir;
+       struct dsl_pool *tx_pool;
+       uint64_t tx_txg;
+       uint64_t tx_lastsnap_txg;
+       uint64_t tx_lasttried_txg;
+       txg_handle_t tx_txgh;
+       void *tx_tempreserve_cookie;
+       struct dmu_tx_hold *tx_needassign_txh;
+       list_t tx_callbacks; /* list of dmu_tx_callback_t on this dmu_tx */
+       uint8_t tx_anyobj;
+       int tx_err;
+#ifdef ZFS_DEBUG
+       uint64_t tx_space_towrite;
+       uint64_t tx_space_tofree;
+       uint64_t tx_space_tooverwrite;
+       uint64_t tx_space_tounref;
+       refcount_t tx_space_written;
+       refcount_t tx_space_freed;
+#endif
+};
+
+enum dmu_tx_hold_type {
+       THT_NEWOBJECT,
+       THT_WRITE,
+       THT_BONUS,
+       THT_FREE,
+       THT_ZAP,
+       THT_SPACE,
+       THT_SPILL,
+       THT_NUMTYPES
+};
+
+typedef struct dmu_tx_hold {
+       dmu_tx_t *txh_tx;
+       list_node_t txh_node;
+       struct dnode *txh_dnode;
+       uint64_t txh_space_towrite;
+       uint64_t txh_space_tofree;
+       uint64_t txh_space_tooverwrite;
+       uint64_t txh_space_tounref;
+       uint64_t txh_memory_tohold;
+       uint64_t txh_fudge;
+#ifdef ZFS_DEBUG
+       enum dmu_tx_hold_type txh_type;
+       uint64_t txh_arg1;
+       uint64_t txh_arg2;
+#endif
+} dmu_tx_hold_t;
+
+typedef struct dmu_tx_callback {
+       list_node_t             dcb_node;    /* linked to tx_callbacks list */
+       dmu_tx_callback_func_t  *dcb_func;   /* caller function pointer */
+       void                    *dcb_data;   /* caller private data */
+} dmu_tx_callback_t;
+
+/*
+ * These routines are defined in dmu.h, and are called by the user.
+ */
+dmu_tx_t *dmu_tx_create(objset_t *dd);
+int dmu_tx_assign(dmu_tx_t *tx, uint64_t txg_how);
+void dmu_tx_commit(dmu_tx_t *tx);
+void dmu_tx_abort(dmu_tx_t *tx);
+uint64_t dmu_tx_get_txg(dmu_tx_t *tx);
+void dmu_tx_wait(dmu_tx_t *tx);
+
+void dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *dcb_func,
+    void *dcb_data);
+void dmu_tx_do_callbacks(list_t *cb_list, int error);
+
+/*
+ * These routines are defined in dmu_spa.h, and are called by the SPA.
+ */
+extern dmu_tx_t *dmu_tx_create_assigned(struct dsl_pool *dp, uint64_t txg);
+
+/*
+ * These routines are only called by the DMU.
+ */
+dmu_tx_t *dmu_tx_create_dd(dsl_dir_t *dd);
+int dmu_tx_is_syncing(dmu_tx_t *tx);
+int dmu_tx_private_ok(dmu_tx_t *tx);
+void dmu_tx_add_new_object(dmu_tx_t *tx, objset_t *os, uint64_t object);
+void dmu_tx_willuse_space(dmu_tx_t *tx, int64_t delta);
+void dmu_tx_dirty_buf(dmu_tx_t *tx, struct dmu_buf_impl *db);
+int dmu_tx_holds(dmu_tx_t *tx, uint64_t object);
+void dmu_tx_hold_space(dmu_tx_t *tx, uint64_t space);
+
+#ifdef ZFS_DEBUG
+#define        DMU_TX_DIRTY_BUF(tx, db)        dmu_tx_dirty_buf(tx, db)
+#else
+#define        DMU_TX_DIRTY_BUF(tx, db)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DMU_TX_H */
diff --git a/include/sys/dmu_zfetch.h b/include/sys/dmu_zfetch.h
new file mode 100644 (file)
index 0000000..78cadd2
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _DFETCH_H
+#define        _DFETCH_H
+
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern uint64_t        zfetch_array_rd_sz;
+
+struct dnode;                          /* so we can reference dnode */
+
+typedef enum zfetch_dirn {
+       ZFETCH_FORWARD = 1,             /* prefetch increasing block numbers */
+       ZFETCH_BACKWARD = -1            /* prefetch decreasing block numbers */
+} zfetch_dirn_t;
+
+typedef struct zstream {
+       uint64_t        zst_offset;     /* offset of starting block in range */
+       uint64_t        zst_len;        /* length of range, in blocks */
+       zfetch_dirn_t   zst_direction;  /* direction of prefetch */
+       uint64_t        zst_stride;     /* length of stride, in blocks */
+       uint64_t        zst_ph_offset;  /* prefetch offset, in blocks */
+       uint64_t        zst_cap;        /* prefetch limit (cap), in blocks */
+       kmutex_t        zst_lock;       /* protects stream */
+       clock_t         zst_last;       /* lbolt of last prefetch */
+       avl_node_t      zst_node;       /* embed avl node here */
+} zstream_t;
+
+typedef struct zfetch {
+       krwlock_t       zf_rwlock;      /* protects zfetch structure */
+       list_t          zf_stream;      /* AVL tree of zstream_t's */
+       struct dnode    *zf_dnode;      /* dnode that owns this zfetch */
+       uint32_t        zf_stream_cnt;  /* # of active streams */
+       uint64_t        zf_alloc_fail;  /* # of failed attempts to alloc strm */
+} zfetch_t;
+
+void           zfetch_init(void);
+void           zfetch_fini(void);
+
+void           dmu_zfetch_init(zfetch_t *, struct dnode *);
+void           dmu_zfetch_rele(zfetch_t *);
+void           dmu_zfetch(zfetch_t *, uint64_t, uint64_t, int);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DFETCH_H */
diff --git a/include/sys/dnode.h b/include/sys/dnode.h
new file mode 100644 (file)
index 0000000..9ad4be3
--- /dev/null
@@ -0,0 +1,329 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DNODE_H
+#define        _SYS_DNODE_H
+
+#include <sys/zfs_context.h>
+#include <sys/avl.h>
+#include <sys/spa.h>
+#include <sys/txg.h>
+#include <sys/zio.h>
+#include <sys/refcount.h>
+#include <sys/dmu_zfetch.h>
+#include <sys/zrlock.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * dnode_hold() flags.
+ */
+#define        DNODE_MUST_BE_ALLOCATED 1
+#define        DNODE_MUST_BE_FREE      2
+
+/*
+ * dnode_next_offset() flags.
+ */
+#define        DNODE_FIND_HOLE         1
+#define        DNODE_FIND_BACKWARDS    2
+#define        DNODE_FIND_HAVELOCK     4
+
+/*
+ * Fixed constants.
+ */
+#define        DNODE_SHIFT             9       /* 512 bytes */
+#define        DN_MIN_INDBLKSHIFT      10      /* 1k */
+#define        DN_MAX_INDBLKSHIFT      14      /* 16k */
+#define        DNODE_BLOCK_SHIFT       14      /* 16k */
+#define        DNODE_CORE_SIZE         64      /* 64 bytes for dnode sans blkptrs */
+#define        DN_MAX_OBJECT_SHIFT     48      /* 256 trillion (zfs_fid_t limit) */
+#define        DN_MAX_OFFSET_SHIFT     64      /* 2^64 bytes in a dnode */
+
+/*
+ * dnode id flags
+ *
+ * Note: a file will never ever have its
+ * ids moved from bonus->spill
+ * and only in a crypto environment would it be on spill
+ */
+#define        DN_ID_CHKED_BONUS       0x1
+#define        DN_ID_CHKED_SPILL       0x2
+#define        DN_ID_OLD_EXIST         0x4
+#define        DN_ID_NEW_EXIST         0x8
+
+/*
+ * Derived constants.
+ */
+#define        DNODE_SIZE      (1 << DNODE_SHIFT)
+#define        DN_MAX_NBLKPTR  ((DNODE_SIZE - DNODE_CORE_SIZE) >> SPA_BLKPTRSHIFT)
+#define        DN_MAX_BONUSLEN (DNODE_SIZE - DNODE_CORE_SIZE - (1 << SPA_BLKPTRSHIFT))
+#define        DN_MAX_OBJECT   (1ULL << DN_MAX_OBJECT_SHIFT)
+#define        DN_ZERO_BONUSLEN        (DN_MAX_BONUSLEN + 1)
+#define        DN_KILL_SPILLBLK (1)
+
+#define        DNODES_PER_BLOCK_SHIFT  (DNODE_BLOCK_SHIFT - DNODE_SHIFT)
+#define        DNODES_PER_BLOCK        (1ULL << DNODES_PER_BLOCK_SHIFT)
+#define        DNODES_PER_LEVEL_SHIFT  (DN_MAX_INDBLKSHIFT - SPA_BLKPTRSHIFT)
+#define        DNODES_PER_LEVEL        (1ULL << DNODES_PER_LEVEL_SHIFT)
+
+/* The +2 here is a cheesy way to round up */
+#define        DN_MAX_LEVELS   (2 + ((DN_MAX_OFFSET_SHIFT - SPA_MINBLOCKSHIFT) / \
+       (DN_MIN_INDBLKSHIFT - SPA_BLKPTRSHIFT)))
+
+#define        DN_BONUS(dnp)   ((void*)((dnp)->dn_bonus + \
+       (((dnp)->dn_nblkptr - 1) * sizeof (blkptr_t))))
+
+#define        DN_USED_BYTES(dnp) (((dnp)->dn_flags & DNODE_FLAG_USED_BYTES) ? \
+       (dnp)->dn_used : (dnp)->dn_used << SPA_MINBLOCKSHIFT)
+
+#define        EPB(blkshift, typeshift)        (1 << (blkshift - typeshift))
+
+struct dmu_buf_impl;
+struct objset;
+struct zio;
+
+enum dnode_dirtycontext {
+       DN_UNDIRTIED,
+       DN_DIRTY_OPEN,
+       DN_DIRTY_SYNC
+};
+
+/* Is dn_used in bytes?  if not, it's in multiples of SPA_MINBLOCKSIZE */
+#define        DNODE_FLAG_USED_BYTES           (1<<0)
+#define        DNODE_FLAG_USERUSED_ACCOUNTED   (1<<1)
+
+/* Does dnode have a SA spill blkptr in bonus? */
+#define        DNODE_FLAG_SPILL_BLKPTR (1<<2)
+
+typedef struct dnode_phys {
+       uint8_t dn_type;                /* dmu_object_type_t */
+       uint8_t dn_indblkshift;         /* ln2(indirect block size) */
+       uint8_t dn_nlevels;             /* 1=dn_blkptr->data blocks */
+       uint8_t dn_nblkptr;             /* length of dn_blkptr */
+       uint8_t dn_bonustype;           /* type of data in bonus buffer */
+       uint8_t dn_checksum;            /* ZIO_CHECKSUM type */
+       uint8_t dn_compress;            /* ZIO_COMPRESS type */
+       uint8_t dn_flags;               /* DNODE_FLAG_* */
+       uint16_t dn_datablkszsec;       /* data block size in 512b sectors */
+       uint16_t dn_bonuslen;           /* length of dn_bonus */
+       uint8_t dn_pad2[4];
+
+       /* accounting is protected by dn_dirty_mtx */
+       uint64_t dn_maxblkid;           /* largest allocated block ID */
+       uint64_t dn_used;               /* bytes (or sectors) of disk space */
+
+       uint64_t dn_pad3[4];
+
+       blkptr_t dn_blkptr[1];
+       uint8_t dn_bonus[DN_MAX_BONUSLEN - sizeof (blkptr_t)];
+       blkptr_t dn_spill;
+} dnode_phys_t;
+
+typedef struct dnode {
+       /*
+        * dn_struct_rwlock protects the structure of the dnode,
+        * including the number of levels of indirection (dn_nlevels),
+        * dn_maxblkid, and dn_next_*
+        */
+       krwlock_t dn_struct_rwlock;
+
+       /* Our link on dn_objset->os_dnodes list; protected by os_lock.  */
+       list_node_t dn_link;
+
+       /* immutable: */
+       struct objset *dn_objset;
+       uint64_t dn_object;
+       struct dmu_buf_impl *dn_dbuf;
+       struct dnode_handle *dn_handle;
+       dnode_phys_t *dn_phys; /* pointer into dn->dn_dbuf->db.db_data */
+
+       /*
+        * Copies of stuff in dn_phys.  They're valid in the open
+        * context (eg. even before the dnode is first synced).
+        * Where necessary, these are protected by dn_struct_rwlock.
+        */
+       dmu_object_type_t dn_type;      /* object type */
+       uint16_t dn_bonuslen;           /* bonus length */
+       uint8_t dn_bonustype;           /* bonus type */
+       uint8_t dn_nblkptr;             /* number of blkptrs (immutable) */
+       uint8_t dn_checksum;            /* ZIO_CHECKSUM type */
+       uint8_t dn_compress;            /* ZIO_COMPRESS type */
+       uint8_t dn_nlevels;
+       uint8_t dn_indblkshift;
+       uint8_t dn_datablkshift;        /* zero if blksz not power of 2! */
+       uint8_t dn_moved;               /* Has this dnode been moved? */
+       uint16_t dn_datablkszsec;       /* in 512b sectors */
+       uint32_t dn_datablksz;          /* in bytes */
+       uint64_t dn_maxblkid;
+       uint8_t dn_next_nblkptr[TXG_SIZE];
+       uint8_t dn_next_nlevels[TXG_SIZE];
+       uint8_t dn_next_indblkshift[TXG_SIZE];
+       uint8_t dn_next_bonustype[TXG_SIZE];
+       uint8_t dn_rm_spillblk[TXG_SIZE];       /* for removing spill blk */
+       uint16_t dn_next_bonuslen[TXG_SIZE];
+       uint32_t dn_next_blksz[TXG_SIZE];       /* next block size in bytes */
+
+       /* protected by dn_dbufs_mtx; declared here to fill 32-bit hole */
+       uint32_t dn_dbufs_count;        /* count of dn_dbufs */
+
+       /* protected by os_lock: */
+       list_node_t dn_dirty_link[TXG_SIZE];    /* next on dataset's dirty */
+
+       /* protected by dn_mtx: */
+       kmutex_t dn_mtx;
+       list_t dn_dirty_records[TXG_SIZE];
+       avl_tree_t dn_ranges[TXG_SIZE];
+       uint64_t dn_allocated_txg;
+       uint64_t dn_free_txg;
+       uint64_t dn_assigned_txg;
+       kcondvar_t dn_notxholds;
+       enum dnode_dirtycontext dn_dirtyctx;
+       uint8_t *dn_dirtyctx_firstset;          /* dbg: contents meaningless */
+
+       /* protected by own devices */
+       refcount_t dn_tx_holds;
+       refcount_t dn_holds;
+
+       kmutex_t dn_dbufs_mtx;
+       list_t dn_dbufs;                /* descendent dbufs */
+
+       /* protected by dn_struct_rwlock */
+       struct dmu_buf_impl *dn_bonus;  /* bonus buffer dbuf */
+
+       boolean_t dn_have_spill;        /* have spill or are spilling */
+
+       /* parent IO for current sync write */
+       zio_t *dn_zio;
+
+       /* used in syncing context */
+       uint64_t dn_oldused;    /* old phys used bytes */
+       uint64_t dn_oldflags;   /* old phys dn_flags */
+       uint64_t dn_olduid, dn_oldgid;
+       uint64_t dn_newuid, dn_newgid;
+       int dn_id_flags;
+
+       /* holds prefetch structure */
+       struct zfetch   dn_zfetch;
+} dnode_t;
+
+/*
+ * Adds a level of indirection between the dbuf and the dnode to avoid
+ * iterating descendent dbufs in dnode_move(). Handles are not allocated
+ * individually, but as an array of child dnodes in dnode_hold_impl().
+ */
+typedef struct dnode_handle {
+       /* Protects dnh_dnode from modification by dnode_move(). */
+       zrlock_t dnh_zrlock;
+       dnode_t *dnh_dnode;
+} dnode_handle_t;
+
+typedef struct dnode_children {
+       size_t dnc_count;               /* number of children */
+       dnode_handle_t dnc_children[1]; /* sized dynamically */
+} dnode_children_t;
+
+typedef struct free_range {
+       avl_node_t fr_node;
+       uint64_t fr_blkid;
+       uint64_t fr_nblks;
+} free_range_t;
+
+dnode_t *dnode_special_open(struct objset *dd, dnode_phys_t *dnp,
+    uint64_t object, dnode_handle_t *dnh);
+void dnode_special_close(dnode_handle_t *dnh);
+
+void dnode_setbonuslen(dnode_t *dn, int newsize, dmu_tx_t *tx);
+void dnode_setbonus_type(dnode_t *dn, dmu_object_type_t, dmu_tx_t *tx);
+void dnode_rm_spill(dnode_t *dn, dmu_tx_t *tx);
+
+int dnode_hold(struct objset *dd, uint64_t object,
+    void *ref, dnode_t **dnp);
+int dnode_hold_impl(struct objset *dd, uint64_t object, int flag,
+    void *ref, dnode_t **dnp);
+boolean_t dnode_add_ref(dnode_t *dn, void *ref);
+void dnode_rele(dnode_t *dn, void *ref);
+void dnode_setdirty(dnode_t *dn, dmu_tx_t *tx);
+void dnode_sync(dnode_t *dn, dmu_tx_t *tx);
+void dnode_allocate(dnode_t *dn, dmu_object_type_t ot, int blocksize, int ibs,
+    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
+void dnode_reallocate(dnode_t *dn, dmu_object_type_t ot, int blocksize,
+    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
+void dnode_free(dnode_t *dn, dmu_tx_t *tx);
+void dnode_byteswap(dnode_phys_t *dnp);
+void dnode_buf_byteswap(void *buf, size_t size);
+void dnode_verify(dnode_t *dn);
+int dnode_set_blksz(dnode_t *dn, uint64_t size, int ibs, dmu_tx_t *tx);
+uint64_t dnode_current_max_length(dnode_t *dn);
+void dnode_free_range(dnode_t *dn, uint64_t off, uint64_t len, dmu_tx_t *tx);
+void dnode_clear_range(dnode_t *dn, uint64_t blkid,
+    uint64_t nblks, dmu_tx_t *tx);
+void dnode_diduse_space(dnode_t *dn, int64_t space);
+void dnode_willuse_space(dnode_t *dn, int64_t space, dmu_tx_t *tx);
+void dnode_new_blkid(dnode_t *dn, uint64_t blkid, dmu_tx_t *tx, boolean_t);
+uint64_t dnode_block_freed(dnode_t *dn, uint64_t blkid);
+void dnode_init(void);
+void dnode_fini(void);
+int dnode_next_offset(dnode_t *dn, int flags, uint64_t *off,
+    int minlvl, uint64_t blkfill, uint64_t txg);
+void dnode_evict_dbufs(dnode_t *dn);
+
+#ifdef ZFS_DEBUG
+
+/*
+ * There should be a ## between the string literal and fmt, to make it
+ * clear that we're joining two strings together, but that piece of shit
+ * gcc doesn't support that preprocessor token.
+ */
+#define        dprintf_dnode(dn, fmt, ...) do { \
+       if (zfs_flags & ZFS_DEBUG_DPRINTF) { \
+       char __db_buf[32]; \
+       uint64_t __db_obj = (dn)->dn_object; \
+       if (__db_obj == DMU_META_DNODE_OBJECT) \
+               (void) strcpy(__db_buf, "mdn"); \
+       else \
+               (void) snprintf(__db_buf, sizeof (__db_buf), "%lld", \
+                   (u_longlong_t)__db_obj);\
+       dprintf_ds((dn)->dn_objset->os_dsl_dataset, "obj=%s " fmt, \
+           __db_buf, __VA_ARGS__); \
+       } \
+_NOTE(CONSTCOND) } while (0)
+
+#define        DNODE_VERIFY(dn)                dnode_verify(dn)
+#define        FREE_VERIFY(db, start, end, tx) free_verify(db, start, end, tx)
+
+#else
+
+#define        dprintf_dnode(db, fmt, ...)
+#define        DNODE_VERIFY(dn)
+#define        FREE_VERIFY(db, start, end, tx)
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DNODE_H */
diff --git a/include/sys/dsl_dataset.h b/include/sys/dsl_dataset.h
new file mode 100644 (file)
index 0000000..22733d0
--- /dev/null
@@ -0,0 +1,283 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DSL_DATASET_H
+#define        _SYS_DSL_DATASET_H
+
+#include <sys/dmu.h>
+#include <sys/spa.h>
+#include <sys/txg.h>
+#include <sys/zio.h>
+#include <sys/bplist.h>
+#include <sys/dsl_synctask.h>
+#include <sys/zfs_context.h>
+#include <sys/dsl_deadlist.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct dsl_dataset;
+struct dsl_dir;
+struct dsl_pool;
+
+#define        DS_FLAG_INCONSISTENT    (1ULL<<0)
+#define        DS_IS_INCONSISTENT(ds)  \
+       ((ds)->ds_phys->ds_flags & DS_FLAG_INCONSISTENT)
+/*
+ * NB: nopromote can not yet be set, but we want support for it in this
+ * on-disk version, so that we don't need to upgrade for it later.  It
+ * will be needed when we implement 'zfs split' (where the split off
+ * clone should not be promoted).
+ */
+#define        DS_FLAG_NOPROMOTE       (1ULL<<1)
+
+/*
+ * DS_FLAG_UNIQUE_ACCURATE is set if ds_unique_bytes has been correctly
+ * calculated for head datasets (starting with SPA_VERSION_UNIQUE_ACCURATE,
+ * refquota/refreservations).
+ */
+#define        DS_FLAG_UNIQUE_ACCURATE (1ULL<<2)
+
+/*
+ * DS_FLAG_DEFER_DESTROY is set after 'zfs destroy -d' has been called
+ * on a dataset. This allows the dataset to be destroyed using 'zfs release'.
+ */
+#define        DS_FLAG_DEFER_DESTROY   (1ULL<<3)
+#define        DS_IS_DEFER_DESTROY(ds) \
+       ((ds)->ds_phys->ds_flags & DS_FLAG_DEFER_DESTROY)
+
+/*
+ * DS_FLAG_CI_DATASET is set if the dataset contains a file system whose
+ * name lookups should be performed case-insensitively.
+ */
+#define        DS_FLAG_CI_DATASET      (1ULL<<16)
+
+typedef struct dsl_dataset_phys {
+       uint64_t ds_dir_obj;            /* DMU_OT_DSL_DIR */
+       uint64_t ds_prev_snap_obj;      /* DMU_OT_DSL_DATASET */
+       uint64_t ds_prev_snap_txg;
+       uint64_t ds_next_snap_obj;      /* DMU_OT_DSL_DATASET */
+       uint64_t ds_snapnames_zapobj;   /* DMU_OT_DSL_DS_SNAP_MAP 0 for snaps */
+       uint64_t ds_num_children;       /* clone/snap children; ==0 for head */
+       uint64_t ds_creation_time;      /* seconds since 1970 */
+       uint64_t ds_creation_txg;
+       uint64_t ds_deadlist_obj;       /* DMU_OT_DEADLIST */
+       uint64_t ds_used_bytes;
+       uint64_t ds_compressed_bytes;
+       uint64_t ds_uncompressed_bytes;
+       uint64_t ds_unique_bytes;       /* only relevant to snapshots */
+       /*
+        * The ds_fsid_guid is a 56-bit ID that can change to avoid
+        * collisions.  The ds_guid is a 64-bit ID that will never
+        * change, so there is a small probability that it will collide.
+        */
+       uint64_t ds_fsid_guid;
+       uint64_t ds_guid;
+       uint64_t ds_flags;              /* DS_FLAG_* */
+       blkptr_t ds_bp;
+       uint64_t ds_next_clones_obj;    /* DMU_OT_DSL_CLONES */
+       uint64_t ds_props_obj;          /* DMU_OT_DSL_PROPS for snaps */
+       uint64_t ds_userrefs_obj;       /* DMU_OT_USERREFS */
+       uint64_t ds_pad[5]; /* pad out to 320 bytes for good measure */
+} dsl_dataset_phys_t;
+
+typedef struct dsl_dataset {
+       /* Immutable: */
+       struct dsl_dir *ds_dir;
+       dsl_dataset_phys_t *ds_phys;
+       dmu_buf_t *ds_dbuf;
+       uint64_t ds_object;
+       uint64_t ds_fsid_guid;
+
+       /* only used in syncing context, only valid for non-snapshots: */
+       struct dsl_dataset *ds_prev;
+
+       /* has internal locking: */
+       dsl_deadlist_t ds_deadlist;
+       bplist_t ds_pending_deadlist;
+
+       /* to protect against multiple concurrent incremental recv */
+       kmutex_t ds_recvlock;
+
+       /* protected by lock on pool's dp_dirty_datasets list */
+       txg_node_t ds_dirty_link;
+       list_node_t ds_synced_link;
+
+       /*
+        * ds_phys->ds_<accounting> is also protected by ds_lock.
+        * Protected by ds_lock:
+        */
+       kmutex_t ds_lock;
+       objset_t *ds_objset;
+       uint64_t ds_userrefs;
+
+       /*
+        * ds_owner is protected by the ds_rwlock and the ds_lock
+        */
+       krwlock_t ds_rwlock;
+       kcondvar_t ds_exclusive_cv;
+       void *ds_owner;
+
+       /* no locking; only for making guesses */
+       uint64_t ds_trysnap_txg;
+
+       /* for objset_open() */
+       kmutex_t ds_opening_lock;
+
+       uint64_t ds_reserved;   /* cached refreservation */
+       uint64_t ds_quota;      /* cached refquota */
+
+       /* Protected by ds_lock; keep at end of struct for better locality */
+       char ds_snapname[MAXNAMELEN];
+} dsl_dataset_t;
+
+struct dsl_ds_destroyarg {
+       dsl_dataset_t *ds;              /* ds to destroy */
+       dsl_dataset_t *rm_origin;       /* also remove our origin? */
+       boolean_t is_origin_rm;         /* set if removing origin snap */
+       boolean_t defer;                /* destroy -d requested? */
+       boolean_t releasing;            /* destroying due to release? */
+       boolean_t need_prep;            /* do we need to retry due to EBUSY? */
+};
+
+/*
+ * The max length of a temporary tag prefix is the number of hex digits
+ * required to express UINT64_MAX plus one for the hyphen.
+ */
+#define        MAX_TAG_PREFIX_LEN      17
+
+struct dsl_ds_holdarg {
+       dsl_sync_task_group_t *dstg;
+       char *htag;
+       char *snapname;
+       boolean_t recursive;
+       boolean_t gotone;
+       boolean_t temphold;
+       char failed[MAXPATHLEN];
+};
+
+#define        dsl_dataset_is_snapshot(ds) \
+       ((ds)->ds_phys->ds_num_children != 0)
+
+#define        DS_UNIQUE_IS_ACCURATE(ds)       \
+       (((ds)->ds_phys->ds_flags & DS_FLAG_UNIQUE_ACCURATE) != 0)
+
+int dsl_dataset_hold(const char *name, void *tag, dsl_dataset_t **dsp);
+int dsl_dataset_hold_obj(struct dsl_pool *dp, uint64_t dsobj,
+    void *tag, dsl_dataset_t **);
+int dsl_dataset_own(const char *name, boolean_t inconsistentok,
+    void *tag, dsl_dataset_t **dsp);
+int dsl_dataset_own_obj(struct dsl_pool *dp, uint64_t dsobj,
+    boolean_t inconsistentok, void *tag, dsl_dataset_t **dsp);
+void dsl_dataset_name(dsl_dataset_t *ds, char *name);
+void dsl_dataset_rele(dsl_dataset_t *ds, void *tag);
+void dsl_dataset_disown(dsl_dataset_t *ds, void *tag);
+void dsl_dataset_drop_ref(dsl_dataset_t *ds, void *tag);
+boolean_t dsl_dataset_tryown(dsl_dataset_t *ds, boolean_t inconsistentok,
+    void *tag);
+void dsl_dataset_make_exclusive(dsl_dataset_t *ds, void *tag);
+void dsl_register_onexit_hold_cleanup(dsl_dataset_t *ds, const char *htag,
+    minor_t minor);
+uint64_t dsl_dataset_create_sync(dsl_dir_t *pds, const char *lastname,
+    dsl_dataset_t *origin, uint64_t flags, cred_t *, dmu_tx_t *);
+uint64_t dsl_dataset_create_sync_dd(dsl_dir_t *dd, dsl_dataset_t *origin,
+    uint64_t flags, dmu_tx_t *tx);
+int dsl_dataset_destroy(dsl_dataset_t *ds, void *tag, boolean_t defer);
+int dsl_snapshots_destroy(char *fsname, char *snapname, boolean_t defer);
+dsl_checkfunc_t dsl_dataset_destroy_check;
+dsl_syncfunc_t dsl_dataset_destroy_sync;
+dsl_checkfunc_t dsl_dataset_snapshot_check;
+dsl_syncfunc_t dsl_dataset_snapshot_sync;
+dsl_syncfunc_t dsl_dataset_user_hold_sync;
+int dsl_dataset_rename(char *name, const char *newname, boolean_t recursive);
+int dsl_dataset_promote(const char *name, char *conflsnap);
+int dsl_dataset_clone_swap(dsl_dataset_t *clone, dsl_dataset_t *origin_head,
+    boolean_t force);
+int dsl_dataset_user_hold(char *dsname, char *snapname, char *htag,
+    boolean_t recursive, boolean_t temphold, int cleanup_fd);
+int dsl_dataset_user_hold_for_send(dsl_dataset_t *ds, char *htag,
+    boolean_t temphold);
+int dsl_dataset_user_release(char *dsname, char *snapname, char *htag,
+    boolean_t recursive);
+int dsl_dataset_user_release_tmp(struct dsl_pool *dp, uint64_t dsobj,
+    char *htag, boolean_t retry);
+int dsl_dataset_get_holds(const char *dsname, nvlist_t **nvp);
+
+blkptr_t *dsl_dataset_get_blkptr(dsl_dataset_t *ds);
+void dsl_dataset_set_blkptr(dsl_dataset_t *ds, blkptr_t *bp, dmu_tx_t *tx);
+
+spa_t *dsl_dataset_get_spa(dsl_dataset_t *ds);
+
+boolean_t dsl_dataset_modified_since_lastsnap(dsl_dataset_t *ds);
+
+void dsl_dataset_sync(dsl_dataset_t *os, zio_t *zio, dmu_tx_t *tx);
+
+void dsl_dataset_block_born(dsl_dataset_t *ds, const blkptr_t *bp,
+    dmu_tx_t *tx);
+int dsl_dataset_block_kill(dsl_dataset_t *ds, const blkptr_t *bp,
+    dmu_tx_t *tx, boolean_t async);
+boolean_t dsl_dataset_block_freeable(dsl_dataset_t *ds, const blkptr_t *bp,
+    uint64_t blk_birth);
+uint64_t dsl_dataset_prev_snap_txg(dsl_dataset_t *ds);
+
+void dsl_dataset_dirty(dsl_dataset_t *ds, dmu_tx_t *tx);
+void dsl_dataset_stats(dsl_dataset_t *os, nvlist_t *nv);
+void dsl_dataset_fast_stat(dsl_dataset_t *ds, dmu_objset_stats_t *stat);
+void dsl_dataset_space(dsl_dataset_t *ds,
+    uint64_t *refdbytesp, uint64_t *availbytesp,
+    uint64_t *usedobjsp, uint64_t *availobjsp);
+uint64_t dsl_dataset_fsid_guid(dsl_dataset_t *ds);
+
+int dsl_dsobj_to_dsname(char *pname, uint64_t obj, char *buf);
+
+int dsl_dataset_check_quota(dsl_dataset_t *ds, boolean_t check_quota,
+    uint64_t asize, uint64_t inflight, uint64_t *used,
+    uint64_t *ref_rsrv);
+int dsl_dataset_set_quota(const char *dsname, zprop_source_t source,
+    uint64_t quota);
+dsl_syncfunc_t dsl_dataset_set_quota_sync;
+int dsl_dataset_set_reservation(const char *dsname, zprop_source_t source,
+    uint64_t reservation);
+
+int dsl_destroy_inconsistent(const char *dsname, void *arg);
+
+#ifdef ZFS_DEBUG
+#define        dprintf_ds(ds, fmt, ...) do { \
+       if (zfs_flags & ZFS_DEBUG_DPRINTF) { \
+       char *__ds_name = kmem_alloc(MAXNAMELEN, KM_SLEEP); \
+       dsl_dataset_name(ds, __ds_name); \
+       dprintf("ds=%s " fmt, __ds_name, __VA_ARGS__); \
+       kmem_free(__ds_name, MAXNAMELEN); \
+       } \
+_NOTE(CONSTCOND) } while (0)
+#else
+#define        dprintf_ds(dd, fmt, ...)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DSL_DATASET_H */
diff --git a/include/sys/dsl_deadlist.h b/include/sys/dsl_deadlist.h
new file mode 100644 (file)
index 0000000..d2c16d7
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DSL_DEADLIST_H
+#define        _SYS_DSL_DEADLIST_H
+
+#include <sys/bpobj.h>
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct dmu_buf;
+struct dsl_dataset;
+
+typedef struct dsl_deadlist_phys {
+       uint64_t dl_used;
+       uint64_t dl_comp;
+       uint64_t dl_uncomp;
+       uint64_t dl_pad[37]; /* pad out to 320b for future expansion */
+} dsl_deadlist_phys_t;
+
+typedef struct dsl_deadlist {
+       objset_t *dl_os;
+       uint64_t dl_object;
+       avl_tree_t dl_tree;
+       boolean_t dl_havetree;
+       struct dmu_buf *dl_dbuf;
+       dsl_deadlist_phys_t *dl_phys;
+       kmutex_t dl_lock;
+
+       /* if it's the old on-disk format: */
+       bpobj_t dl_bpobj;
+       boolean_t dl_oldfmt;
+} dsl_deadlist_t;
+
+typedef struct dsl_deadlist_entry {
+       avl_node_t dle_node;
+       uint64_t dle_mintxg;
+       bpobj_t dle_bpobj;
+} dsl_deadlist_entry_t;
+
+void dsl_deadlist_open(dsl_deadlist_t *dl, objset_t *os, uint64_t object);
+void dsl_deadlist_close(dsl_deadlist_t *dl);
+uint64_t dsl_deadlist_alloc(objset_t *os, dmu_tx_t *tx);
+void dsl_deadlist_free(objset_t *os, uint64_t dlobj, dmu_tx_t *tx);
+void dsl_deadlist_insert(dsl_deadlist_t *dl, const blkptr_t *bp, dmu_tx_t *tx);
+void dsl_deadlist_add_key(dsl_deadlist_t *dl, uint64_t mintxg, dmu_tx_t *tx);
+void dsl_deadlist_remove_key(dsl_deadlist_t *dl, uint64_t mintxg, dmu_tx_t *tx);
+uint64_t dsl_deadlist_clone(dsl_deadlist_t *dl, uint64_t maxtxg,
+    uint64_t mrs_obj, dmu_tx_t *tx);
+void dsl_deadlist_space(dsl_deadlist_t *dl,
+    uint64_t *usedp, uint64_t *compp, uint64_t *uncompp);
+void dsl_deadlist_space_range(dsl_deadlist_t *dl,
+    uint64_t mintxg, uint64_t maxtxg,
+    uint64_t *usedp, uint64_t *compp, uint64_t *uncompp);
+void dsl_deadlist_merge(dsl_deadlist_t *dl, uint64_t obj, dmu_tx_t *tx);
+void dsl_deadlist_move_bpobj(dsl_deadlist_t *dl, bpobj_t *bpo, uint64_t mintxg,
+    dmu_tx_t *tx);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DSL_DEADLIST_H */
diff --git a/include/sys/dsl_deleg.h b/include/sys/dsl_deleg.h
new file mode 100644 (file)
index 0000000..73c43bd
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DSL_DELEG_H
+#define        _SYS_DSL_DELEG_H
+
+#include <sys/dmu.h>
+#include <sys/dsl_pool.h>
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define        ZFS_DELEG_PERM_NONE             ""
+#define        ZFS_DELEG_PERM_CREATE           "create"
+#define        ZFS_DELEG_PERM_DESTROY          "destroy"
+#define        ZFS_DELEG_PERM_SNAPSHOT         "snapshot"
+#define        ZFS_DELEG_PERM_ROLLBACK         "rollback"
+#define        ZFS_DELEG_PERM_CLONE            "clone"
+#define        ZFS_DELEG_PERM_PROMOTE          "promote"
+#define        ZFS_DELEG_PERM_RENAME           "rename"
+#define        ZFS_DELEG_PERM_MOUNT            "mount"
+#define        ZFS_DELEG_PERM_SHARE            "share"
+#define        ZFS_DELEG_PERM_SEND             "send"
+#define        ZFS_DELEG_PERM_RECEIVE          "receive"
+#define        ZFS_DELEG_PERM_ALLOW            "allow"
+#define        ZFS_DELEG_PERM_USERPROP         "userprop"
+#define        ZFS_DELEG_PERM_VSCAN            "vscan"
+#define        ZFS_DELEG_PERM_USERQUOTA        "userquota"
+#define        ZFS_DELEG_PERM_GROUPQUOTA       "groupquota"
+#define        ZFS_DELEG_PERM_USERUSED         "userused"
+#define        ZFS_DELEG_PERM_GROUPUSED        "groupused"
+#define        ZFS_DELEG_PERM_HOLD             "hold"
+#define        ZFS_DELEG_PERM_RELEASE          "release"
+#define        ZFS_DELEG_PERM_DIFF             "diff"
+
+/*
+ * Note: the names of properties that are marked delegatable are also
+ * valid delegated permissions
+ */
+
+int dsl_deleg_get(const char *ddname, nvlist_t **nvp);
+int dsl_deleg_set(const char *ddname, nvlist_t *nvp, boolean_t unset);
+int dsl_deleg_access(const char *ddname, const char *perm, cred_t *cr);
+int dsl_deleg_access_impl(struct dsl_dataset *ds, const char *perm, cred_t *cr);
+void dsl_deleg_set_create_perms(dsl_dir_t *dd, dmu_tx_t *tx, cred_t *cr);
+int dsl_deleg_can_allow(char *ddname, nvlist_t *nvp, cred_t *cr);
+int dsl_deleg_can_unallow(char *ddname, nvlist_t *nvp, cred_t *cr);
+int dsl_deleg_destroy(objset_t *os, uint64_t zapobj, dmu_tx_t *tx);
+boolean_t dsl_delegation_on(objset_t *os);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DSL_DELEG_H */
diff --git a/include/sys/dsl_dir.h b/include/sys/dsl_dir.h
new file mode 100644 (file)
index 0000000..2191635
--- /dev/null
@@ -0,0 +1,167 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DSL_DIR_H
+#define        _SYS_DSL_DIR_H
+
+#include <sys/dmu.h>
+#include <sys/dsl_pool.h>
+#include <sys/dsl_synctask.h>
+#include <sys/refcount.h>
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct dsl_dataset;
+
+typedef enum dd_used {
+       DD_USED_HEAD,
+       DD_USED_SNAP,
+       DD_USED_CHILD,
+       DD_USED_CHILD_RSRV,
+       DD_USED_REFRSRV,
+       DD_USED_NUM
+} dd_used_t;
+
+#define        DD_FLAG_USED_BREAKDOWN (1<<0)
+
+typedef struct dsl_dir_phys {
+       uint64_t dd_creation_time; /* not actually used */
+       uint64_t dd_head_dataset_obj;
+       uint64_t dd_parent_obj;
+       uint64_t dd_origin_obj;
+       uint64_t dd_child_dir_zapobj;
+       /*
+        * how much space our children are accounting for; for leaf
+        * datasets, == physical space used by fs + snaps
+        */
+       uint64_t dd_used_bytes;
+       uint64_t dd_compressed_bytes;
+       uint64_t dd_uncompressed_bytes;
+       /* Administrative quota setting */
+       uint64_t dd_quota;
+       /* Administrative reservation setting */
+       uint64_t dd_reserved;
+       uint64_t dd_props_zapobj;
+       uint64_t dd_deleg_zapobj; /* dataset delegation permissions */
+       uint64_t dd_flags;
+       uint64_t dd_used_breakdown[DD_USED_NUM];
+       uint64_t dd_clones; /* dsl_dir objects */
+       uint64_t dd_pad[13]; /* pad out to 256 bytes for good measure */
+} dsl_dir_phys_t;
+
+struct dsl_dir {
+       /* These are immutable; no lock needed: */
+       uint64_t dd_object;
+       dsl_dir_phys_t *dd_phys;
+       dmu_buf_t *dd_dbuf;
+       dsl_pool_t *dd_pool;
+
+       /* protected by lock on pool's dp_dirty_dirs list */
+       txg_node_t dd_dirty_link;
+
+       /* protected by dp_config_rwlock */
+       dsl_dir_t *dd_parent;
+
+       /* Protected by dd_lock */
+       kmutex_t dd_lock;
+       list_t dd_prop_cbs; /* list of dsl_prop_cb_record_t's */
+       timestruc_t dd_snap_cmtime; /* last time snapshot namespace changed */
+       uint64_t dd_origin_txg;
+
+       /* gross estimate of space used by in-flight tx's */
+       uint64_t dd_tempreserved[TXG_SIZE];
+       /* amount of space we expect to write; == amount of dirty data */
+       int64_t dd_space_towrite[TXG_SIZE];
+
+       /* protected by dd_lock; keep at end of struct for better locality */
+       char dd_myname[MAXNAMELEN];
+};
+
+void dsl_dir_close(dsl_dir_t *dd, void *tag);
+int dsl_dir_open(const char *name, void *tag, dsl_dir_t **, const char **tail);
+int dsl_dir_open_spa(spa_t *spa, const char *name, void *tag, dsl_dir_t **,
+    const char **tailp);
+int dsl_dir_open_obj(dsl_pool_t *dp, uint64_t ddobj,
+    const char *tail, void *tag, dsl_dir_t **);
+void dsl_dir_name(dsl_dir_t *dd, char *buf);
+int dsl_dir_namelen(dsl_dir_t *dd);
+uint64_t dsl_dir_create_sync(dsl_pool_t *dp, dsl_dir_t *pds,
+    const char *name, dmu_tx_t *tx);
+dsl_checkfunc_t dsl_dir_destroy_check;
+dsl_syncfunc_t dsl_dir_destroy_sync;
+void dsl_dir_stats(dsl_dir_t *dd, nvlist_t *nv);
+uint64_t dsl_dir_space_available(dsl_dir_t *dd,
+    dsl_dir_t *ancestor, int64_t delta, int ondiskonly);
+void dsl_dir_dirty(dsl_dir_t *dd, dmu_tx_t *tx);
+void dsl_dir_sync(dsl_dir_t *dd, dmu_tx_t *tx);
+int dsl_dir_tempreserve_space(dsl_dir_t *dd, uint64_t mem,
+    uint64_t asize, uint64_t fsize, uint64_t usize, void **tr_cookiep,
+    dmu_tx_t *tx);
+void dsl_dir_tempreserve_clear(void *tr_cookie, dmu_tx_t *tx);
+void dsl_dir_willuse_space(dsl_dir_t *dd, int64_t space, dmu_tx_t *tx);
+void dsl_dir_diduse_space(dsl_dir_t *dd, dd_used_t type,
+    int64_t used, int64_t compressed, int64_t uncompressed, dmu_tx_t *tx);
+void dsl_dir_transfer_space(dsl_dir_t *dd, int64_t delta,
+    dd_used_t oldtype, dd_used_t newtype, dmu_tx_t *tx);
+int dsl_dir_set_quota(const char *ddname, zprop_source_t source,
+    uint64_t quota);
+int dsl_dir_set_reservation(const char *ddname, zprop_source_t source,
+    uint64_t reservation);
+int dsl_dir_rename(dsl_dir_t *dd, const char *newname);
+int dsl_dir_transfer_possible(dsl_dir_t *sdd, dsl_dir_t *tdd, uint64_t space);
+int dsl_dir_set_reservation_check(void *arg1, void *arg2, dmu_tx_t *tx);
+boolean_t dsl_dir_is_clone(dsl_dir_t *dd);
+void dsl_dir_new_refreservation(dsl_dir_t *dd, struct dsl_dataset *ds,
+    uint64_t reservation, cred_t *cr, dmu_tx_t *tx);
+void dsl_dir_snap_cmtime_update(dsl_dir_t *dd);
+timestruc_t dsl_dir_snap_cmtime(dsl_dir_t *dd);
+
+/* internal reserved dir name */
+#define        MOS_DIR_NAME "$MOS"
+#define        ORIGIN_DIR_NAME "$ORIGIN"
+#define        XLATION_DIR_NAME "$XLATION"
+#define        FREE_DIR_NAME "$FREE"
+
+#ifdef ZFS_DEBUG
+#define        dprintf_dd(dd, fmt, ...) do { \
+       if (zfs_flags & ZFS_DEBUG_DPRINTF) { \
+       char *__ds_name = kmem_alloc(MAXNAMELEN + strlen(MOS_DIR_NAME) + 1, \
+           KM_SLEEP); \
+       dsl_dir_name(dd, __ds_name); \
+       dprintf("dd=%s " fmt, __ds_name, __VA_ARGS__); \
+       kmem_free(__ds_name, MAXNAMELEN + strlen(MOS_DIR_NAME) + 1); \
+       } \
+_NOTE(CONSTCOND) } while (0)
+#else
+#define        dprintf_dd(dd, fmt, ...)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DSL_DIR_H */
diff --git a/include/sys/dsl_pool.h b/include/sys/dsl_pool.h
new file mode 100644 (file)
index 0000000..7d25bd7
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DSL_POOL_H
+#define        _SYS_DSL_POOL_H
+
+#include <sys/spa.h>
+#include <sys/txg.h>
+#include <sys/txg_impl.h>
+#include <sys/zfs_context.h>
+#include <sys/zio.h>
+#include <sys/dnode.h>
+#include <sys/ddt.h>
+#include <sys/arc.h>
+#include <sys/bpobj.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct objset;
+struct dsl_dir;
+struct dsl_dataset;
+struct dsl_pool;
+struct dmu_tx;
+struct dsl_scan;
+
+/* These macros are for indexing into the zfs_all_blkstats_t. */
+#define        DMU_OT_DEFERRED DMU_OT_NONE
+#define        DMU_OT_TOTAL    DMU_OT_NUMTYPES
+
+typedef struct zfs_blkstat {
+       uint64_t        zb_count;
+       uint64_t        zb_asize;
+       uint64_t        zb_lsize;
+       uint64_t        zb_psize;
+       uint64_t        zb_gangs;
+       uint64_t        zb_ditto_2_of_2_samevdev;
+       uint64_t        zb_ditto_2_of_3_samevdev;
+       uint64_t        zb_ditto_3_of_3_samevdev;
+} zfs_blkstat_t;
+
+typedef struct zfs_all_blkstats {
+       zfs_blkstat_t   zab_type[DN_MAX_LEVELS + 1][DMU_OT_TOTAL + 1];
+} zfs_all_blkstats_t;
+
+
+typedef struct dsl_pool {
+       /* Immutable */
+       spa_t *dp_spa;
+       struct objset *dp_meta_objset;
+       struct dsl_dir *dp_root_dir;
+       struct dsl_dir *dp_mos_dir;
+       struct dsl_dir *dp_free_dir;
+       struct dsl_dataset *dp_origin_snap;
+       uint64_t dp_root_dir_obj;
+       struct taskq *dp_vnrele_taskq;
+
+       /* No lock needed - sync context only */
+       blkptr_t dp_meta_rootbp;
+       list_t dp_synced_datasets;
+       hrtime_t dp_read_overhead;
+       uint64_t dp_throughput; /* bytes per millisec */
+       uint64_t dp_write_limit;
+       uint64_t dp_tmp_userrefs_obj;
+       bpobj_t dp_free_bpobj;
+
+       struct dsl_scan *dp_scan;
+
+       /* Uses dp_lock */
+       kmutex_t dp_lock;
+       uint64_t dp_space_towrite[TXG_SIZE];
+       uint64_t dp_tempreserved[TXG_SIZE];
+
+       /* Has its own locking */
+       tx_state_t dp_tx;
+       txg_list_t dp_dirty_datasets;
+       txg_list_t dp_dirty_dirs;
+       txg_list_t dp_sync_tasks;
+
+       /*
+        * Protects administrative changes (properties, namespace)
+        * It is only held for write in syncing context.  Therefore
+        * syncing context does not need to ever have it for read, since
+        * nobody else could possibly have it for write.
+        */
+       krwlock_t dp_config_rwlock;
+
+       zfs_all_blkstats_t *dp_blkstats;
+} dsl_pool_t;
+
+int dsl_pool_open(spa_t *spa, uint64_t txg, dsl_pool_t **dpp);
+void dsl_pool_close(dsl_pool_t *dp);
+dsl_pool_t *dsl_pool_create(spa_t *spa, nvlist_t *zplprops, uint64_t txg);
+void dsl_pool_sync(dsl_pool_t *dp, uint64_t txg);
+void dsl_pool_sync_done(dsl_pool_t *dp, uint64_t txg);
+int dsl_pool_sync_context(dsl_pool_t *dp);
+uint64_t dsl_pool_adjustedsize(dsl_pool_t *dp, boolean_t netfree);
+uint64_t dsl_pool_adjustedfree(dsl_pool_t *dp, boolean_t netfree);
+int dsl_pool_tempreserve_space(dsl_pool_t *dp, uint64_t space, dmu_tx_t *tx);
+void dsl_pool_tempreserve_clear(dsl_pool_t *dp, int64_t space, dmu_tx_t *tx);
+void dsl_pool_memory_pressure(dsl_pool_t *dp);
+void dsl_pool_willuse_space(dsl_pool_t *dp, int64_t space, dmu_tx_t *tx);
+void dsl_free(dsl_pool_t *dp, uint64_t txg, const blkptr_t *bpp);
+void dsl_free_sync(zio_t *pio, dsl_pool_t *dp, uint64_t txg,
+    const blkptr_t *bpp);
+int dsl_read(zio_t *pio, spa_t *spa, const blkptr_t *bpp, arc_buf_t *pbuf,
+    arc_done_func_t *done, void *private, int priority, int zio_flags,
+    uint32_t *arc_flags, const zbookmark_t *zb);
+int dsl_read_nolock(zio_t *pio, spa_t *spa, const blkptr_t *bpp,
+    arc_done_func_t *done, void *private, int priority, int zio_flags,
+    uint32_t *arc_flags, const zbookmark_t *zb);
+void dsl_pool_create_origin(dsl_pool_t *dp, dmu_tx_t *tx);
+void dsl_pool_upgrade_clones(dsl_pool_t *dp, dmu_tx_t *tx);
+void dsl_pool_upgrade_dir_clones(dsl_pool_t *dp, dmu_tx_t *tx);
+
+taskq_t *dsl_pool_vnrele_taskq(dsl_pool_t *dp);
+
+extern int dsl_pool_user_hold(dsl_pool_t *dp, uint64_t dsobj,
+    const char *tag, uint64_t *now, dmu_tx_t *tx);
+extern int dsl_pool_user_release(dsl_pool_t *dp, uint64_t dsobj,
+    const char *tag, dmu_tx_t *tx);
+extern void dsl_pool_clean_tmp_userrefs(dsl_pool_t *dp);
+int dsl_pool_open_special_dir(dsl_pool_t *dp, const char *name, dsl_dir_t **);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DSL_POOL_H */
diff --git a/include/sys/dsl_prop.h b/include/sys/dsl_prop.h
new file mode 100644 (file)
index 0000000..a636ad3
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DSL_PROP_H
+#define        _SYS_DSL_PROP_H
+
+#include <sys/dmu.h>
+#include <sys/dsl_pool.h>
+#include <sys/zfs_context.h>
+#include <sys/dsl_synctask.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct dsl_dataset;
+struct dsl_dir;
+
+/* The callback func may not call into the DMU or DSL! */
+typedef void (dsl_prop_changed_cb_t)(void *arg, uint64_t newval);
+
+typedef struct dsl_prop_cb_record {
+       list_node_t cbr_node; /* link on dd_prop_cbs */
+       struct dsl_dataset *cbr_ds;
+       const char *cbr_propname;
+       dsl_prop_changed_cb_t *cbr_func;
+       void *cbr_arg;
+} dsl_prop_cb_record_t;
+
+typedef struct dsl_props_arg {
+       nvlist_t *pa_props;
+       zprop_source_t pa_source;
+} dsl_props_arg_t;
+
+typedef struct dsl_prop_set_arg {
+       const char *psa_name;
+       zprop_source_t psa_source;
+       int psa_intsz;
+       int psa_numints;
+       const void *psa_value;
+
+       /*
+        * Used to handle the special requirements of the quota and reservation
+        * properties.
+        */
+       uint64_t psa_effective_value;
+} dsl_prop_setarg_t;
+
+int dsl_prop_register(struct dsl_dataset *ds, const char *propname,
+    dsl_prop_changed_cb_t *callback, void *cbarg);
+int dsl_prop_unregister(struct dsl_dataset *ds, const char *propname,
+    dsl_prop_changed_cb_t *callback, void *cbarg);
+int dsl_prop_numcb(struct dsl_dataset *ds);
+
+int dsl_prop_get(const char *ddname, const char *propname,
+    int intsz, int numints, void *buf, char *setpoint);
+int dsl_prop_get_integer(const char *ddname, const char *propname,
+    uint64_t *valuep, char *setpoint);
+int dsl_prop_get_all(objset_t *os, nvlist_t **nvp);
+int dsl_prop_get_received(objset_t *os, nvlist_t **nvp);
+int dsl_prop_get_ds(struct dsl_dataset *ds, const char *propname,
+    int intsz, int numints, void *buf, char *setpoint);
+int dsl_prop_get_dd(struct dsl_dir *dd, const char *propname,
+    int intsz, int numints, void *buf, char *setpoint,
+    boolean_t snapshot);
+
+dsl_syncfunc_t dsl_props_set_sync;
+int dsl_prop_set(const char *ddname, const char *propname,
+    zprop_source_t source, int intsz, int numints, const void *buf);
+int dsl_props_set(const char *dsname, zprop_source_t source, nvlist_t *nvl);
+void dsl_dir_prop_set_uint64_sync(dsl_dir_t *dd, const char *name, uint64_t val,
+    dmu_tx_t *tx);
+
+void dsl_prop_setarg_init_uint64(dsl_prop_setarg_t *psa, const char *propname,
+    zprop_source_t source, uint64_t *value);
+int dsl_prop_predict_sync(dsl_dir_t *dd, dsl_prop_setarg_t *psa);
+#ifdef ZFS_DEBUG
+void dsl_prop_check_prediction(dsl_dir_t *dd, dsl_prop_setarg_t *psa);
+#define        DSL_PROP_CHECK_PREDICTION(dd, psa)      \
+       dsl_prop_check_prediction((dd), (psa))
+#else
+#define        DSL_PROP_CHECK_PREDICTION(dd, psa)      /* nothing */
+#endif
+
+/* flag first receive on or after SPA_VERSION_RECVD_PROPS */
+boolean_t dsl_prop_get_hasrecvd(objset_t *os);
+void dsl_prop_set_hasrecvd(objset_t *os);
+void dsl_prop_unset_hasrecvd(objset_t *os);
+
+void dsl_prop_nvlist_add_uint64(nvlist_t *nv, zfs_prop_t prop, uint64_t value);
+void dsl_prop_nvlist_add_string(nvlist_t *nv,
+    zfs_prop_t prop, const char *value);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DSL_PROP_H */
diff --git a/include/sys/dsl_scan.h b/include/sys/dsl_scan.h
new file mode 100644 (file)
index 0000000..c79666e
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DSL_SCAN_H
+#define        _SYS_DSL_SCAN_H
+
+#include <sys/zfs_context.h>
+#include <sys/zio.h>
+#include <sys/ddt.h>
+#include <sys/bplist.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct objset;
+struct dsl_dir;
+struct dsl_dataset;
+struct dsl_pool;
+struct dmu_tx;
+
+/*
+ * All members of this structure must be uint64_t, for byteswap
+ * purposes.
+ */
+typedef struct dsl_scan_phys {
+       uint64_t scn_func; /* pool_scan_func_t */
+       uint64_t scn_state; /* dsl_scan_state_t */
+       uint64_t scn_queue_obj;
+       uint64_t scn_min_txg;
+       uint64_t scn_max_txg;
+       uint64_t scn_cur_min_txg;
+       uint64_t scn_cur_max_txg;
+       uint64_t scn_start_time;
+       uint64_t scn_end_time;
+       uint64_t scn_to_examine; /* total bytes to be scanned */
+       uint64_t scn_examined; /* bytes scanned so far */
+       uint64_t scn_to_process;
+       uint64_t scn_processed;
+       uint64_t scn_errors;    /* scan I/O error count */
+       uint64_t scn_ddt_class_max;
+       ddt_bookmark_t scn_ddt_bookmark;
+       zbookmark_t scn_bookmark;
+       uint64_t scn_flags; /* dsl_scan_flags_t */
+} dsl_scan_phys_t;
+
+#define        SCAN_PHYS_NUMINTS (sizeof (dsl_scan_phys_t) / sizeof (uint64_t))
+
+typedef enum dsl_scan_flags {
+       DSF_VISIT_DS_AGAIN = 1<<0,
+} dsl_scan_flags_t;
+
+typedef struct dsl_scan {
+       struct dsl_pool *scn_dp;
+
+       boolean_t scn_pausing;
+       uint64_t scn_restart_txg;
+       uint64_t scn_sync_start_time;
+       zio_t *scn_zio_root;
+
+       /* for debugging / information */
+       uint64_t scn_visited_this_txg;
+
+       dsl_scan_phys_t scn_phys;
+} dsl_scan_t;
+
+int dsl_scan_init(struct dsl_pool *dp, uint64_t txg);
+void dsl_scan_fini(struct dsl_pool *dp);
+void dsl_scan_sync(struct dsl_pool *, dmu_tx_t *);
+int dsl_scan_cancel(struct dsl_pool *);
+int dsl_scan(struct dsl_pool *, pool_scan_func_t);
+void dsl_resilver_restart(struct dsl_pool *, uint64_t txg);
+boolean_t dsl_scan_resilvering(struct dsl_pool *dp);
+boolean_t dsl_dataset_unstable(struct dsl_dataset *ds);
+void dsl_scan_ddt_entry(dsl_scan_t *scn, enum zio_checksum checksum,
+    ddt_entry_t *dde, dmu_tx_t *tx);
+void dsl_scan_ds_destroyed(struct dsl_dataset *ds, struct dmu_tx *tx);
+void dsl_scan_ds_snapshotted(struct dsl_dataset *ds, struct dmu_tx *tx);
+void dsl_scan_ds_clone_swapped(struct dsl_dataset *ds1, struct dsl_dataset *ds2,
+    struct dmu_tx *tx);
+boolean_t dsl_scan_active(dsl_scan_t *scn);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DSL_SCAN_H */
diff --git a/include/sys/dsl_synctask.h b/include/sys/dsl_synctask.h
new file mode 100644 (file)
index 0000000..9126290
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_DSL_SYNCTASK_H
+#define        _SYS_DSL_SYNCTASK_H
+
+#include <sys/txg.h>
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct dsl_pool;
+
+typedef int (dsl_checkfunc_t)(void *, void *, dmu_tx_t *);
+typedef void (dsl_syncfunc_t)(void *, void *, dmu_tx_t *);
+
+typedef struct dsl_sync_task {
+       list_node_t dst_node;
+       dsl_checkfunc_t *dst_checkfunc;
+       dsl_syncfunc_t *dst_syncfunc;
+       void *dst_arg1;
+       void *dst_arg2;
+       int dst_err;
+} dsl_sync_task_t;
+
+typedef struct dsl_sync_task_group {
+       txg_node_t dstg_node;
+       list_t dstg_tasks;
+       struct dsl_pool *dstg_pool;
+       uint64_t dstg_txg;
+       int dstg_err;
+       int dstg_space;
+       boolean_t dstg_nowaiter;
+} dsl_sync_task_group_t;
+
+dsl_sync_task_group_t *dsl_sync_task_group_create(struct dsl_pool *dp);
+void dsl_sync_task_create(dsl_sync_task_group_t *dstg,
+    dsl_checkfunc_t *, dsl_syncfunc_t *,
+    void *arg1, void *arg2, int blocks_modified);
+int dsl_sync_task_group_wait(dsl_sync_task_group_t *dstg);
+void dsl_sync_task_group_nowait(dsl_sync_task_group_t *dstg, dmu_tx_t *tx);
+void dsl_sync_task_group_destroy(dsl_sync_task_group_t *dstg);
+void dsl_sync_task_group_sync(dsl_sync_task_group_t *dstg, dmu_tx_t *tx);
+
+int dsl_sync_task_do(struct dsl_pool *dp,
+    dsl_checkfunc_t *checkfunc, dsl_syncfunc_t *syncfunc,
+    void *arg1, void *arg2, int blocks_modified);
+void dsl_sync_task_do_nowait(struct dsl_pool *dp,
+    dsl_checkfunc_t *checkfunc, dsl_syncfunc_t *syncfunc,
+    void *arg1, void *arg2, int blocks_modified, dmu_tx_t *tx);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_DSL_SYNCTASK_H */
diff --git a/include/sys/efi_partition.h b/include/sys/efi_partition.h
new file mode 100644 (file)
index 0000000..ff38df5
--- /dev/null
@@ -0,0 +1,242 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_EFI_PARTITION_H
+#define        _SYS_EFI_PARTITION_H
+
+#include <sys/uuid.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * GUID Partition Table Header
+ */
+
+#define        EFI_LABEL_SIZE  512
+#define        LEN_EFI_PAD     (EFI_LABEL_SIZE - \
+                           ((5 * sizeof (diskaddr_t)) + \
+                           (7 * sizeof (uint_t)) + \
+                           (8 * sizeof (char)) + \
+                           (1 * (sizeof (struct uuid)))))
+
+#define        EFI_SIGNATURE   0x5452415020494645ULL
+
+/* EFI Guid Partition Table Header -- little endian on-disk format */
+typedef struct efi_gpt {
+       uint64_t        efi_gpt_Signature;
+       uint_t          efi_gpt_Revision;
+       uint_t          efi_gpt_HeaderSize;
+       uint_t          efi_gpt_HeaderCRC32;
+       uint_t          efi_gpt_Reserved1;
+       diskaddr_t      efi_gpt_MyLBA;
+       diskaddr_t      efi_gpt_AlternateLBA;
+       diskaddr_t      efi_gpt_FirstUsableLBA;
+       diskaddr_t      efi_gpt_LastUsableLBA;
+       struct uuid     efi_gpt_DiskGUID;
+       diskaddr_t      efi_gpt_PartitionEntryLBA;
+       uint_t          efi_gpt_NumberOfPartitionEntries;
+       uint_t          efi_gpt_SizeOfPartitionEntry;
+       uint_t          efi_gpt_PartitionEntryArrayCRC32;
+       char            efi_gpt_Reserved2[LEN_EFI_PAD];
+} efi_gpt_t;
+
+/* EFI Guid Partition Entry Attributes -- little endian format */
+typedef struct efi_gpe_Attrs {
+       uint32_t        PartitionAttrs          :16,
+                       Reserved2               :16;
+       uint32_t        Reserved1               :31,
+                       RequiredPartition       :1;
+} efi_gpe_Attrs_t;
+
+/*
+ * 6a96237f-1dd2-11b2-99a6-080020736631        V_UNASSIGNED (not used as such)
+ * 6a82cb45-1dd2-11b2-99a6-080020736631        V_BOOT
+ * 6a85cf4d-1dd2-11b2-99a6-080020736631        V_ROOT
+ * 6a87c46f-1dd2-11b2-99a6-080020736631        V_SWAP
+ * 6a898cc3-1dd2-11b2-99a6-080020736631        V_USR
+ * 6a8b642b-1dd2-11b2-99a6-080020736631        V_BACKUP
+ * 6a8d2ac7-1dd2-11b2-99a6-080020736631        V_STAND (not used)
+ * 6a8ef2e9-1dd2-11b2-99a6-080020736631        V_VAR
+ * 6a90ba39-1dd2-11b2-99a6-080020736631        V_HOME
+ * 6a9283a5-1dd2-11b2-99a6-080020736631        V_ALTSCTR
+ * 6a945a3b-1dd2-11b2-99a6-080020736631        V_CACHE
+ */
+
+#define        EFI_UNUSED      { 0x00000000, 0x0000, 0x0000, 0x00, 0x00, \
+                           { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }
+#define        EFI_RESV1       { 0x6a96237f, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_BOOT        { 0x6a82cb45, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_ROOT        { 0x6a85cf4d, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_SWAP        { 0x6a87c46f, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_USR         { 0x6a898cc3, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_BACKUP      { 0x6a8b642b, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_RESV2       { 0x6a8d2ac7, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_VAR         { 0x6a8ef2e9, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_HOME        { 0x6a90ba39, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_ALTSCTR     { 0x6a9283a5, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_RESERVED    { 0x6a945a3b, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_SYSTEM      { 0xC12A7328, 0xF81F, 0x11d2, 0xBA, 0x4B, \
+                           { 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B } }
+#define        EFI_LEGACY_MBR  { 0x024DEE41, 0x33E7, 0x11d3, 0x9D, 0x69, \
+                           { 0x00, 0x08, 0xC7, 0x81, 0xF3, 0x9F } }
+#define        EFI_SYMC_PUB    { 0x6a9630d1, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_SYMC_CDS    { 0x6a980767, 0x1dd2, 0x11b2, 0x99, 0xa6, \
+                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
+#define        EFI_MSFT_RESV   { 0xE3C9E316, 0x0B5C, 0x4DB8, 0x81, 0x7D, \
+                           { 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE } }
+#define        EFI_DELL_BASIC  { 0xebd0a0a2, 0xb9e5, 0x4433, 0x87, 0xc0, \
+                           { 0x68, 0xb6, 0xb7, 0x26, 0x99, 0xc7 } }
+#define        EFI_DELL_RAID   { 0xa19d880f, 0x05fc, 0x4d3b, 0xa0, 0x06, \
+                           { 0x74, 0x3f, 0x0f, 0x84, 0x91, 0x1e } }
+#define        EFI_DELL_SWAP   { 0x0657fd6d, 0xa4ab, 0x43c4, 0x84, 0xe5, \
+                           { 0x09, 0x33, 0xc8, 0x4b, 0x4f, 0x4f } }
+#define        EFI_DELL_LVM    { 0xe6d6d379, 0xf507, 0x44c2, 0xa2, 0x3c, \
+                           { 0x23, 0x8f, 0x2a, 0x3d, 0xf9, 0x28 } }
+#define        EFI_DELL_RESV   { 0x8da63339, 0x0007, 0x60c0, 0xc4, 0x36, \
+                           { 0x08, 0x3a, 0xc8, 0x23, 0x09, 0x08 } }
+#define        EFI_AAPL_HFS    { 0x48465300, 0x0000, 0x11aa, 0xaa, 0x11, \
+                           { 0x00, 0x30, 0x65, 0x43, 0xec, 0xac } }
+#define        EFI_AAPL_UFS    { 0x55465300, 0x0000, 0x11aa, 0xaa, 0x11, \
+                           { 0x00, 0x30, 0x65, 0x43, 0xec, 0xac } }
+
+/* minimum # of bytes for partition table entires, per EFI spec */
+#define        EFI_MIN_ARRAY_SIZE      (16 * 1024)
+
+#define        EFI_PART_NAME_LEN       36
+
+/* size of the "reserved" partition, in blocks */
+#define        EFI_MIN_RESV_SIZE       (16 * 1024)
+
+/* EFI Guid Partition Entry */
+typedef struct efi_gpe {
+       struct uuid     efi_gpe_PartitionTypeGUID;
+       struct uuid     efi_gpe_UniquePartitionGUID;
+       diskaddr_t      efi_gpe_StartingLBA;
+       diskaddr_t      efi_gpe_EndingLBA;
+       efi_gpe_Attrs_t efi_gpe_Attributes;
+       ushort_t        efi_gpe_PartitionName[EFI_PART_NAME_LEN];
+} efi_gpe_t;
+
+/*
+ * passed to the useful (we hope) routines (efi_alloc_and_read and
+ * efi_write) that take this VTOC-like struct.  These routines handle
+ * converting this struct into the EFI struct, generate UUIDs and
+ * checksums, and perform any necessary byte-swapping to the on-disk
+ * format.
+ */
+/* Solaris library abstraction for EFI partitons */
+typedef struct dk_part {
+       diskaddr_t      p_start;        /* starting LBA */
+       diskaddr_t      p_size;         /* size in blocks */
+       struct uuid     p_guid;         /* partion type GUID */
+       ushort_t        p_tag;          /* converted to part'n type GUID */
+       ushort_t        p_flag;         /* attributes */
+       char            p_name[EFI_PART_NAME_LEN]; /* partition name */
+       struct uuid     p_uguid;        /* unique partition GUID */
+       uint_t          p_resv[8];      /* future use - set to zero */
+} dk_part_t;
+
+/* Solaris library abstraction for an EFI GPT */
+#define        EFI_VERSION102          0x00010002
+#define        EFI_VERSION100          0x00010000
+#define        EFI_VERSION_CURRENT     EFI_VERSION100
+typedef struct dk_gpt {
+       uint_t          efi_version;    /* set to EFI_VERSION_CURRENT */
+       uint_t          efi_nparts;     /* number of partitions below */
+       uint_t          efi_part_size;  /* size of each partition entry */
+                                       /* efi_part_size is unused */
+       uint_t          efi_lbasize;    /* size of block in bytes */
+       diskaddr_t      efi_last_lba;   /* last block on the disk */
+       diskaddr_t      efi_first_u_lba; /* first block after labels */
+       diskaddr_t      efi_last_u_lba; /* last block before backup labels */
+       struct uuid     efi_disk_uguid; /* unique disk GUID */
+       uint_t          efi_flags;
+       uint_t          efi_reserved1;  /* future use - set to zero */
+       diskaddr_t      efi_altern_lba; /* lba of alternate GPT header */
+       uint_t          efi_reserved[12]; /* future use - set to zero */
+       struct dk_part  efi_parts[1];   /* array of partitions */
+} dk_gpt_t;
+
+/* possible values for "efi_flags" */
+#define        EFI_GPT_PRIMARY_CORRUPT 0x1     /* primary label corrupt */
+
+/* the private ioctl between libefi and the driver */
+typedef struct dk_efi {
+       diskaddr_t       dki_lba;       /* starting block */
+       len_t            dki_length;    /* length in bytes */
+       union {
+               efi_gpt_t       *_dki_data;
+               uint64_t        _dki_data_64;
+       } dki_un;
+#define        dki_data        dki_un._dki_data
+#define        dki_data_64     dki_un._dki_data_64
+} dk_efi_t;
+
+struct partition64 {
+       struct uuid     p_type;
+       uint_t          p_partno;
+       uint_t          p_resv1;
+       diskaddr_t      p_start;
+       diskaddr_t      p_size;
+};
+
+/*
+ * Number of EFI partitions
+ */
+#if defined(__linux__)
+#define        EFI_NUMPAR      128 /* Expected by parted-1.8.1 */
+#else
+#define        EFI_NUMPAR      9
+#endif
+
+#ifndef _KERNEL
+extern int     efi_alloc_and_init(int, uint32_t, struct dk_gpt **);
+extern int     efi_alloc_and_read(int, struct dk_gpt **);
+extern int     efi_write(int, struct dk_gpt *);
+extern void    efi_free(struct dk_gpt *);
+extern int     efi_type(int);
+extern void    efi_err_check(struct dk_gpt *);
+extern int     efi_auto_sense(int fd, struct dk_gpt **);
+extern int     efi_use_whole_disk(int fd);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_EFI_PARTITION_H */
diff --git a/include/sys/fm/Makefile.am b/include/sys/fm/Makefile.am
new file mode 100644 (file)
index 0000000..91b3d7b
--- /dev/null
@@ -0,0 +1,21 @@
+SUBDIRS = fs
+
+COMMON_H = \
+       $(top_srcdir)/include/sys/fm/protocol.h \
+       $(top_srcdir)/include/sys/fm/util.h
+
+KERNEL_H =
+
+USER_H =
+
+EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+
+if CONFIG_USER
+libzfsdir = $(includedir)/libzfs/sys/fm
+libzfs_HEADERS = $(COMMON_H) $(USER_H)
+endif
+
+if CONFIG_KERNEL
+kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION)/sys/fm
+kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+endif
diff --git a/include/sys/fm/Makefile.in b/include/sys/fm/Makefile.in
new file mode 100644 (file)
index 0000000..0cfa330
--- /dev/null
@@ -0,0 +1,724 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = include/sys/fm
+DIST_COMMON = $(am__kernel_HEADERS_DIST) $(am__libzfs_HEADERS_DIST) \
+       $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+am__kernel_HEADERS_DIST = $(top_srcdir)/include/sys/fm/protocol.h \
+       $(top_srcdir)/include/sys/fm/util.h
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(kerneldir)" "$(DESTDIR)$(libzfsdir)"
+am__libzfs_HEADERS_DIST = $(top_srcdir)/include/sys/fm/protocol.h \
+       $(top_srcdir)/include/sys/fm/util.h
+HEADERS = $(kernel_HEADERS) $(libzfs_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = fs
+COMMON_H = \
+       $(top_srcdir)/include/sys/fm/protocol.h \
+       $(top_srcdir)/include/sys/fm/util.h
+
+KERNEL_H = 
+USER_H = 
+EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+@CONFIG_USER_TRUE@libzfsdir = $(includedir)/libzfs/sys/fm
+@CONFIG_USER_TRUE@libzfs_HEADERS = $(COMMON_H) $(USER_H)
+@CONFIG_KERNEL_TRUE@kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION)/sys/fm
+@CONFIG_KERNEL_TRUE@kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/sys/fm/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu include/sys/fm/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-kernelHEADERS: $(kernel_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(kerneldir)" || $(MKDIR_P) "$(DESTDIR)$(kerneldir)"
+       @list='$(kernel_HEADERS)'; test -n "$(kerneldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(kerneldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(kerneldir)" || exit $$?; \
+       done
+
+uninstall-kernelHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(kernel_HEADERS)'; test -n "$(kerneldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(kerneldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(kerneldir)" && rm -f $$files
+install-libzfsHEADERS: $(libzfs_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libzfsdir)" || $(MKDIR_P) "$(DESTDIR)$(libzfsdir)"
+       @list='$(libzfs_HEADERS)'; test -n "$(libzfsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libzfsdir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libzfsdir)" || exit $$?; \
+       done
+
+uninstall-libzfsHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libzfs_HEADERS)'; test -n "$(libzfsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libzfsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libzfsdir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+       for dir in "$(DESTDIR)$(kerneldir)" "$(DESTDIR)$(libzfsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-kernelHEADERS install-libzfsHEADERS
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-kernelHEADERS uninstall-libzfsHEADERS
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       ctags ctags-recursive distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-kernelHEADERS install-libzfsHEADERS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+       uninstall uninstall-am uninstall-kernelHEADERS \
+       uninstall-libzfsHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/include/sys/fm/fs/Makefile.am b/include/sys/fm/fs/Makefile.am
new file mode 100644 (file)
index 0000000..a296f1d
--- /dev/null
@@ -0,0 +1,18 @@
+COMMON_H = \
+       $(top_srcdir)/include/sys/fm/fs/zfs.h
+
+KERNEL_H =
+
+USER_H =
+
+EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+
+if CONFIG_USER
+libzfsdir = $(includedir)/libzfs/sys/fm/fs
+libzfs_HEADERS = $(COMMON_H) $(USER_H)
+endif
+
+if CONFIG_KERNEL
+kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION)/sys/fm/fs
+kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+endif
diff --git a/include/sys/fm/fs/Makefile.in b/include/sys/fm/fs/Makefile.in
new file mode 100644 (file)
index 0000000..4a31d65
--- /dev/null
@@ -0,0 +1,567 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = include/sys/fm/fs
+DIST_COMMON = $(am__kernel_HEADERS_DIST) $(am__libzfs_HEADERS_DIST) \
+       $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__kernel_HEADERS_DIST = $(top_srcdir)/include/sys/fm/fs/zfs.h
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(kerneldir)" "$(DESTDIR)$(libzfsdir)"
+am__libzfs_HEADERS_DIST = $(top_srcdir)/include/sys/fm/fs/zfs.h
+HEADERS = $(kernel_HEADERS) $(libzfs_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+COMMON_H = \
+       $(top_srcdir)/include/sys/fm/fs/zfs.h
+
+KERNEL_H = 
+USER_H = 
+EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+@CONFIG_USER_TRUE@libzfsdir = $(includedir)/libzfs/sys/fm/fs
+@CONFIG_USER_TRUE@libzfs_HEADERS = $(COMMON_H) $(USER_H)
+@CONFIG_KERNEL_TRUE@kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION)/sys/fm/fs
+@CONFIG_KERNEL_TRUE@kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/sys/fm/fs/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu include/sys/fm/fs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-kernelHEADERS: $(kernel_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(kerneldir)" || $(MKDIR_P) "$(DESTDIR)$(kerneldir)"
+       @list='$(kernel_HEADERS)'; test -n "$(kerneldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(kerneldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(kerneldir)" || exit $$?; \
+       done
+
+uninstall-kernelHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(kernel_HEADERS)'; test -n "$(kerneldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(kerneldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(kerneldir)" && rm -f $$files
+install-libzfsHEADERS: $(libzfs_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libzfsdir)" || $(MKDIR_P) "$(DESTDIR)$(libzfsdir)"
+       @list='$(libzfs_HEADERS)'; test -n "$(libzfsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libzfsdir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libzfsdir)" || exit $$?; \
+       done
+
+uninstall-libzfsHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libzfs_HEADERS)'; test -n "$(libzfsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libzfsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libzfsdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(kerneldir)" "$(DESTDIR)$(libzfsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-kernelHEADERS install-libzfsHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-kernelHEADERS uninstall-libzfsHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool ctags distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-kernelHEADERS install-libzfsHEADERS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags uninstall uninstall-am uninstall-kernelHEADERS \
+       uninstall-libzfsHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/include/sys/fm/fs/zfs.h b/include/sys/fm/fs/zfs.h
new file mode 100644 (file)
index 0000000..d5c71d1
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SYS_FM_FS_ZFS_H
+#define        _SYS_FM_FS_ZFS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define        ZFS_ERROR_CLASS                         "fs.zfs"
+
+#define        FM_EREPORT_ZFS_CHECKSUM                 "checksum"
+#define        FM_EREPORT_ZFS_IO                       "io"
+#define        FM_EREPORT_ZFS_DATA                     "data"
+#define        FM_EREPORT_ZFS_CONFIG_SYNC              "config.sync"
+#define        FM_EREPORT_ZFS_POOL                     "zpool"
+#define        FM_EREPORT_ZFS_POOL_DESTROY             "zpool.destroy"
+#define        FM_EREPORT_ZFS_DEVICE_UNKNOWN           "vdev.unknown"
+#define        FM_EREPORT_ZFS_DEVICE_OPEN_FAILED       "vdev.open_failed"
+#define        FM_EREPORT_ZFS_DEVICE_CORRUPT_DATA      "vdev.corrupt_data"
+#define        FM_EREPORT_ZFS_DEVICE_NO_REPLICAS       "vdev.no_replicas"
+#define        FM_EREPORT_ZFS_DEVICE_BAD_GUID_SUM      "vdev.bad_guid_sum"
+#define        FM_EREPORT_ZFS_DEVICE_TOO_SMALL         "vdev.too_small"
+#define        FM_EREPORT_ZFS_DEVICE_BAD_LABEL         "vdev.bad_label"
+#define        FM_EREPORT_ZFS_DEVICE_REMOVE            "vdev.remove"
+#define        FM_EREPORT_ZFS_DEVICE_CLEAR             "vdev.clear"
+#define        FM_EREPORT_ZFS_DEVICE_CHECK             "vdev.check"
+#define        FM_EREPORT_ZFS_DEVICE_SPARE             "vdev.spare"
+#define        FM_EREPORT_ZFS_DEVICE_AUTOEXPAND        "vdev.autoexpand"
+#define        FM_EREPORT_ZFS_IO_FAILURE               "io_failure"
+#define        FM_EREPORT_ZFS_PROBE_FAILURE            "probe_failure"
+#define        FM_EREPORT_ZFS_LOG_REPLAY               "log_replay"
+#define        FM_EREPORT_ZFS_RESILVER_START           "resilver.start"
+#define        FM_EREPORT_ZFS_RESILVER_FINISH          "resilver.finish"
+#define        FM_EREPORT_ZFS_SCRUB_START              "scrub.start"
+#define        FM_EREPORT_ZFS_SCRUB_FINISH             "scrub.finish"
+#define        FM_EREPORT_ZFS_BOOTFS_VDEV_ATTACH       "bootfs.vdev.attach"
+
+#define        FM_EREPORT_PAYLOAD_ZFS_POOL             "pool"
+#define        FM_EREPORT_PAYLOAD_ZFS_POOL_FAILMODE    "pool_failmode"
+#define        FM_EREPORT_PAYLOAD_ZFS_POOL_GUID        "pool_guid"
+#define        FM_EREPORT_PAYLOAD_ZFS_POOL_CONTEXT     "pool_context"
+#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_GUID        "vdev_guid"
+#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_TYPE        "vdev_type"
+#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_PATH        "vdev_path"
+#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_DEVID       "vdev_devid"
+#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_FRU         "vdev_fru"
+#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_STATE       "vdev_state"
+#define        FM_EREPORT_PAYLOAD_ZFS_PARENT_GUID      "parent_guid"
+#define        FM_EREPORT_PAYLOAD_ZFS_PARENT_TYPE      "parent_type"
+#define        FM_EREPORT_PAYLOAD_ZFS_PARENT_PATH      "parent_path"
+#define        FM_EREPORT_PAYLOAD_ZFS_PARENT_DEVID     "parent_devid"
+#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_OBJSET       "zio_objset"
+#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_OBJECT       "zio_object"
+#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_LEVEL        "zio_level"
+#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_BLKID        "zio_blkid"
+#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_ERR          "zio_err"
+#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_OFFSET       "zio_offset"
+#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_SIZE         "zio_size"
+#define        FM_EREPORT_PAYLOAD_ZFS_PREV_STATE       "prev_state"
+#define        FM_EREPORT_PAYLOAD_ZFS_CKSUM_EXPECTED   "cksum_expected"
+#define        FM_EREPORT_PAYLOAD_ZFS_CKSUM_ACTUAL     "cksum_actual"
+#define        FM_EREPORT_PAYLOAD_ZFS_CKSUM_ALGO       "cksum_algorithm"
+#define        FM_EREPORT_PAYLOAD_ZFS_CKSUM_BYTESWAP   "cksum_byteswap"
+#define        FM_EREPORT_PAYLOAD_ZFS_BAD_OFFSET_RANGES "bad_ranges"
+#define        FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_MIN_GAP "bad_ranges_min_gap"
+#define        FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_SETS   "bad_range_sets"
+#define        FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_CLEARS "bad_range_clears"
+#define        FM_EREPORT_PAYLOAD_ZFS_BAD_SET_BITS     "bad_set_bits"
+#define        FM_EREPORT_PAYLOAD_ZFS_BAD_CLEARED_BITS "bad_cleared_bits"
+#define        FM_EREPORT_PAYLOAD_ZFS_BAD_SET_HISTOGRAM "bad_set_histogram"
+#define        FM_EREPORT_PAYLOAD_ZFS_BAD_CLEARED_HISTOGRAM "bad_cleared_histogram"
+
+#define        FM_EREPORT_FAILMODE_WAIT                "wait"
+#define        FM_EREPORT_FAILMODE_CONTINUE            "continue"
+#define        FM_EREPORT_FAILMODE_PANIC               "panic"
+
+#define        FM_EREPORT_RESOURCE_REMOVED             "removed"
+#define        FM_EREPORT_RESOURCE_AUTOREPLACE         "autoreplace"
+#define        FM_EREPORT_RESOURCE_STATECHANGE         "statechange"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_FM_FS_ZFS_H */
diff --git a/include/sys/fm/protocol.h b/include/sys/fm/protocol.h
new file mode 100644 (file)
index 0000000..1ee2212
--- /dev/null
@@ -0,0 +1,367 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_FM_PROTOCOL_H
+#define        _SYS_FM_PROTOCOL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef _KERNEL
+#include <sys/varargs.h>
+#include <sys/nvpair.h>
+#else
+#include <libnvpair.h>
+#include <stdarg.h>
+#endif
+#include <sys/processor.h>
+
+/* FM common member names */
+#define        FM_CLASS                        "class"
+#define        FM_VERSION                      "version"
+
+/* FM protocol category 1 class names */
+#define        FM_EREPORT_CLASS                "ereport"
+#define        FM_FAULT_CLASS                  "fault"
+#define        FM_DEFECT_CLASS                 "defect"
+#define        FM_RSRC_CLASS                   "resource"
+#define        FM_LIST_EVENT                   "list"
+#define        FM_IREPORT_CLASS                "ireport"
+
+/* FM list.* event class values */
+#define        FM_LIST_SUSPECT_CLASS           FM_LIST_EVENT ".suspect"
+#define        FM_LIST_ISOLATED_CLASS          FM_LIST_EVENT ".isolated"
+#define        FM_LIST_REPAIRED_CLASS          FM_LIST_EVENT ".repaired"
+#define        FM_LIST_UPDATED_CLASS           FM_LIST_EVENT ".updated"
+#define        FM_LIST_RESOLVED_CLASS          FM_LIST_EVENT ".resolved"
+
+/* ereport class subcategory values */
+#define        FM_ERROR_CPU                    "cpu"
+#define        FM_ERROR_IO                     "io"
+
+/* ereport version and payload member names */
+#define        FM_EREPORT_VERS0                0
+#define        FM_EREPORT_VERSION              FM_EREPORT_VERS0
+
+/* ereport payload member names */
+#define        FM_EREPORT_DETECTOR             "detector"
+#define        FM_EREPORT_ENA                  "ena"
+#define        FM_EREPORT_TIME                 "time"
+
+/* list.* event payload member names */
+#define        FM_LIST_EVENT_SIZE              "list-sz"
+
+/* ireport.* event payload member names */
+#define        FM_IREPORT_DETECTOR             "detector"
+#define        FM_IREPORT_UUID                 "uuid"
+#define        FM_IREPORT_PRIORITY             "pri"
+#define        FM_IREPORT_ATTRIBUTES           "attr"
+
+/*
+ * list.suspect, isolated, updated, repaired and resolved
+ * versions/payload member names.
+ */
+#define        FM_SUSPECT_UUID                 "uuid"
+#define        FM_SUSPECT_DIAG_CODE            "code"
+#define        FM_SUSPECT_DIAG_TIME            "diag-time"
+#define        FM_SUSPECT_DE                   "de"
+#define        FM_SUSPECT_FAULT_LIST           "fault-list"
+#define        FM_SUSPECT_FAULT_SZ             "fault-list-sz"
+#define        FM_SUSPECT_FAULT_STATUS         "fault-status"
+#define        FM_SUSPECT_INJECTED             "__injected"
+#define        FM_SUSPECT_MESSAGE              "message"
+#define        FM_SUSPECT_RETIRE               "retire"
+#define        FM_SUSPECT_RESPONSE             "response"
+#define        FM_SUSPECT_SEVERITY             "severity"
+
+#define        FM_SUSPECT_VERS0                0
+#define        FM_SUSPECT_VERSION              FM_SUSPECT_VERS0
+
+#define        FM_SUSPECT_FAULTY               0x1
+#define        FM_SUSPECT_UNUSABLE             0x2
+#define        FM_SUSPECT_NOT_PRESENT          0x4
+#define        FM_SUSPECT_DEGRADED             0x8
+#define        FM_SUSPECT_REPAIRED             0x10
+#define        FM_SUSPECT_REPLACED             0x20
+#define        FM_SUSPECT_ACQUITTED            0x40
+
+/* fault event versions and payload member names */
+#define        FM_FAULT_VERS0                  0
+#define        FM_FAULT_VERSION                FM_FAULT_VERS0
+
+#define        FM_FAULT_ASRU                   "asru"
+#define        FM_FAULT_FRU                    "fru"
+#define        FM_FAULT_FRU_LABEL              "fru-label"
+#define        FM_FAULT_CERTAINTY              "certainty"
+#define        FM_FAULT_RESOURCE               "resource"
+#define        FM_FAULT_LOCATION               "location"
+
+/* resource event versions and payload member names */
+#define        FM_RSRC_VERS0                   0
+#define        FM_RSRC_VERSION                 FM_RSRC_VERS0
+#define        FM_RSRC_RESOURCE                "resource"
+
+/* resource.fm.asru.* payload member names */
+#define        FM_RSRC_ASRU_UUID               "uuid"
+#define        FM_RSRC_ASRU_CODE               "code"
+#define        FM_RSRC_ASRU_FAULTY             "faulty"
+#define        FM_RSRC_ASRU_REPAIRED           "repaired"
+#define        FM_RSRC_ASRU_REPLACED           "replaced"
+#define        FM_RSRC_ASRU_ACQUITTED          "acquitted"
+#define        FM_RSRC_ASRU_RESOLVED           "resolved"
+#define        FM_RSRC_ASRU_UNUSABLE           "unusable"
+#define        FM_RSRC_ASRU_EVENT              "event"
+
+/* resource.fm.xprt.* versions and payload member names */
+#define        FM_RSRC_XPRT_VERS0              0
+#define        FM_RSRC_XPRT_VERSION            FM_RSRC_XPRT_VERS0
+#define        FM_RSRC_XPRT_UUID               "uuid"
+#define        FM_RSRC_XPRT_SUBCLASS           "subclass"
+#define        FM_RSRC_XPRT_FAULT_STATUS       "fault-status"
+#define        FM_RSRC_XPRT_FAULT_HAS_ASRU     "fault-has-asru"
+
+/*
+ * FM ENA Format Macros
+ */
+#define        ENA_FORMAT_MASK                 0x3
+#define        ENA_FORMAT(ena)                 ((ena) & ENA_FORMAT_MASK)
+
+/* ENA format types */
+#define        FM_ENA_FMT0                     0
+#define        FM_ENA_FMT1                     1
+#define        FM_ENA_FMT2                     2
+
+/* Format 1 */
+#define        ENA_FMT1_GEN_MASK               0x00000000000003FCull
+#define        ENA_FMT1_ID_MASK                0xFFFFFFFFFFFFFC00ull
+#define        ENA_FMT1_CPUID_MASK             0x00000000000FFC00ull
+#define        ENA_FMT1_TIME_MASK              0xFFFFFFFFFFF00000ull
+#define        ENA_FMT1_GEN_SHFT               2
+#define        ENA_FMT1_ID_SHFT                10
+#define        ENA_FMT1_CPUID_SHFT             ENA_FMT1_ID_SHFT
+#define        ENA_FMT1_TIME_SHFT              20
+
+/* Format 2 */
+#define        ENA_FMT2_GEN_MASK               0x00000000000003FCull
+#define        ENA_FMT2_ID_MASK                0xFFFFFFFFFFFFFC00ull
+#define        ENA_FMT2_TIME_MASK              ENA_FMT2_ID_MASK
+#define        ENA_FMT2_GEN_SHFT               2
+#define        ENA_FMT2_ID_SHFT                10
+#define        ENA_FMT2_TIME_SHFT              ENA_FMT2_ID_SHFT
+
+/* Common FMRI type names */
+#define        FM_FMRI_AUTHORITY               "authority"
+#define        FM_FMRI_SCHEME                  "scheme"
+#define        FM_FMRI_SVC_AUTHORITY           "svc-authority"
+#define        FM_FMRI_FACILITY                "facility"
+
+/* FMRI authority-type member names */
+#define        FM_FMRI_AUTH_CHASSIS            "chassis-id"
+#define        FM_FMRI_AUTH_PRODUCT_SN         "product-sn"
+#define        FM_FMRI_AUTH_PRODUCT            "product-id"
+#define        FM_FMRI_AUTH_DOMAIN             "domain-id"
+#define        FM_FMRI_AUTH_SERVER             "server-id"
+#define        FM_FMRI_AUTH_HOST               "host-id"
+
+#define        FM_AUTH_VERS0                   0
+#define        FM_FMRI_AUTH_VERSION            FM_AUTH_VERS0
+
+/* scheme name values */
+#define        FM_FMRI_SCHEME_FMD              "fmd"
+#define        FM_FMRI_SCHEME_DEV              "dev"
+#define        FM_FMRI_SCHEME_HC               "hc"
+#define        FM_FMRI_SCHEME_SVC              "svc"
+#define        FM_FMRI_SCHEME_CPU              "cpu"
+#define        FM_FMRI_SCHEME_MEM              "mem"
+#define        FM_FMRI_SCHEME_MOD              "mod"
+#define        FM_FMRI_SCHEME_PKG              "pkg"
+#define        FM_FMRI_SCHEME_LEGACY           "legacy-hc"
+#define        FM_FMRI_SCHEME_ZFS              "zfs"
+#define        FM_FMRI_SCHEME_SW               "sw"
+
+/* Scheme versions */
+#define        FMD_SCHEME_VERSION0             0
+#define        FM_FMD_SCHEME_VERSION           FMD_SCHEME_VERSION0
+#define        DEV_SCHEME_VERSION0             0
+#define        FM_DEV_SCHEME_VERSION           DEV_SCHEME_VERSION0
+#define        FM_HC_VERS0                     0
+#define        FM_HC_SCHEME_VERSION            FM_HC_VERS0
+#define        CPU_SCHEME_VERSION0             0
+#define        CPU_SCHEME_VERSION1             1
+#define        FM_CPU_SCHEME_VERSION           CPU_SCHEME_VERSION1
+#define        MEM_SCHEME_VERSION0             0
+#define        FM_MEM_SCHEME_VERSION           MEM_SCHEME_VERSION0
+#define        MOD_SCHEME_VERSION0             0
+#define        FM_MOD_SCHEME_VERSION           MOD_SCHEME_VERSION0
+#define        PKG_SCHEME_VERSION0             0
+#define        FM_PKG_SCHEME_VERSION           PKG_SCHEME_VERSION0
+#define        LEGACY_SCHEME_VERSION0          0
+#define        FM_LEGACY_SCHEME_VERSION        LEGACY_SCHEME_VERSION0
+#define        SVC_SCHEME_VERSION0             0
+#define        FM_SVC_SCHEME_VERSION           SVC_SCHEME_VERSION0
+#define        ZFS_SCHEME_VERSION0             0
+#define        FM_ZFS_SCHEME_VERSION           ZFS_SCHEME_VERSION0
+#define        SW_SCHEME_VERSION0              0
+#define        FM_SW_SCHEME_VERSION            SW_SCHEME_VERSION0
+
+/* hc scheme member names */
+#define        FM_FMRI_HC_SERIAL_ID            "serial"
+#define        FM_FMRI_HC_PART                 "part"
+#define        FM_FMRI_HC_REVISION             "revision"
+#define        FM_FMRI_HC_ROOT                 "hc-root"
+#define        FM_FMRI_HC_LIST_SZ              "hc-list-sz"
+#define        FM_FMRI_HC_LIST                 "hc-list"
+#define        FM_FMRI_HC_SPECIFIC             "hc-specific"
+
+/* facility member names */
+#define        FM_FMRI_FACILITY_NAME           "facility-name"
+#define        FM_FMRI_FACILITY_TYPE           "facility-type"
+
+/* hc-list version and member names */
+#define        FM_FMRI_HC_NAME                 "hc-name"
+#define        FM_FMRI_HC_ID                   "hc-id"
+
+#define        HC_LIST_VERSION0                0
+#define        FM_HC_LIST_VERSION              HC_LIST_VERSION0
+
+/* hc-specific member names */
+#define        FM_FMRI_HC_SPECIFIC_OFFSET      "offset"
+#define        FM_FMRI_HC_SPECIFIC_PHYSADDR    "physaddr"
+
+/* fmd module scheme member names */
+#define        FM_FMRI_FMD_NAME                "mod-name"
+#define        FM_FMRI_FMD_VERSION             "mod-version"
+
+/* dev scheme member names */
+#define        FM_FMRI_DEV_ID                  "devid"
+#define        FM_FMRI_DEV_TGTPTLUN0           "target-port-l0id"
+#define        FM_FMRI_DEV_PATH                "device-path"
+
+/* pkg scheme member names */
+#define        FM_FMRI_PKG_BASEDIR             "pkg-basedir"
+#define        FM_FMRI_PKG_INST                "pkg-inst"
+#define        FM_FMRI_PKG_VERSION             "pkg-version"
+
+/* svc scheme member names */
+#define        FM_FMRI_SVC_NAME                "svc-name"
+#define        FM_FMRI_SVC_INSTANCE            "svc-instance"
+#define        FM_FMRI_SVC_CONTRACT_ID         "svc-contract-id"
+
+/* svc-authority member names */
+#define        FM_FMRI_SVC_AUTH_SCOPE          "scope"
+#define        FM_FMRI_SVC_AUTH_SYSTEM_FQN     "system-fqn"
+
+/* cpu scheme member names */
+#define        FM_FMRI_CPU_ID                  "cpuid"
+#define        FM_FMRI_CPU_SERIAL_ID           "serial"
+#define        FM_FMRI_CPU_MASK                "cpumask"
+#define        FM_FMRI_CPU_VID                 "cpuvid"
+#define        FM_FMRI_CPU_CPUFRU              "cpufru"
+#define        FM_FMRI_CPU_CACHE_INDEX         "cacheindex"
+#define        FM_FMRI_CPU_CACHE_WAY           "cacheway"
+#define        FM_FMRI_CPU_CACHE_BIT           "cachebit"
+#define        FM_FMRI_CPU_CACHE_TYPE          "cachetype"
+
+#define        FM_FMRI_CPU_CACHE_TYPE_L2       0
+#define        FM_FMRI_CPU_CACHE_TYPE_L3       1
+
+/* legacy-hc scheme member names */
+#define        FM_FMRI_LEGACY_HC               "component"
+#define        FM_FMRI_LEGACY_HC_PREFIX        FM_FMRI_SCHEME_HC":///" \
+    FM_FMRI_LEGACY_HC"="
+
+/* mem scheme member names */
+#define        FM_FMRI_MEM_UNUM                "unum"
+#define        FM_FMRI_MEM_SERIAL_ID           "serial"
+#define        FM_FMRI_MEM_PHYSADDR            "physaddr"
+#define        FM_FMRI_MEM_MEMCONFIG           "memconfig"
+#define        FM_FMRI_MEM_OFFSET              "offset"
+
+/* mod scheme member names */
+#define        FM_FMRI_MOD_PKG                 "mod-pkg"
+#define        FM_FMRI_MOD_NAME                "mod-name"
+#define        FM_FMRI_MOD_ID                  "mod-id"
+#define        FM_FMRI_MOD_DESC                "mod-desc"
+
+/* zfs scheme member names */
+#define        FM_FMRI_ZFS_POOL                "pool"
+#define        FM_FMRI_ZFS_VDEV                "vdev"
+
+/* sw scheme member names - extra indentation for members of an nvlist */
+#define        FM_FMRI_SW_OBJ                  "object"
+#define        FM_FMRI_SW_OBJ_PATH                     "path"
+#define        FM_FMRI_SW_OBJ_ROOT                     "root"
+#define        FM_FMRI_SW_OBJ_PKG                      "pkg"
+#define        FM_FMRI_SW_SITE                 "site"
+#define        FM_FMRI_SW_SITE_TOKEN                   "token"
+#define        FM_FMRI_SW_SITE_MODULE                  "module"
+#define        FM_FMRI_SW_SITE_FILE                    "file"
+#define        FM_FMRI_SW_SITE_LINE                    "line"
+#define        FM_FMRI_SW_SITE_FUNC                    "func"
+#define        FM_FMRI_SW_CTXT                 "context"
+#define        FM_FMRI_SW_CTXT_ORIGIN                  "origin"
+#define        FM_FMRI_SW_CTXT_EXECNAME                "execname"
+#define        FM_FMRI_SW_CTXT_PID                     "pid"
+#define        FM_FMRI_SW_CTXT_ZONE                    "zone"
+#define        FM_FMRI_SW_CTXT_CTID                    "ctid"
+#define        FM_FMRI_SW_CTXT_STACK                   "stack"
+#define        FM_NVA_FREE             0       /* free allocator on nvlist_destroy */
+#define        FM_NVA_RETAIN           1       /* keep allocator on nvlist_destroy */
+
+extern nv_alloc_t *fm_nva_xcreate(char *, size_t);
+extern void fm_nva_xdestroy(nv_alloc_t *);
+extern nvlist_t *fm_nvlist_create(nv_alloc_t *);
+extern void fm_nvlist_destroy(nvlist_t *, int);
+extern void fm_ereport_set(nvlist_t *, int, const char *, uint64_t,
+    const nvlist_t *, ...);
+extern void fm_payload_set(nvlist_t *, ...);
+extern int i_fm_payload_set(nvlist_t *, const char *, va_list);
+extern void fm_fmri_hc_set(nvlist_t *, int, const nvlist_t *, nvlist_t *,
+    int, ...);
+extern void fm_fmri_dev_set(nvlist_t *, int, const nvlist_t *, const char *,
+    const char *, const char *);
+extern void fm_fmri_de_set(nvlist_t *, int, const nvlist_t *, const char *);
+extern void fm_fmri_cpu_set(nvlist_t *, int, const nvlist_t *, uint32_t,
+    uint8_t *, const char *);
+extern void fm_fmri_mem_set(nvlist_t *, int, const nvlist_t *, const char *,
+    const char *, uint64_t);
+extern void fm_fmri_zfs_set(nvlist_t *, int, uint64_t, uint64_t);
+extern void fm_fmri_hc_create(nvlist_t *, int, const nvlist_t *, nvlist_t *,
+    nvlist_t *, int, ...);
+
+extern uint64_t fm_ena_increment(uint64_t);
+extern uint64_t fm_ena_generate(uint64_t, uchar_t);
+extern uint64_t fm_ena_generate_cpu(uint64_t, processorid_t, uchar_t);
+extern uint64_t fm_ena_generation_get(uint64_t);
+extern uchar_t fm_ena_format_get(uint64_t);
+extern uint64_t fm_ena_id_get(uint64_t);
+extern uint64_t fm_ena_time_get(uint64_t);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_FM_PROTOCOL_H */
diff --git a/include/sys/fm/util.h b/include/sys/fm/util.h
new file mode 100644 (file)
index 0000000..94947d6
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_FM_UTIL_H
+#define        _SYS_FM_UTIL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/nvpair.h>
+
+/*
+ * Shared user/kernel definitions for class length, error channel name,
+ * and kernel event publisher string.
+ */
+#define        FM_MAX_CLASS 100
+#define        FM_ERROR_CHAN   "com.sun:fm:error"
+#define        FM_PUB          "fm"
+
+/*
+ * ereport dump device transport support
+ *
+ * Ereports are written out to the dump device at a proscribed offset from the
+ * end, similar to in-transit log messages.  The ereports are represented as a
+ * erpt_dump_t header followed by ed_size bytes of packed native nvlist data.
+ *
+ * NOTE: All of these constants and the header must be defined so they have the
+ * same representation for *both* 32-bit and 64-bit producers and consumers.
+ */
+#define        ERPT_MAGIC      0xf00d4eddU
+#define        ERPT_MAX_ERRS   16
+#define        ERPT_DATA_SZ    (6 * 1024)
+#define        ERPT_EVCH_MAX   256
+#define        ERPT_HIWAT      64
+
+typedef struct erpt_dump {
+       uint32_t ed_magic;      /* ERPT_MAGIC or zero to indicate end */
+       uint32_t ed_chksum;     /* checksum32() of packed nvlist data */
+       uint32_t ed_size;       /* ereport (nvl) fixed buf size */
+       uint32_t ed_pad;        /* reserved for future use */
+       hrtime_t ed_hrt_nsec;   /* hrtime of this ereport */
+       hrtime_t ed_hrt_base;   /* hrtime sample corresponding to ed_tod_base */
+       struct {
+               uint64_t sec;   /* seconds since gettimeofday() Epoch */
+               uint64_t nsec;  /* nanoseconds past ed_tod_base.sec */
+       } ed_tod_base;
+} erpt_dump_t;
+
+#ifdef _KERNEL
+
+#define ZEVENT_SHUTDOWN        0x1
+
+typedef void zevent_cb_t(nvlist_t *, nvlist_t *);
+
+typedef struct zevent_s {
+       nvlist_t        *ev_nvl;       /* protected by the zevent_lock */
+       nvlist_t        *ev_detector;  /* " */
+       list_t          ev_ze_list;    /* " */
+       list_node_t     ev_node;       /* " */
+       zevent_cb_t     *ev_cb;        /* " */
+} zevent_t;
+
+typedef struct zfs_zevent {
+       zevent_t        *ze_zevent;    /* protected by the zevent_lock */
+       list_node_t     ze_node;       /* " */
+       uint64_t        ze_dropped;    /* " */
+} zfs_zevent_t;
+
+extern void fm_init(void);
+extern void fm_fini(void);
+extern void fm_nvprint(nvlist_t *);
+extern void zfs_zevent_post(nvlist_t *, nvlist_t *, zevent_cb_t *);
+extern void zfs_zevent_drain_all(int *);
+extern int zfs_zevent_fd_hold(int, minor_t *, zfs_zevent_t **);
+extern void zfs_zevent_fd_rele(int);
+extern int zfs_zevent_next(zfs_zevent_t *, nvlist_t **, uint64_t *);
+extern int zfs_zevent_wait(zfs_zevent_t *);
+extern void zfs_zevent_init(zfs_zevent_t **);
+extern void zfs_zevent_destroy(zfs_zevent_t *);
+
+#else
+
+static inline void fm_init(void) { }
+static inline void fm_fini(void) { }
+
+#endif  /* _KERNEL */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_FM_UTIL_H */
diff --git a/include/sys/fs/Makefile.am b/include/sys/fs/Makefile.am
new file mode 100644 (file)
index 0000000..3074f2f
--- /dev/null
@@ -0,0 +1,18 @@
+COMMON_H = \
+       $(top_srcdir)/include/sys/fs/zfs.h
+
+KERNEL_H =
+
+USER_H =
+
+EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+
+if CONFIG_USER
+libzfsdir = $(includedir)/libzfs/sys/fs
+libzfs_HEADERS = $(COMMON_H) $(USER_H)
+endif
+
+if CONFIG_KERNEL
+kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION)/sys/fs
+kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+endif
diff --git a/include/sys/fs/Makefile.in b/include/sys/fs/Makefile.in
new file mode 100644 (file)
index 0000000..25c170c
--- /dev/null
@@ -0,0 +1,567 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = include/sys/fs
+DIST_COMMON = $(am__kernel_HEADERS_DIST) $(am__libzfs_HEADERS_DIST) \
+       $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__kernel_HEADERS_DIST = $(top_srcdir)/include/sys/fs/zfs.h
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(kerneldir)" "$(DESTDIR)$(libzfsdir)"
+am__libzfs_HEADERS_DIST = $(top_srcdir)/include/sys/fs/zfs.h
+HEADERS = $(kernel_HEADERS) $(libzfs_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+COMMON_H = \
+       $(top_srcdir)/include/sys/fs/zfs.h
+
+KERNEL_H = 
+USER_H = 
+EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+@CONFIG_USER_TRUE@libzfsdir = $(includedir)/libzfs/sys/fs
+@CONFIG_USER_TRUE@libzfs_HEADERS = $(COMMON_H) $(USER_H)
+@CONFIG_KERNEL_TRUE@kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)/$(LINUX_VERSION)/sys/fs
+@CONFIG_KERNEL_TRUE@kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/sys/fs/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu include/sys/fs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-kernelHEADERS: $(kernel_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(kerneldir)" || $(MKDIR_P) "$(DESTDIR)$(kerneldir)"
+       @list='$(kernel_HEADERS)'; test -n "$(kerneldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(kerneldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(kerneldir)" || exit $$?; \
+       done
+
+uninstall-kernelHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(kernel_HEADERS)'; test -n "$(kerneldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(kerneldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(kerneldir)" && rm -f $$files
+install-libzfsHEADERS: $(libzfs_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libzfsdir)" || $(MKDIR_P) "$(DESTDIR)$(libzfsdir)"
+       @list='$(libzfs_HEADERS)'; test -n "$(libzfsdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libzfsdir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libzfsdir)" || exit $$?; \
+       done
+
+uninstall-libzfsHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libzfs_HEADERS)'; test -n "$(libzfsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libzfsdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libzfsdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(kerneldir)" "$(DESTDIR)$(libzfsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-kernelHEADERS install-libzfsHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-kernelHEADERS uninstall-libzfsHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool ctags distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-kernelHEADERS install-libzfsHEADERS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags uninstall uninstall-am uninstall-kernelHEADERS \
+       uninstall-libzfsHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/include/sys/fs/zfs.h b/include/sys/fs/zfs.h
new file mode 100644 (file)
index 0000000..25f2562
--- /dev/null
@@ -0,0 +1,916 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+/* Portions Copyright 2010 Robert Milkowski */
+
+#ifndef        _SYS_FS_ZFS_H
+#define        _SYS_FS_ZFS_H
+
+#include <sys/time.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Types and constants shared between userland and the kernel.
+ */
+
+/*
+ * Each dataset can be one of the following types.  These constants can be
+ * combined into masks that can be passed to various functions.
+ */
+typedef enum {
+       ZFS_TYPE_FILESYSTEM     = 0x1,
+       ZFS_TYPE_SNAPSHOT       = 0x2,
+       ZFS_TYPE_VOLUME         = 0x4,
+       ZFS_TYPE_POOL           = 0x8
+} zfs_type_t;
+
+#define        ZFS_TYPE_DATASET        \
+       (ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME | ZFS_TYPE_SNAPSHOT)
+
+#define        ZAP_MAXNAMELEN 256
+#define        ZAP_MAXVALUELEN (1024 * 8)
+#define        ZAP_OLDMAXVALUELEN 1024
+
+/*
+ * Dataset properties are identified by these constants and must be added to
+ * the end of this list to ensure that external consumers are not affected
+ * by the change. If you make any changes to this list, be sure to update
+ * the property table in usr/src/common/zfs/zfs_prop.c.
+ */
+typedef enum {
+       ZFS_PROP_TYPE,
+       ZFS_PROP_CREATION,
+       ZFS_PROP_USED,
+       ZFS_PROP_AVAILABLE,
+       ZFS_PROP_REFERENCED,
+       ZFS_PROP_COMPRESSRATIO,
+       ZFS_PROP_MOUNTED,
+       ZFS_PROP_ORIGIN,
+       ZFS_PROP_QUOTA,
+       ZFS_PROP_RESERVATION,
+       ZFS_PROP_VOLSIZE,
+       ZFS_PROP_VOLBLOCKSIZE,
+       ZFS_PROP_RECORDSIZE,
+       ZFS_PROP_MOUNTPOINT,
+       ZFS_PROP_SHARENFS,
+       ZFS_PROP_CHECKSUM,
+       ZFS_PROP_COMPRESSION,
+       ZFS_PROP_ATIME,
+       ZFS_PROP_DEVICES,
+       ZFS_PROP_EXEC,
+       ZFS_PROP_SETUID,
+       ZFS_PROP_READONLY,
+       ZFS_PROP_ZONED,
+       ZFS_PROP_SNAPDIR,
+       ZFS_PROP_PRIVATE,               /* not exposed to user, temporary */
+       ZFS_PROP_ACLINHERIT,
+       ZFS_PROP_CREATETXG,             /* not exposed to the user */
+       ZFS_PROP_NAME,                  /* not exposed to the user */
+       ZFS_PROP_CANMOUNT,
+       ZFS_PROP_ISCSIOPTIONS,          /* not exposed to the user */
+       ZFS_PROP_XATTR,
+       ZFS_PROP_NUMCLONES,             /* not exposed to the user */
+       ZFS_PROP_COPIES,
+       ZFS_PROP_VERSION,
+       ZFS_PROP_UTF8ONLY,
+       ZFS_PROP_NORMALIZE,
+       ZFS_PROP_CASE,
+       ZFS_PROP_VSCAN,
+       ZFS_PROP_NBMAND,
+       ZFS_PROP_SHARESMB,
+       ZFS_PROP_REFQUOTA,
+       ZFS_PROP_REFRESERVATION,
+       ZFS_PROP_GUID,
+       ZFS_PROP_PRIMARYCACHE,
+       ZFS_PROP_SECONDARYCACHE,
+       ZFS_PROP_USEDSNAP,
+       ZFS_PROP_USEDDS,
+       ZFS_PROP_USEDCHILD,
+       ZFS_PROP_USEDREFRESERV,
+       ZFS_PROP_USERACCOUNTING,        /* not exposed to the user */
+       ZFS_PROP_STMF_SHAREINFO,        /* not exposed to the user */
+       ZFS_PROP_DEFER_DESTROY,
+       ZFS_PROP_USERREFS,
+       ZFS_PROP_LOGBIAS,
+       ZFS_PROP_UNIQUE,                /* not exposed to the user */
+       ZFS_PROP_OBJSETID,              /* not exposed to the user */
+       ZFS_PROP_DEDUP,
+       ZFS_PROP_MLSLABEL,
+       ZFS_PROP_SYNC,
+       ZFS_NUM_PROPS
+} zfs_prop_t;
+
+typedef enum {
+       ZFS_PROP_USERUSED,
+       ZFS_PROP_USERQUOTA,
+       ZFS_PROP_GROUPUSED,
+       ZFS_PROP_GROUPQUOTA,
+       ZFS_NUM_USERQUOTA_PROPS
+} zfs_userquota_prop_t;
+
+extern const char *zfs_userquota_prop_prefixes[ZFS_NUM_USERQUOTA_PROPS];
+
+/*
+ * Pool properties are identified by these constants and must be added to the
+ * end of this list to ensure that external consumers are not affected
+ * by the change. If you make any changes to this list, be sure to update
+ * the property table in usr/src/common/zfs/zpool_prop.c.
+ */
+typedef enum {
+       ZPOOL_PROP_NAME,
+       ZPOOL_PROP_SIZE,
+       ZPOOL_PROP_CAPACITY,
+       ZPOOL_PROP_ALTROOT,
+       ZPOOL_PROP_HEALTH,
+       ZPOOL_PROP_GUID,
+       ZPOOL_PROP_VERSION,
+       ZPOOL_PROP_BOOTFS,
+       ZPOOL_PROP_DELEGATION,
+       ZPOOL_PROP_AUTOREPLACE,
+       ZPOOL_PROP_CACHEFILE,
+       ZPOOL_PROP_FAILUREMODE,
+       ZPOOL_PROP_LISTSNAPS,
+       ZPOOL_PROP_AUTOEXPAND,
+       ZPOOL_PROP_DEDUPDITTO,
+       ZPOOL_PROP_DEDUPRATIO,
+       ZPOOL_PROP_FREE,
+       ZPOOL_PROP_ALLOCATED,
+       ZPOOL_PROP_READONLY,
+       ZPOOL_NUM_PROPS
+} zpool_prop_t;
+
+#define        ZPROP_CONT              -2
+#define        ZPROP_INVAL             -1
+
+#define        ZPROP_VALUE             "value"
+#define        ZPROP_SOURCE            "source"
+
+typedef enum {
+       ZPROP_SRC_NONE = 0x1,
+       ZPROP_SRC_DEFAULT = 0x2,
+       ZPROP_SRC_TEMPORARY = 0x4,
+       ZPROP_SRC_LOCAL = 0x8,
+       ZPROP_SRC_INHERITED = 0x10,
+       ZPROP_SRC_RECEIVED = 0x20
+} zprop_source_t;
+
+#define        ZPROP_SRC_ALL   0x3f
+
+#define        ZPROP_SOURCE_VAL_RECVD  "$recvd"
+#define        ZPROP_N_MORE_ERRORS     "N_MORE_ERRORS"
+/*
+ * Dataset flag implemented as a special entry in the props zap object
+ * indicating that the dataset has received properties on or after
+ * SPA_VERSION_RECVD_PROPS. The first such receive blows away local properties
+ * just as it did in earlier versions, and thereafter, local properties are
+ * preserved.
+ */
+#define        ZPROP_HAS_RECVD         "$hasrecvd"
+
+typedef enum {
+       ZPROP_ERR_NOCLEAR = 0x1, /* failure to clear existing props */
+       ZPROP_ERR_NORESTORE = 0x2 /* failure to restore props on error */
+} zprop_errflags_t;
+
+typedef int (*zprop_func)(int, void *);
+
+/*
+ * Properties to be set on the root file system of a new pool
+ * are stuffed into their own nvlist, which is then included in
+ * the properties nvlist with the pool properties.
+ */
+#define        ZPOOL_ROOTFS_PROPS      "root-props-nvl"
+
+/*
+ * Dataset property functions shared between libzfs and kernel.
+ */
+const char *zfs_prop_default_string(zfs_prop_t);
+uint64_t zfs_prop_default_numeric(zfs_prop_t);
+boolean_t zfs_prop_readonly(zfs_prop_t);
+boolean_t zfs_prop_inheritable(zfs_prop_t);
+boolean_t zfs_prop_setonce(zfs_prop_t);
+const char *zfs_prop_to_name(zfs_prop_t);
+zfs_prop_t zfs_name_to_prop(const char *);
+boolean_t zfs_prop_user(const char *);
+boolean_t zfs_prop_userquota(const char *);
+int zfs_prop_index_to_string(zfs_prop_t, uint64_t, const char **);
+int zfs_prop_string_to_index(zfs_prop_t, const char *, uint64_t *);
+uint64_t zfs_prop_random_value(zfs_prop_t, uint64_t seed);
+boolean_t zfs_prop_valid_for_type(int, zfs_type_t);
+
+/*
+ * Pool property functions shared between libzfs and kernel.
+ */
+zpool_prop_t zpool_name_to_prop(const char *);
+const char *zpool_prop_to_name(zpool_prop_t);
+const char *zpool_prop_default_string(zpool_prop_t);
+uint64_t zpool_prop_default_numeric(zpool_prop_t);
+boolean_t zpool_prop_readonly(zpool_prop_t);
+int zpool_prop_index_to_string(zpool_prop_t, uint64_t, const char **);
+int zpool_prop_string_to_index(zpool_prop_t, const char *, uint64_t *);
+uint64_t zpool_prop_random_value(zpool_prop_t, uint64_t seed);
+
+/*
+ * Definitions for the Delegation.
+ */
+typedef enum {
+       ZFS_DELEG_WHO_UNKNOWN = 0,
+       ZFS_DELEG_USER = 'u',
+       ZFS_DELEG_USER_SETS = 'U',
+       ZFS_DELEG_GROUP = 'g',
+       ZFS_DELEG_GROUP_SETS = 'G',
+       ZFS_DELEG_EVERYONE = 'e',
+       ZFS_DELEG_EVERYONE_SETS = 'E',
+       ZFS_DELEG_CREATE = 'c',
+       ZFS_DELEG_CREATE_SETS = 'C',
+       ZFS_DELEG_NAMED_SET = 's',
+       ZFS_DELEG_NAMED_SET_SETS = 'S'
+} zfs_deleg_who_type_t;
+
+typedef enum {
+       ZFS_DELEG_NONE = 0,
+       ZFS_DELEG_PERM_LOCAL = 1,
+       ZFS_DELEG_PERM_DESCENDENT = 2,
+       ZFS_DELEG_PERM_LOCALDESCENDENT = 3,
+       ZFS_DELEG_PERM_CREATE = 4
+} zfs_deleg_inherit_t;
+
+#define        ZFS_DELEG_PERM_UID      "uid"
+#define        ZFS_DELEG_PERM_GID      "gid"
+#define        ZFS_DELEG_PERM_GROUPS   "groups"
+
+#define        ZFS_MLSLABEL_DEFAULT    "none"
+
+#define        ZFS_SMB_ACL_SRC         "src"
+#define        ZFS_SMB_ACL_TARGET      "target"
+
+typedef enum {
+       ZFS_CANMOUNT_OFF = 0,
+       ZFS_CANMOUNT_ON = 1,
+       ZFS_CANMOUNT_NOAUTO = 2
+} zfs_canmount_type_t;
+
+typedef enum {
+       ZFS_LOGBIAS_LATENCY = 0,
+       ZFS_LOGBIAS_THROUGHPUT = 1
+} zfs_logbias_op_t;
+
+typedef enum zfs_share_op {
+       ZFS_SHARE_NFS = 0,
+       ZFS_UNSHARE_NFS = 1,
+       ZFS_SHARE_SMB = 2,
+       ZFS_UNSHARE_SMB = 3
+} zfs_share_op_t;
+
+typedef enum zfs_smb_acl_op {
+       ZFS_SMB_ACL_ADD,
+       ZFS_SMB_ACL_REMOVE,
+       ZFS_SMB_ACL_RENAME,
+       ZFS_SMB_ACL_PURGE
+} zfs_smb_acl_op_t;
+
+typedef enum zfs_cache_type {
+       ZFS_CACHE_NONE = 0,
+       ZFS_CACHE_METADATA = 1,
+       ZFS_CACHE_ALL = 2
+} zfs_cache_type_t;
+
+typedef enum {
+       ZFS_SYNC_STANDARD = 0,
+       ZFS_SYNC_ALWAYS = 1,
+       ZFS_SYNC_DISABLED = 2
+} zfs_sync_type_t;
+
+
+/*
+ * On-disk version number.
+ */
+#define        SPA_VERSION_1                   1ULL
+#define        SPA_VERSION_2                   2ULL
+#define        SPA_VERSION_3                   3ULL
+#define        SPA_VERSION_4                   4ULL
+#define        SPA_VERSION_5                   5ULL
+#define        SPA_VERSION_6                   6ULL
+#define        SPA_VERSION_7                   7ULL
+#define        SPA_VERSION_8                   8ULL
+#define        SPA_VERSION_9                   9ULL
+#define        SPA_VERSION_10                  10ULL
+#define        SPA_VERSION_11                  11ULL
+#define        SPA_VERSION_12                  12ULL
+#define        SPA_VERSION_13                  13ULL
+#define        SPA_VERSION_14                  14ULL
+#define        SPA_VERSION_15                  15ULL
+#define        SPA_VERSION_16                  16ULL
+#define        SPA_VERSION_17                  17ULL
+#define        SPA_VERSION_18                  18ULL
+#define        SPA_VERSION_19                  19ULL
+#define        SPA_VERSION_20                  20ULL
+#define        SPA_VERSION_21                  21ULL
+#define        SPA_VERSION_22                  22ULL
+#define        SPA_VERSION_23                  23ULL
+#define        SPA_VERSION_24                  24ULL
+#define        SPA_VERSION_25                  25ULL
+#define        SPA_VERSION_26                  26ULL
+#define        SPA_VERSION_27                  27ULL
+#define        SPA_VERSION_28                  28ULL
+
+/*
+ * When bumping up SPA_VERSION, make sure GRUB ZFS understands the on-disk
+ * format change. Go to usr/src/grub/grub-0.97/stage2/{zfs-include/, fsys_zfs*},
+ * and do the appropriate changes.  Also bump the version number in
+ * usr/src/grub/capability.
+ */
+#define        SPA_VERSION                     SPA_VERSION_28
+#define        SPA_VERSION_STRING              "28"
+
+/*
+ * Symbolic names for the changes that caused a SPA_VERSION switch.
+ * Used in the code when checking for presence or absence of a feature.
+ * Feel free to define multiple symbolic names for each version if there
+ * were multiple changes to on-disk structures during that version.
+ *
+ * NOTE: When checking the current SPA_VERSION in your code, be sure
+ *       to use spa_version() since it reports the version of the
+ *       last synced uberblock.  Checking the in-flight version can
+ *       be dangerous in some cases.
+ */
+#define        SPA_VERSION_INITIAL             SPA_VERSION_1
+#define        SPA_VERSION_DITTO_BLOCKS        SPA_VERSION_2
+#define        SPA_VERSION_SPARES              SPA_VERSION_3
+#define        SPA_VERSION_RAIDZ2              SPA_VERSION_3
+#define        SPA_VERSION_BPOBJ_ACCOUNT       SPA_VERSION_3
+#define        SPA_VERSION_RAIDZ_DEFLATE       SPA_VERSION_3
+#define        SPA_VERSION_DNODE_BYTES         SPA_VERSION_3
+#define        SPA_VERSION_ZPOOL_HISTORY       SPA_VERSION_4
+#define        SPA_VERSION_GZIP_COMPRESSION    SPA_VERSION_5
+#define        SPA_VERSION_BOOTFS              SPA_VERSION_6
+#define        SPA_VERSION_SLOGS               SPA_VERSION_7
+#define        SPA_VERSION_DELEGATED_PERMS     SPA_VERSION_8
+#define        SPA_VERSION_FUID                SPA_VERSION_9
+#define        SPA_VERSION_REFRESERVATION      SPA_VERSION_9
+#define        SPA_VERSION_REFQUOTA            SPA_VERSION_9
+#define        SPA_VERSION_UNIQUE_ACCURATE     SPA_VERSION_9
+#define        SPA_VERSION_L2CACHE             SPA_VERSION_10
+#define        SPA_VERSION_NEXT_CLONES         SPA_VERSION_11
+#define        SPA_VERSION_ORIGIN              SPA_VERSION_11
+#define        SPA_VERSION_DSL_SCRUB           SPA_VERSION_11
+#define        SPA_VERSION_SNAP_PROPS          SPA_VERSION_12
+#define        SPA_VERSION_USED_BREAKDOWN      SPA_VERSION_13
+#define        SPA_VERSION_PASSTHROUGH_X       SPA_VERSION_14
+#define        SPA_VERSION_USERSPACE           SPA_VERSION_15
+#define        SPA_VERSION_STMF_PROP           SPA_VERSION_16
+#define        SPA_VERSION_RAIDZ3              SPA_VERSION_17
+#define        SPA_VERSION_USERREFS            SPA_VERSION_18
+#define        SPA_VERSION_HOLES               SPA_VERSION_19
+#define        SPA_VERSION_ZLE_COMPRESSION     SPA_VERSION_20
+#define        SPA_VERSION_DEDUP               SPA_VERSION_21
+#define        SPA_VERSION_RECVD_PROPS         SPA_VERSION_22
+#define        SPA_VERSION_SLIM_ZIL            SPA_VERSION_23
+#define        SPA_VERSION_SA                  SPA_VERSION_24
+#define        SPA_VERSION_SCAN                SPA_VERSION_25
+#define        SPA_VERSION_DIR_CLONES          SPA_VERSION_26
+#define        SPA_VERSION_DEADLISTS           SPA_VERSION_26
+#define        SPA_VERSION_FAST_SNAP           SPA_VERSION_27
+#define        SPA_VERSION_MULTI_REPLACE       SPA_VERSION_28
+
+/*
+ * ZPL version - rev'd whenever an incompatible on-disk format change
+ * occurs.  This is independent of SPA/DMU/ZAP versioning.  You must
+ * also update the version_table[] and help message in zfs_prop.c.
+ *
+ * When changing, be sure to teach GRUB how to read the new format!
+ * See usr/src/grub/grub-0.97/stage2/{zfs-include/,fsys_zfs*}
+ */
+#define        ZPL_VERSION_1                   1ULL
+#define        ZPL_VERSION_2                   2ULL
+#define        ZPL_VERSION_3                   3ULL
+#define        ZPL_VERSION_4                   4ULL
+#define        ZPL_VERSION_5                   5ULL
+#define        ZPL_VERSION                     ZPL_VERSION_5
+#define        ZPL_VERSION_STRING              "5"
+
+#define        ZPL_VERSION_INITIAL             ZPL_VERSION_1
+#define        ZPL_VERSION_DIRENT_TYPE         ZPL_VERSION_2
+#define        ZPL_VERSION_FUID                ZPL_VERSION_3
+#define        ZPL_VERSION_NORMALIZATION       ZPL_VERSION_3
+#define        ZPL_VERSION_SYSATTR             ZPL_VERSION_3
+#define        ZPL_VERSION_USERSPACE           ZPL_VERSION_4
+#define        ZPL_VERSION_SA                  ZPL_VERSION_5
+
+/* Rewind request information */
+#define        ZPOOL_NO_REWIND         1  /* No policy - default behavior */
+#define        ZPOOL_NEVER_REWIND      2  /* Do not search for best txg or rewind */
+#define        ZPOOL_TRY_REWIND        4  /* Search for best txg, but do not rewind */
+#define        ZPOOL_DO_REWIND         8  /* Rewind to best txg w/in deferred frees */
+#define        ZPOOL_EXTREME_REWIND    16 /* Allow extreme measures to find best txg */
+#define        ZPOOL_REWIND_MASK       28 /* All the possible rewind bits */
+#define        ZPOOL_REWIND_POLICIES   31 /* All the possible policy bits */
+
+typedef struct zpool_rewind_policy {
+       uint32_t        zrp_request;    /* rewind behavior requested */
+       uint64_t        zrp_maxmeta;    /* max acceptable meta-data errors */
+       uint64_t        zrp_maxdata;    /* max acceptable data errors */
+       uint64_t        zrp_txg;        /* specific txg to load */
+} zpool_rewind_policy_t;
+
+/*
+ * The following are configuration names used in the nvlist describing a pool's
+ * configuration.
+ */
+#define        ZPOOL_CONFIG_VERSION            "version"
+#define        ZPOOL_CONFIG_POOL_NAME          "name"
+#define        ZPOOL_CONFIG_POOL_STATE         "state"
+#define        ZPOOL_CONFIG_POOL_TXG           "txg"
+#define        ZPOOL_CONFIG_POOL_GUID          "pool_guid"
+#define        ZPOOL_CONFIG_CREATE_TXG         "create_txg"
+#define        ZPOOL_CONFIG_TOP_GUID           "top_guid"
+#define        ZPOOL_CONFIG_VDEV_TREE          "vdev_tree"
+#define        ZPOOL_CONFIG_TYPE               "type"
+#define        ZPOOL_CONFIG_CHILDREN           "children"
+#define        ZPOOL_CONFIG_ID                 "id"
+#define        ZPOOL_CONFIG_GUID               "guid"
+#define        ZPOOL_CONFIG_PATH               "path"
+#define        ZPOOL_CONFIG_DEVID              "devid"
+#define        ZPOOL_CONFIG_METASLAB_ARRAY     "metaslab_array"
+#define        ZPOOL_CONFIG_METASLAB_SHIFT     "metaslab_shift"
+#define        ZPOOL_CONFIG_ASHIFT             "ashift"
+#define        ZPOOL_CONFIG_ASIZE              "asize"
+#define        ZPOOL_CONFIG_DTL                "DTL"
+#define        ZPOOL_CONFIG_SCAN_STATS         "scan_stats"    /* not stored on disk */
+#define        ZPOOL_CONFIG_VDEV_STATS         "vdev_stats"    /* not stored on disk */
+#define        ZPOOL_CONFIG_WHOLE_DISK         "whole_disk"
+#define        ZPOOL_CONFIG_ERRCOUNT           "error_count"
+#define        ZPOOL_CONFIG_NOT_PRESENT        "not_present"
+#define        ZPOOL_CONFIG_SPARES             "spares"
+#define        ZPOOL_CONFIG_IS_SPARE           "is_spare"
+#define        ZPOOL_CONFIG_NPARITY            "nparity"
+#define        ZPOOL_CONFIG_HOSTID             "hostid"
+#define        ZPOOL_CONFIG_HOSTNAME           "hostname"
+#define        ZPOOL_CONFIG_LOADED_TIME        "initial_load_time"
+#define        ZPOOL_CONFIG_UNSPARE            "unspare"
+#define        ZPOOL_CONFIG_PHYS_PATH          "phys_path"
+#define        ZPOOL_CONFIG_IS_LOG             "is_log"
+#define        ZPOOL_CONFIG_L2CACHE            "l2cache"
+#define        ZPOOL_CONFIG_HOLE_ARRAY         "hole_array"
+#define        ZPOOL_CONFIG_VDEV_CHILDREN      "vdev_children"
+#define        ZPOOL_CONFIG_IS_HOLE            "is_hole"
+#define        ZPOOL_CONFIG_DDT_HISTOGRAM      "ddt_histogram"
+#define        ZPOOL_CONFIG_DDT_OBJ_STATS      "ddt_object_stats"
+#define        ZPOOL_CONFIG_DDT_STATS          "ddt_stats"
+#define        ZPOOL_CONFIG_SPLIT              "splitcfg"
+#define        ZPOOL_CONFIG_ORIG_GUID          "orig_guid"
+#define        ZPOOL_CONFIG_SPLIT_GUID         "split_guid"
+#define        ZPOOL_CONFIG_SPLIT_LIST         "guid_list"
+#define        ZPOOL_CONFIG_REMOVING           "removing"
+#define        ZPOOL_CONFIG_RESILVERING        "resilvering"
+#define        ZPOOL_CONFIG_SUSPENDED          "suspended"     /* not stored on disk */
+#define        ZPOOL_CONFIG_TIMESTAMP          "timestamp"     /* not stored on disk */
+#define        ZPOOL_CONFIG_BOOTFS             "bootfs"        /* not stored on disk */
+#define        ZPOOL_CONFIG_MISSING_DEVICES    "missing_vdevs" /* not stored on disk */
+#define        ZPOOL_CONFIG_LOAD_INFO          "load_info"     /* not stored on disk */
+/*
+ * The persistent vdev state is stored as separate values rather than a single
+ * 'vdev_state' entry.  This is because a device can be in multiple states, such
+ * as offline and degraded.
+ */
+#define        ZPOOL_CONFIG_OFFLINE            "offline"
+#define        ZPOOL_CONFIG_FAULTED            "faulted"
+#define        ZPOOL_CONFIG_DEGRADED           "degraded"
+#define        ZPOOL_CONFIG_REMOVED            "removed"
+#define        ZPOOL_CONFIG_FRU                "fru"
+#define        ZPOOL_CONFIG_AUX_STATE          "aux_state"
+
+/* Rewind policy parameters */
+#define        ZPOOL_REWIND_POLICY             "rewind-policy"
+#define        ZPOOL_REWIND_REQUEST            "rewind-request"
+#define        ZPOOL_REWIND_REQUEST_TXG        "rewind-request-txg"
+#define        ZPOOL_REWIND_META_THRESH        "rewind-meta-thresh"
+#define        ZPOOL_REWIND_DATA_THRESH        "rewind-data-thresh"
+
+/* Rewind data discovered */
+#define        ZPOOL_CONFIG_LOAD_TIME          "rewind_txg_ts"
+#define        ZPOOL_CONFIG_LOAD_DATA_ERRORS   "verify_data_errors"
+#define        ZPOOL_CONFIG_REWIND_TIME        "seconds_of_rewind"
+
+#define        VDEV_TYPE_ROOT                  "root"
+#define        VDEV_TYPE_MIRROR                "mirror"
+#define        VDEV_TYPE_REPLACING             "replacing"
+#define        VDEV_TYPE_RAIDZ                 "raidz"
+#define        VDEV_TYPE_DISK                  "disk"
+#define        VDEV_TYPE_FILE                  "file"
+#define        VDEV_TYPE_MISSING               "missing"
+#define        VDEV_TYPE_HOLE                  "hole"
+#define        VDEV_TYPE_SPARE                 "spare"
+#define        VDEV_TYPE_LOG                   "log"
+#define        VDEV_TYPE_L2CACHE               "l2cache"
+
+/*
+ * This is needed in userland to report the minimum necessary device size.
+ */
+#define        SPA_MINDEVSIZE          (64ULL << 20)
+
+/*
+ * The location of the pool configuration repository, shared between kernel and
+ * userland.
+ */
+#define        ZPOOL_CACHE             "/etc/zfs/zpool.cache"
+
+/*
+ * vdev states are ordered from least to most healthy.
+ * A vdev that's CANT_OPEN or below is considered unusable.
+ */
+typedef enum vdev_state {
+       VDEV_STATE_UNKNOWN = 0, /* Uninitialized vdev                   */
+       VDEV_STATE_CLOSED,      /* Not currently open                   */
+       VDEV_STATE_OFFLINE,     /* Not allowed to open                  */
+       VDEV_STATE_REMOVED,     /* Explicitly removed from system       */
+       VDEV_STATE_CANT_OPEN,   /* Tried to open, but failed            */
+       VDEV_STATE_FAULTED,     /* External request to fault device     */
+       VDEV_STATE_DEGRADED,    /* Replicated vdev with unhealthy kids  */
+       VDEV_STATE_HEALTHY      /* Presumed good                        */
+} vdev_state_t;
+
+#define        VDEV_STATE_ONLINE       VDEV_STATE_HEALTHY
+
+/*
+ * vdev aux states.  When a vdev is in the CANT_OPEN state, the aux field
+ * of the vdev stats structure uses these constants to distinguish why.
+ */
+typedef enum vdev_aux {
+       VDEV_AUX_NONE,          /* no error                             */
+       VDEV_AUX_OPEN_FAILED,   /* ldi_open_*() or vn_open() failed     */
+       VDEV_AUX_CORRUPT_DATA,  /* bad label or disk contents           */
+       VDEV_AUX_NO_REPLICAS,   /* insufficient number of replicas      */
+       VDEV_AUX_BAD_GUID_SUM,  /* vdev guid sum doesn't match          */
+       VDEV_AUX_TOO_SMALL,     /* vdev size is too small               */
+       VDEV_AUX_BAD_LABEL,     /* the label is OK but invalid          */
+       VDEV_AUX_VERSION_NEWER, /* on-disk version is too new           */
+       VDEV_AUX_VERSION_OLDER, /* on-disk version is too old           */
+       VDEV_AUX_SPARED,        /* hot spare used in another pool       */
+       VDEV_AUX_ERR_EXCEEDED,  /* too many errors                      */
+       VDEV_AUX_IO_FAILURE,    /* experienced I/O failure              */
+       VDEV_AUX_BAD_LOG,       /* cannot read log chain(s)             */
+       VDEV_AUX_EXTERNAL,      /* external diagnosis                   */
+       VDEV_AUX_SPLIT_POOL     /* vdev was split off into another pool */
+} vdev_aux_t;
+
+/*
+ * pool state.  The following states are written to disk as part of the normal
+ * SPA lifecycle: ACTIVE, EXPORTED, DESTROYED, SPARE, L2CACHE.  The remaining
+ * states are software abstractions used at various levels to communicate
+ * pool state.
+ */
+typedef enum pool_state {
+       POOL_STATE_ACTIVE = 0,          /* In active use                */
+       POOL_STATE_EXPORTED,            /* Explicitly exported          */
+       POOL_STATE_DESTROYED,           /* Explicitly destroyed         */
+       POOL_STATE_SPARE,               /* Reserved for hot spare use   */
+       POOL_STATE_L2CACHE,             /* Level 2 ARC device           */
+       POOL_STATE_UNINITIALIZED,       /* Internal spa_t state         */
+       POOL_STATE_UNAVAIL,             /* Internal libzfs state        */
+       POOL_STATE_POTENTIALLY_ACTIVE   /* Internal libzfs state        */
+} pool_state_t;
+
+/*
+ * Scan Functions.
+ */
+typedef enum pool_scan_func {
+       POOL_SCAN_NONE,
+       POOL_SCAN_SCRUB,
+       POOL_SCAN_RESILVER,
+       POOL_SCAN_FUNCS
+} pool_scan_func_t;
+
+/*
+ * ZIO types.  Needed to interpret vdev statistics below.
+ */
+typedef enum zio_type {
+       ZIO_TYPE_NULL = 0,
+       ZIO_TYPE_READ,
+       ZIO_TYPE_WRITE,
+       ZIO_TYPE_FREE,
+       ZIO_TYPE_CLAIM,
+       ZIO_TYPE_IOCTL,
+       ZIO_TYPES
+} zio_type_t;
+
+/*
+ * Pool statistics.  Note: all fields should be 64-bit because this
+ * is passed between kernel and userland as an nvlist uint64 array.
+ */
+typedef struct pool_scan_stat {
+       /* values stored on disk */
+       uint64_t        pss_func;       /* pool_scan_func_t */
+       uint64_t        pss_state;      /* dsl_scan_state_t */
+       uint64_t        pss_start_time; /* scan start time */
+       uint64_t        pss_end_time;   /* scan end time */
+       uint64_t        pss_to_examine; /* total bytes to scan */
+       uint64_t        pss_examined;   /* total examined bytes */
+       uint64_t        pss_to_process; /* total bytes to process */
+       uint64_t        pss_processed;  /* total processed bytes */
+       uint64_t        pss_errors;     /* scan errors  */
+
+       /* values not stored on disk */
+       uint64_t        pss_pass_exam;  /* examined bytes per scan pass */
+       uint64_t        pss_pass_start; /* start time of a scan pass */
+} pool_scan_stat_t;
+
+typedef enum dsl_scan_state {
+       DSS_NONE,
+       DSS_SCANNING,
+       DSS_FINISHED,
+       DSS_CANCELED,
+       DSS_NUM_STATES
+} dsl_scan_state_t;
+
+
+/*
+ * Vdev statistics.  Note: all fields should be 64-bit because this
+ * is passed between kernel and userland as an nvlist uint64 array.
+ */
+typedef struct vdev_stat {
+       hrtime_t        vs_timestamp;           /* time since vdev load */
+       uint64_t        vs_state;               /* vdev state           */
+       uint64_t        vs_aux;                 /* see vdev_aux_t       */
+       uint64_t        vs_alloc;               /* space allocated      */
+       uint64_t        vs_space;               /* total capacity       */
+       uint64_t        vs_dspace;              /* deflated capacity    */
+       uint64_t        vs_rsize;               /* replaceable dev size */
+       uint64_t        vs_ops[ZIO_TYPES];      /* operation count      */
+       uint64_t        vs_bytes[ZIO_TYPES];    /* bytes read/written   */
+       uint64_t        vs_read_errors;         /* read errors          */
+       uint64_t        vs_write_errors;        /* write errors         */
+       uint64_t        vs_checksum_errors;     /* checksum errors      */
+       uint64_t        vs_self_healed;         /* self-healed bytes    */
+       uint64_t        vs_scan_removing;       /* removing?    */
+       uint64_t        vs_scan_processed;      /* scan processed bytes */
+} vdev_stat_t;
+
+/*
+ * DDT statistics.  Note: all fields should be 64-bit because this
+ * is passed between kernel and userland as an nvlist uint64 array.
+ */
+typedef struct ddt_object {
+       uint64_t        ddo_count;      /* number of elments in ddt     */
+       uint64_t        ddo_dspace;     /* size of ddt on disk          */
+       uint64_t        ddo_mspace;     /* size of ddt in-core          */
+} ddt_object_t;
+
+typedef struct ddt_stat {
+       uint64_t        dds_blocks;     /* blocks                       */
+       uint64_t        dds_lsize;      /* logical size                 */
+       uint64_t        dds_psize;      /* physical size                */
+       uint64_t        dds_dsize;      /* deflated allocated size      */
+       uint64_t        dds_ref_blocks; /* referenced blocks            */
+       uint64_t        dds_ref_lsize;  /* referenced lsize * refcnt    */
+       uint64_t        dds_ref_psize;  /* referenced psize * refcnt    */
+       uint64_t        dds_ref_dsize;  /* referenced dsize * refcnt    */
+} ddt_stat_t;
+
+typedef struct ddt_histogram {
+       ddt_stat_t      ddh_stat[64];   /* power-of-two histogram buckets */
+} ddt_histogram_t;
+
+#define        ZVOL_DRIVER     "zvol"
+#define        ZFS_DRIVER      "zfs"
+#define        ZFS_DEV         "/dev/zfs"
+
+/* general zvol path */
+#define        ZVOL_DIR        "/dev"
+
+#define        ZVOL_MAJOR              230
+#define        ZVOL_MINOR_BITS         4
+#define        ZVOL_MINOR_MASK         ((1U << ZVOL_MINOR_BITS) - 1)
+#define        ZVOL_MINORS             (1 << 4)
+
+#define        ZVOL_PROP_NAME          "name"
+#define        ZVOL_DEFAULT_BLOCKSIZE  8192
+
+/*
+ * /dev/zfs ioctl numbers.
+ */
+#define        ZFS_IOC         ('Z' << 8)
+
+typedef enum zfs_ioc {
+       ZFS_IOC_POOL_CREATE = ZFS_IOC,
+       ZFS_IOC_POOL_DESTROY,
+       ZFS_IOC_POOL_IMPORT,
+       ZFS_IOC_POOL_EXPORT,
+       ZFS_IOC_POOL_CONFIGS,
+       ZFS_IOC_POOL_STATS,
+       ZFS_IOC_POOL_TRYIMPORT,
+       ZFS_IOC_POOL_SCAN,
+       ZFS_IOC_POOL_FREEZE,
+       ZFS_IOC_POOL_UPGRADE,
+       ZFS_IOC_POOL_GET_HISTORY,
+       ZFS_IOC_VDEV_ADD,
+       ZFS_IOC_VDEV_REMOVE,
+       ZFS_IOC_VDEV_SET_STATE,
+       ZFS_IOC_VDEV_ATTACH,
+       ZFS_IOC_VDEV_DETACH,
+       ZFS_IOC_VDEV_SETPATH,
+       ZFS_IOC_VDEV_SETFRU,
+       ZFS_IOC_OBJSET_STATS,
+       ZFS_IOC_OBJSET_ZPLPROPS,
+       ZFS_IOC_DATASET_LIST_NEXT,
+       ZFS_IOC_SNAPSHOT_LIST_NEXT,
+       ZFS_IOC_SET_PROP,
+       ZFS_IOC_CREATE_MINOR,
+       ZFS_IOC_REMOVE_MINOR,
+       ZFS_IOC_CREATE,
+       ZFS_IOC_DESTROY,
+       ZFS_IOC_ROLLBACK,
+       ZFS_IOC_RENAME,
+       ZFS_IOC_RECV,
+       ZFS_IOC_SEND,
+       ZFS_IOC_INJECT_FAULT,
+       ZFS_IOC_CLEAR_FAULT,
+       ZFS_IOC_INJECT_LIST_NEXT,
+       ZFS_IOC_ERROR_LOG,
+       ZFS_IOC_CLEAR,
+       ZFS_IOC_PROMOTE,
+       ZFS_IOC_DESTROY_SNAPS,
+       ZFS_IOC_SNAPSHOT,
+       ZFS_IOC_DSOBJ_TO_DSNAME,
+       ZFS_IOC_OBJ_TO_PATH,
+       ZFS_IOC_POOL_SET_PROPS,
+       ZFS_IOC_POOL_GET_PROPS,
+       ZFS_IOC_SET_FSACL,
+       ZFS_IOC_GET_FSACL,
+       ZFS_IOC_SHARE,
+       ZFS_IOC_INHERIT_PROP,
+       ZFS_IOC_SMB_ACL,
+       ZFS_IOC_USERSPACE_ONE,
+       ZFS_IOC_USERSPACE_MANY,
+       ZFS_IOC_USERSPACE_UPGRADE,
+       ZFS_IOC_HOLD,
+       ZFS_IOC_RELEASE,
+       ZFS_IOC_GET_HOLDS,
+       ZFS_IOC_OBJSET_RECVD_PROPS,
+       ZFS_IOC_VDEV_SPLIT,
+       ZFS_IOC_NEXT_OBJ,
+       ZFS_IOC_DIFF,
+       ZFS_IOC_TMP_SNAPSHOT,
+       ZFS_IOC_OBJ_TO_STATS,
+       ZFS_IOC_EVENTS_NEXT,
+       ZFS_IOC_EVENTS_CLEAR,
+} zfs_ioc_t;
+
+/*
+ * Internal SPA load state.  Used by FMA diagnosis engine.
+ */
+typedef enum {
+       SPA_LOAD_NONE,          /* no load in progress  */
+       SPA_LOAD_OPEN,          /* normal open          */
+       SPA_LOAD_IMPORT,        /* import in progress   */
+       SPA_LOAD_TRYIMPORT,     /* tryimport in progress */
+       SPA_LOAD_RECOVER,       /* recovery requested   */
+       SPA_LOAD_ERROR          /* load failed          */
+} spa_load_state_t;
+
+/*
+ * Bookmark name values.
+ */
+#define        ZPOOL_ERR_LIST          "error list"
+#define        ZPOOL_ERR_DATASET       "dataset"
+#define        ZPOOL_ERR_OBJECT        "object"
+
+#define        HIS_MAX_RECORD_LEN      (MAXPATHLEN + MAXPATHLEN + 1)
+
+/*
+ * The following are names used in the nvlist describing
+ * the pool's history log.
+ */
+#define        ZPOOL_HIST_RECORD       "history record"
+#define        ZPOOL_HIST_TIME         "history time"
+#define        ZPOOL_HIST_CMD          "history command"
+#define        ZPOOL_HIST_WHO          "history who"
+#define        ZPOOL_HIST_ZONE         "history zone"
+#define        ZPOOL_HIST_HOST         "history hostname"
+#define        ZPOOL_HIST_TXG          "history txg"
+#define        ZPOOL_HIST_INT_EVENT    "history internal event"
+#define        ZPOOL_HIST_INT_STR      "history internal str"
+
+/*
+ * Flags for ZFS_IOC_VDEV_SET_STATE
+ */
+#define        ZFS_ONLINE_CHECKREMOVE  0x1
+#define        ZFS_ONLINE_UNSPARE      0x2
+#define        ZFS_ONLINE_FORCEFAULT   0x4
+#define        ZFS_ONLINE_EXPAND       0x8
+#define        ZFS_OFFLINE_TEMPORARY   0x1
+
+/*
+ * Flags for ZFS_IOC_POOL_IMPORT
+ */
+#define        ZFS_IMPORT_NORMAL       0x0
+#define        ZFS_IMPORT_VERBATIM     0x1
+#define        ZFS_IMPORT_ANY_HOST     0x2
+#define        ZFS_IMPORT_MISSING_LOG  0x4
+#define        ZFS_IMPORT_ONLY         0x8
+
+/*
+ * Sysevent payload members.  ZFS will generate the following sysevents with the
+ * given payloads:
+ *
+ *     ESC_ZFS_RESILVER_START
+ *     ESC_ZFS_RESILVER_END
+ *     ESC_ZFS_POOL_DESTROY
+ *
+ *             ZFS_EV_POOL_NAME        DATA_TYPE_STRING
+ *             ZFS_EV_POOL_GUID        DATA_TYPE_UINT64
+ *
+ *     ESC_ZFS_VDEV_REMOVE
+ *     ESC_ZFS_VDEV_CLEAR
+ *     ESC_ZFS_VDEV_CHECK
+ *
+ *             ZFS_EV_POOL_NAME        DATA_TYPE_STRING
+ *             ZFS_EV_POOL_GUID        DATA_TYPE_UINT64
+ *             ZFS_EV_VDEV_PATH        DATA_TYPE_STRING        (optional)
+ *             ZFS_EV_VDEV_GUID        DATA_TYPE_UINT64
+ */
+#define        ZFS_EV_POOL_NAME        "pool_name"
+#define        ZFS_EV_POOL_GUID        "pool_guid"
+#define        ZFS_EV_VDEV_PATH        "vdev_path"
+#define        ZFS_EV_VDEV_GUID        "vdev_guid"
+
+/*
+ * Note: This is encoded on-disk, so new events must be added to the
+ * end, and unused events can not be removed.  Be sure to edit
+ * libzfs_pool.c: hist_event_table[].
+ */
+typedef enum history_internal_events {
+       LOG_NO_EVENT = 0,
+       LOG_POOL_CREATE,
+       LOG_POOL_VDEV_ADD,
+       LOG_POOL_REMOVE,
+       LOG_POOL_DESTROY,
+       LOG_POOL_EXPORT,
+       LOG_POOL_IMPORT,
+       LOG_POOL_VDEV_ATTACH,
+       LOG_POOL_VDEV_REPLACE,
+       LOG_POOL_VDEV_DETACH,
+       LOG_POOL_VDEV_ONLINE,
+       LOG_POOL_VDEV_OFFLINE,
+       LOG_POOL_UPGRADE,
+       LOG_POOL_CLEAR,
+       LOG_POOL_SCAN,
+       LOG_POOL_PROPSET,
+       LOG_DS_CREATE,
+       LOG_DS_CLONE,
+       LOG_DS_DESTROY,
+       LOG_DS_DESTROY_BEGIN,
+       LOG_DS_INHERIT,
+       LOG_DS_PROPSET,
+       LOG_DS_QUOTA,
+       LOG_DS_PERM_UPDATE,
+       LOG_DS_PERM_REMOVE,
+       LOG_DS_PERM_WHO_REMOVE,
+       LOG_DS_PROMOTE,
+       LOG_DS_RECEIVE,
+       LOG_DS_RENAME,
+       LOG_DS_RESERVATION,
+       LOG_DS_REPLAY_INC_SYNC,
+       LOG_DS_REPLAY_FULL_SYNC,
+       LOG_DS_ROLLBACK,
+       LOG_DS_SNAPSHOT,
+       LOG_DS_UPGRADE,
+       LOG_DS_REFQUOTA,
+       LOG_DS_REFRESERV,
+       LOG_POOL_SCAN_DONE,
+       LOG_DS_USER_HOLD,
+       LOG_DS_USER_RELEASE,
+       LOG_POOL_SPLIT,
+       LOG_END
+} history_internal_events_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_FS_ZFS_H */
diff --git a/include/sys/metaslab.h b/include/sys/metaslab.h
new file mode 100644 (file)
index 0000000..583d630
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _SYS_METASLAB_H
+#define        _SYS_METASLAB_H
+
+#include <sys/spa.h>
+#include <sys/space_map.h>
+#include <sys/txg.h>
+#include <sys/zio.h>
+#include <sys/avl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern space_map_ops_t *zfs_metaslab_ops;
+
+extern metaslab_t *metaslab_init(metaslab_group_t *mg, space_map_obj_t *smo,
+    uint64_t start, uint64_t size, uint64_t txg);
+extern void metaslab_fini(metaslab_t *msp);
+extern void metaslab_sync(metaslab_t *msp, uint64_t txg);
+extern void metaslab_sync_done(metaslab_t *msp, uint64_t txg);
+extern void metaslab_sync_reassess(metaslab_group_t *mg);
+
+#define        METASLAB_HINTBP_FAVOR   0x0
+#define        METASLAB_HINTBP_AVOID   0x1
+#define        METASLAB_GANG_HEADER    0x2
+
+extern int metaslab_alloc(spa_t *spa, metaslab_class_t *mc, uint64_t psize,
+    blkptr_t *bp, int ncopies, uint64_t txg, blkptr_t *hintbp, int flags);
+extern void metaslab_free(spa_t *spa, const blkptr_t *bp, uint64_t txg,
+    boolean_t now);
+extern int metaslab_claim(spa_t *spa, const blkptr_t *bp, uint64_t txg);
+
+extern metaslab_class_t *metaslab_class_create(spa_t *spa,
+    space_map_ops_t *ops);
+extern void metaslab_class_destroy(metaslab_class_t *mc);
+extern int metaslab_class_validate(metaslab_class_t *mc);
+
+extern void metaslab_class_space_update(metaslab_class_t *mc,
+    int64_t alloc_delta, int64_t defer_delta,
+    int64_t space_delta, int64_t dspace_delta);
+extern uint64_t metaslab_class_get_alloc(metaslab_class_t *mc);
+extern uint64_t metaslab_class_get_space(metaslab_class_t *mc);
+extern uint64_t metaslab_class_get_dspace(metaslab_class_t *mc);
+extern uint64_t metaslab_class_get_deferred(metaslab_class_t *mc);
+
+extern metaslab_group_t *metaslab_group_create(metaslab_class_t *mc,
+    vdev_t *vd);
+extern void metaslab_group_destroy(metaslab_group_t *mg);
+extern void metaslab_group_activate(metaslab_group_t *mg);
+extern void metaslab_group_passivate(metaslab_group_t *mg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_METASLAB_H */
diff --git a/include/sys/metaslab_impl.h b/include/sys/metaslab_impl.h
new file mode 100644 (file)
index 0000000..07988dd
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_METASLAB_IMPL_H
+#define        _SYS_METASLAB_IMPL_H
+
+#include <sys/metaslab.h>
+#include <sys/space_map.h>
+#include <sys/vdev.h>
+#include <sys/txg.h>
+#include <sys/avl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct metaslab_class {
+       spa_t                   *mc_spa;
+       metaslab_group_t        *mc_rotor;
+       space_map_ops_t         *mc_ops;
+       uint64_t                mc_aliquot;
+       uint64_t                mc_alloc;       /* total allocated space */
+       uint64_t                mc_deferred;    /* total deferred frees */
+       uint64_t                mc_space;       /* total space (alloc + free) */
+       uint64_t                mc_dspace;      /* total deflated space */
+};
+
+struct metaslab_group {
+       kmutex_t                mg_lock;
+       avl_tree_t              mg_metaslab_tree;
+       uint64_t                mg_aliquot;
+       uint64_t                mg_bonus_area;
+       int64_t                 mg_bias;
+       int64_t                 mg_activation_count;
+       metaslab_class_t        *mg_class;
+       vdev_t                  *mg_vd;
+       metaslab_group_t        *mg_prev;
+       metaslab_group_t        *mg_next;
+};
+
+/*
+ * Each metaslab's free space is tracked in space map object in the MOS,
+ * which is only updated in syncing context.  Each time we sync a txg,
+ * we append the allocs and frees from that txg to the space map object.
+ * When the txg is done syncing, metaslab_sync_done() updates ms_smo
+ * to ms_smo_syncing.  Everything in ms_smo is always safe to allocate.
+ */
+struct metaslab {
+       kmutex_t        ms_lock;        /* metaslab lock                */
+       space_map_obj_t ms_smo;         /* synced space map object      */
+       space_map_obj_t ms_smo_syncing; /* syncing space map object     */
+       space_map_t     ms_allocmap[TXG_SIZE];  /* allocated this txg   */
+       space_map_t     ms_freemap[TXG_SIZE];   /* freed this txg       */
+       space_map_t     ms_defermap[TXG_DEFER_SIZE]; /* deferred frees  */
+       space_map_t     ms_map;         /* in-core free space map       */
+       int64_t         ms_deferspace;  /* sum of ms_defermap[] space   */
+       uint64_t        ms_weight;      /* weight vs. others in group   */
+       metaslab_group_t *ms_group;     /* metaslab group               */
+       avl_node_t      ms_group_node;  /* node in metaslab group tree  */
+       txg_node_t      ms_txg_node;    /* per-txg dirty metaslab links */
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_METASLAB_IMPL_H */
diff --git a/include/sys/nvpair.h b/include/sys/nvpair.h
new file mode 100644 (file)
index 0000000..30ff4e0
--- /dev/null
@@ -0,0 +1,281 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_NVPAIR_H
+#define        _SYS_NVPAIR_H
+
+#include <sys/types.h>
+#include <sys/errno.h>
+#include <sys/va_list.h>
+
+#if defined(_KERNEL) && !defined(_BOOT)
+#include <sys/kmem.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+       DATA_TYPE_UNKNOWN = 0,
+       DATA_TYPE_BOOLEAN,
+       DATA_TYPE_BYTE,
+       DATA_TYPE_INT16,
+       DATA_TYPE_UINT16,
+       DATA_TYPE_INT32,
+       DATA_TYPE_UINT32,
+       DATA_TYPE_INT64,
+       DATA_TYPE_UINT64,
+       DATA_TYPE_STRING,
+       DATA_TYPE_BYTE_ARRAY,
+       DATA_TYPE_INT16_ARRAY,
+       DATA_TYPE_UINT16_ARRAY,
+       DATA_TYPE_INT32_ARRAY,
+       DATA_TYPE_UINT32_ARRAY,
+       DATA_TYPE_INT64_ARRAY,
+       DATA_TYPE_UINT64_ARRAY,
+       DATA_TYPE_STRING_ARRAY,
+       DATA_TYPE_HRTIME,
+       DATA_TYPE_NVLIST,
+       DATA_TYPE_NVLIST_ARRAY,
+       DATA_TYPE_BOOLEAN_VALUE,
+       DATA_TYPE_INT8,
+       DATA_TYPE_UINT8,
+       DATA_TYPE_BOOLEAN_ARRAY,
+       DATA_TYPE_INT8_ARRAY,
+#if !defined(_KERNEL)
+       DATA_TYPE_UINT8_ARRAY,
+       DATA_TYPE_DOUBLE
+#else
+       DATA_TYPE_UINT8_ARRAY
+#endif
+} data_type_t;
+
+typedef struct nvpair {
+       int32_t nvp_size;       /* size of this nvpair */
+       int16_t nvp_name_sz;    /* length of name string */
+       int16_t nvp_reserve;    /* not used */
+       int32_t nvp_value_elem; /* number of elements for array types */
+       data_type_t nvp_type;   /* type of value */
+       /* name string */
+       /* aligned ptr array for string arrays */
+       /* aligned array of data for value */
+} nvpair_t;
+
+/* nvlist header */
+typedef struct nvlist {
+       int32_t         nvl_version;
+       uint32_t        nvl_nvflag;     /* persistent flags */
+       uint64_t        nvl_priv;       /* ptr to private data if not packed */
+       uint32_t        nvl_flag;
+       int32_t         nvl_pad;        /* currently not used, for alignment */
+} nvlist_t;
+
+/* nvp implementation version */
+#define        NV_VERSION      0
+
+/* nvlist pack encoding */
+#define        NV_ENCODE_NATIVE        0
+#define        NV_ENCODE_XDR           1
+
+/* nvlist persistent unique name flags, stored in nvl_nvflags */
+#define        NV_UNIQUE_NAME          0x1
+#define        NV_UNIQUE_NAME_TYPE     0x2
+
+/* nvlist lookup pairs related flags */
+#define        NV_FLAG_NOENTOK         0x1
+
+/* convenience macros */
+#define        NV_ALIGN(x)             (((ulong_t)(x) + 7ul) & ~7ul)
+#define        NV_ALIGN4(x)            (((x) + 3) & ~3)
+
+#define        NVP_SIZE(nvp)           ((nvp)->nvp_size)
+#define        NVP_NAME(nvp)           ((char *)(nvp) + sizeof (nvpair_t))
+#define        NVP_TYPE(nvp)           ((nvp)->nvp_type)
+#define        NVP_NELEM(nvp)          ((nvp)->nvp_value_elem)
+#define        NVP_VALUE(nvp)          ((char *)(nvp) + NV_ALIGN(sizeof (nvpair_t) \
+                               + (nvp)->nvp_name_sz))
+
+#define        NVL_VERSION(nvl)        ((nvl)->nvl_version)
+#define        NVL_SIZE(nvl)           ((nvl)->nvl_size)
+#define        NVL_FLAG(nvl)           ((nvl)->nvl_flag)
+
+/* NV allocator framework */
+typedef struct nv_alloc_ops nv_alloc_ops_t;
+
+typedef struct nv_alloc {
+       const nv_alloc_ops_t *nva_ops;
+       void *nva_arg;
+} nv_alloc_t;
+
+struct nv_alloc_ops {
+       int (*nv_ao_init)(nv_alloc_t *, __va_list);
+       void (*nv_ao_fini)(nv_alloc_t *);
+       void *(*nv_ao_alloc)(nv_alloc_t *, size_t);
+       void (*nv_ao_free)(nv_alloc_t *, void *, size_t);
+       void (*nv_ao_reset)(nv_alloc_t *);
+};
+
+extern const nv_alloc_ops_t *nv_fixed_ops;
+extern nv_alloc_t *nv_alloc_nosleep;
+
+#if defined(_KERNEL) && !defined(_BOOT)
+extern nv_alloc_t *nv_alloc_sleep;
+#endif
+
+int nv_alloc_init(nv_alloc_t *, const nv_alloc_ops_t *, /* args */ ...);
+void nv_alloc_reset(nv_alloc_t *);
+void nv_alloc_fini(nv_alloc_t *);
+
+/* list management */
+int nvlist_alloc(nvlist_t **, uint_t, int);
+void nvlist_free(nvlist_t *);
+int nvlist_size(nvlist_t *, size_t *, int);
+int nvlist_pack(nvlist_t *, char **, size_t *, int, int);
+int nvlist_unpack(char *, size_t, nvlist_t **, int);
+int nvlist_dup(nvlist_t *, nvlist_t **, int);
+int nvlist_merge(nvlist_t *, nvlist_t *, int);
+
+uint_t nvlist_nvflag(nvlist_t *);
+
+int nvlist_xalloc(nvlist_t **, uint_t, nv_alloc_t *);
+int nvlist_xpack(nvlist_t *, char **, size_t *, int, nv_alloc_t *);
+int nvlist_xunpack(char *, size_t, nvlist_t **, nv_alloc_t *);
+int nvlist_xdup(nvlist_t *, nvlist_t **, nv_alloc_t *);
+nv_alloc_t *nvlist_lookup_nv_alloc(nvlist_t *);
+
+int nvlist_add_nvpair(nvlist_t *, nvpair_t *);
+int nvlist_add_boolean(nvlist_t *, const char *);
+int nvlist_add_boolean_value(nvlist_t *, const char *, boolean_t);
+int nvlist_add_byte(nvlist_t *, const char *, uchar_t);
+int nvlist_add_int8(nvlist_t *, const char *, int8_t);
+int nvlist_add_uint8(nvlist_t *, const char *, uint8_t);
+int nvlist_add_int16(nvlist_t *, const char *, int16_t);
+int nvlist_add_uint16(nvlist_t *, const char *, uint16_t);
+int nvlist_add_int32(nvlist_t *, const char *, int32_t);
+int nvlist_add_uint32(nvlist_t *, const char *, uint32_t);
+int nvlist_add_int64(nvlist_t *, const char *, int64_t);
+int nvlist_add_uint64(nvlist_t *, const char *, uint64_t);
+int nvlist_add_string(nvlist_t *, const char *, const char *);
+int nvlist_add_nvlist(nvlist_t *, const char *, nvlist_t *);
+int nvlist_add_boolean_array(nvlist_t *, const char *, boolean_t *, uint_t);
+int nvlist_add_byte_array(nvlist_t *, const char *, uchar_t *, uint_t);
+int nvlist_add_int8_array(nvlist_t *, const char *, int8_t *, uint_t);
+int nvlist_add_uint8_array(nvlist_t *, const char *, uint8_t *, uint_t);
+int nvlist_add_int16_array(nvlist_t *, const char *, int16_t *, uint_t);
+int nvlist_add_uint16_array(nvlist_t *, const char *, uint16_t *, uint_t);
+int nvlist_add_int32_array(nvlist_t *, const char *, int32_t *, uint_t);
+int nvlist_add_uint32_array(nvlist_t *, const char *, uint32_t *, uint_t);
+int nvlist_add_int64_array(nvlist_t *, const char *, int64_t *, uint_t);
+int nvlist_add_uint64_array(nvlist_t *, const char *, uint64_t *, uint_t);
+int nvlist_add_string_array(nvlist_t *, const char *, char *const *, uint_t);
+int nvlist_add_nvlist_array(nvlist_t *, const char *, nvlist_t **, uint_t);
+int nvlist_add_hrtime(nvlist_t *, const char *, hrtime_t);
+#if !defined(_KERNEL)
+int nvlist_add_double(nvlist_t *, const char *, double);
+#endif
+
+int nvlist_remove(nvlist_t *, const char *, data_type_t);
+int nvlist_remove_all(nvlist_t *, const char *);
+int nvlist_remove_nvpair(nvlist_t *, nvpair_t *);
+
+int nvlist_lookup_boolean(nvlist_t *, const char *);
+int nvlist_lookup_boolean_value(nvlist_t *, const char *, boolean_t *);
+int nvlist_lookup_byte(nvlist_t *, const char *, uchar_t *);
+int nvlist_lookup_int8(nvlist_t *, const char *, int8_t *);
+int nvlist_lookup_uint8(nvlist_t *, const char *, uint8_t *);
+int nvlist_lookup_int16(nvlist_t *, const char *, int16_t *);
+int nvlist_lookup_uint16(nvlist_t *, const char *, uint16_t *);
+int nvlist_lookup_int32(nvlist_t *, const char *, int32_t *);
+int nvlist_lookup_uint32(nvlist_t *, const char *, uint32_t *);
+int nvlist_lookup_int64(nvlist_t *, const char *, int64_t *);
+int nvlist_lookup_uint64(nvlist_t *, const char *, uint64_t *);
+int nvlist_lookup_string(nvlist_t *, const char *, char **);
+int nvlist_lookup_nvlist(nvlist_t *, const char *, nvlist_t **);
+int nvlist_lookup_boolean_array(nvlist_t *, const char *,
+    boolean_t **, uint_t *);
+int nvlist_lookup_byte_array(nvlist_t *, const char *, uchar_t **, uint_t *);
+int nvlist_lookup_int8_array(nvlist_t *, const char *, int8_t **, uint_t *);
+int nvlist_lookup_uint8_array(nvlist_t *, const char *, uint8_t **, uint_t *);
+int nvlist_lookup_int16_array(nvlist_t *, const char *, int16_t **, uint_t *);
+int nvlist_lookup_uint16_array(nvlist_t *, const char *, uint16_t **, uint_t *);
+int nvlist_lookup_int32_array(nvlist_t *, const char *, int32_t **, uint_t *);
+int nvlist_lookup_uint32_array(nvlist_t *, const char *, uint32_t **, uint_t *);
+int nvlist_lookup_int64_array(nvlist_t *, const char *, int64_t **, uint_t *);
+int nvlist_lookup_uint64_array(nvlist_t *, const char *, uint64_t **, uint_t *);
+int nvlist_lookup_string_array(nvlist_t *, const char *, char ***, uint_t *);
+int nvlist_lookup_nvlist_array(nvlist_t *, const char *,
+    nvlist_t ***, uint_t *);
+int nvlist_lookup_hrtime(nvlist_t *, const char *, hrtime_t *);
+int nvlist_lookup_pairs(nvlist_t *, int, ...);
+#if !defined(_KERNEL)
+int nvlist_lookup_double(nvlist_t *, const char *, double *);
+#endif
+
+int nvlist_lookup_nvpair(nvlist_t *, const char *, nvpair_t **);
+int nvlist_lookup_nvpair_embedded_index(nvlist_t *, const char *, nvpair_t **,
+    int *, char **);
+boolean_t nvlist_exists(nvlist_t *, const char *);
+boolean_t nvlist_empty(nvlist_t *);
+
+/* processing nvpair */
+nvpair_t *nvlist_next_nvpair(nvlist_t *, nvpair_t *);
+nvpair_t *nvlist_prev_nvpair(nvlist_t *, nvpair_t *);
+char *nvpair_name(nvpair_t *);
+data_type_t nvpair_type(nvpair_t *);
+int nvpair_type_is_array(nvpair_t *);
+int nvpair_value_boolean_value(nvpair_t *, boolean_t *);
+int nvpair_value_byte(nvpair_t *, uchar_t *);
+int nvpair_value_int8(nvpair_t *, int8_t *);
+int nvpair_value_uint8(nvpair_t *, uint8_t *);
+int nvpair_value_int16(nvpair_t *, int16_t *);
+int nvpair_value_uint16(nvpair_t *, uint16_t *);
+int nvpair_value_int32(nvpair_t *, int32_t *);
+int nvpair_value_uint32(nvpair_t *, uint32_t *);
+int nvpair_value_int64(nvpair_t *, int64_t *);
+int nvpair_value_uint64(nvpair_t *, uint64_t *);
+int nvpair_value_string(nvpair_t *, char **);
+int nvpair_value_nvlist(nvpair_t *, nvlist_t **);
+int nvpair_value_boolean_array(nvpair_t *, boolean_t **, uint_t *);
+int nvpair_value_byte_array(nvpair_t *, uchar_t **, uint_t *);
+int nvpair_value_int8_array(nvpair_t *, int8_t **, uint_t *);
+int nvpair_value_uint8_array(nvpair_t *, uint8_t **, uint_t *);
+int nvpair_value_int16_array(nvpair_t *, int16_t **, uint_t *);
+int nvpair_value_uint16_array(nvpair_t *, uint16_t **, uint_t *);
+int nvpair_value_int32_array(nvpair_t *, int32_t **, uint_t *);
+int nvpair_value_uint32_array(nvpair_t *, uint32_t **, uint_t *);
+int nvpair_value_int64_array(nvpair_t *, int64_t **, uint_t *);
+int nvpair_value_uint64_array(nvpair_t *, uint64_t **, uint_t *);
+int nvpair_value_string_array(nvpair_t *, char ***, uint_t *);
+int nvpair_value_nvlist_array(nvpair_t *, nvlist_t ***, uint_t *);
+int nvpair_value_hrtime(nvpair_t *, hrtime_t *);
+#if !defined(_KERNEL)
+int nvpair_value_double(nvpair_t *, double *);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_NVPAIR_H */
diff --git a/include/sys/nvpair_impl.h b/include/sys/nvpair_impl.h
new file mode 100644 (file)
index 0000000..b851ddd
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _NVPAIR_IMPL_H
+#define        _NVPAIR_IMPL_H
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/nvpair.h>
+
+/*
+ * The structures here provided for information and debugging purposes only
+ * may be changed in the future.
+ */
+
+/*
+ * implementation linked list for pre-packed data
+ */
+typedef struct i_nvp i_nvp_t;
+
+struct i_nvp {
+       union {
+               uint64_t        _nvi_align;     /* ensure alignment */
+               struct {
+                       i_nvp_t *_nvi_next;     /* pointer to next nvpair */
+                       i_nvp_t *_nvi_prev;     /* pointer to prev nvpair */
+               } _nvi;
+       } _nvi_un;
+       nvpair_t nvi_nvp;                       /* nvpair */
+};
+#define        nvi_next        _nvi_un._nvi._nvi_next
+#define        nvi_prev        _nvi_un._nvi._nvi_prev
+
+typedef struct {
+       i_nvp_t         *nvp_list;      /* linked list of nvpairs */
+       i_nvp_t         *nvp_last;      /* last nvpair */
+       i_nvp_t         *nvp_curr;      /* current walker nvpair */
+       nv_alloc_t      *nvp_nva;       /* pluggable allocator */
+       uint32_t        nvp_stat;       /* internal state */
+} nvpriv_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _NVPAIR_IMPL_H */
diff --git a/include/sys/refcount.h b/include/sys/refcount.h
new file mode 100644 (file)
index 0000000..1752c64
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_REFCOUNT_H
+#define        _SYS_REFCOUNT_H
+
+#include <sys/inttypes.h>
+#include <sys/list.h>
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * If the reference is held only by the calling function and not any
+ * particular object, use FTAG (which is a string) for the holder_tag.
+ * Otherwise, use the object that holds the reference.
+ */
+#define        FTAG ((char *)__func__)
+
+#ifdef ZFS_DEBUG
+typedef struct reference {
+       list_node_t ref_link;
+       void *ref_holder;
+       uint64_t ref_number;
+       uint8_t *ref_removed;
+} reference_t;
+
+typedef struct refcount {
+       kmutex_t rc_mtx;
+       list_t rc_list;
+       list_t rc_removed;
+       int64_t rc_count;
+       int64_t rc_removed_count;
+} refcount_t;
+
+/* Note: refcount_t must be initialized with refcount_create() */
+
+void refcount_create(refcount_t *rc);
+void refcount_destroy(refcount_t *rc);
+void refcount_destroy_many(refcount_t *rc, uint64_t number);
+int refcount_is_zero(refcount_t *rc);
+int64_t refcount_count(refcount_t *rc);
+int64_t refcount_add(refcount_t *rc, void *holder_tag);
+int64_t refcount_remove(refcount_t *rc, void *holder_tag);
+int64_t refcount_add_many(refcount_t *rc, uint64_t number, void *holder_tag);
+int64_t refcount_remove_many(refcount_t *rc, uint64_t number, void *holder_tag);
+void refcount_transfer(refcount_t *dst, refcount_t *src);
+
+void refcount_init(void);
+void refcount_fini(void);
+
+#else  /* ZFS_DEBUG */
+
+typedef struct refcount {
+       uint64_t rc_count;
+} refcount_t;
+
+#define        refcount_create(rc) ((rc)->rc_count = 0)
+#define        refcount_destroy(rc) ((rc)->rc_count = 0)
+#define        refcount_destroy_many(rc, number) ((rc)->rc_count = 0)
+#define        refcount_is_zero(rc) ((rc)->rc_count == 0)
+#define        refcount_count(rc) ((rc)->rc_count)
+#define        refcount_add(rc, holder) atomic_add_64_nv(&(rc)->rc_count, 1)
+#define        refcount_remove(rc, holder) atomic_add_64_nv(&(rc)->rc_count, -1)
+#define        refcount_add_many(rc, number, holder) \
+       atomic_add_64_nv(&(rc)->rc_count, number)
+#define        refcount_remove_many(rc, number, holder) \
+       atomic_add_64_nv(&(rc)->rc_count, -number)
+#define        refcount_transfer(dst, src) { \
+       uint64_t __tmp = (src)->rc_count; \
+       atomic_add_64(&(src)->rc_count, -__tmp); \
+       atomic_add_64(&(dst)->rc_count, __tmp); \
+}
+
+#define        refcount_init()
+#define        refcount_fini()
+
+#endif /* ZFS_DEBUG */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_REFCOUNT_H */
diff --git a/include/sys/rrwlock.h b/include/sys/rrwlock.h
new file mode 100644 (file)
index 0000000..798a015
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SYS_RR_RW_LOCK_H
+#define        _SYS_RR_RW_LOCK_H
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/inttypes.h>
+#include <sys/zfs_context.h>
+#include <sys/refcount.h>
+
+/*
+ * A reader-writer lock implementation that allows re-entrant reads, but
+ * still gives writers priority on "new" reads.
+ *
+ * See rrwlock.c for more details about the implementation.
+ *
+ * Fields of the rrwlock_t structure:
+ * - rr_lock: protects modification and reading of rrwlock_t fields
+ * - rr_cv: cv for waking up readers or waiting writers
+ * - rr_writer: thread id of the current writer
+ * - rr_anon_rount: number of active anonymous readers
+ * - rr_linked_rcount: total number of non-anonymous active readers
+ * - rr_writer_wanted: a writer wants the lock
+ */
+typedef struct rrwlock {
+       kmutex_t        rr_lock;
+       kcondvar_t      rr_cv;
+       kthread_t       *rr_writer;
+       refcount_t      rr_anon_rcount;
+       refcount_t      rr_linked_rcount;
+       boolean_t       rr_writer_wanted;
+} rrwlock_t;
+
+/*
+ * 'tag' is used in reference counting tracking.  The
+ * 'tag' must be the same in a rrw_enter() as in its
+ * corresponding rrw_exit().
+ */
+void rrw_init(rrwlock_t *rrl);
+void rrw_destroy(rrwlock_t *rrl);
+void rrw_enter(rrwlock_t *rrl, krw_t rw, void *tag);
+void rrw_exit(rrwlock_t *rrl, void *tag);
+boolean_t rrw_held(rrwlock_t *rrl, krw_t rw);
+
+#define        RRW_READ_HELD(x)        rrw_held(x, RW_READER)
+#define        RRW_WRITE_HELD(x)       rrw_held(x, RW_WRITER)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_RR_RW_LOCK_H */
diff --git a/include/sys/sa.h b/include/sys/sa.h
new file mode 100644 (file)
index 0000000..c8b9247
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_SA_H
+#define        _SYS_SA_H
+
+#include <sys/dmu.h>
+
+/*
+ * Currently available byteswap functions.
+ * If it all possible new attributes should used
+ * one of the already defined byteswap functions.
+ * If a new byteswap function is added then the
+ * ZPL/Pool version will need to be bumped.
+ */
+
+typedef enum sa_bswap_type {
+       SA_UINT64_ARRAY,
+       SA_UINT32_ARRAY,
+       SA_UINT16_ARRAY,
+       SA_UINT8_ARRAY,
+       SA_ACL,
+} sa_bswap_type_t;
+
+typedef uint16_t       sa_attr_type_t;
+
+/*
+ * Attribute to register support for.
+ */
+typedef struct sa_attr_reg {
+       char                    *sa_name;       /* attribute name */
+       uint16_t                sa_length;
+       sa_bswap_type_t         sa_byteswap;    /* bswap functon enum */
+       sa_attr_type_t          sa_attr; /* filled in during registration */
+} sa_attr_reg_t;
+
+
+typedef void (sa_data_locator_t)(void **, uint32_t *, uint32_t,
+    boolean_t, void *userptr);
+
+/*
+ * array of attributes to store.
+ *
+ * This array should be treated as opaque/private data.
+ * The SA_BULK_ADD_ATTR() macro should be used for manipulating
+ * the array.
+ *
+ * When sa_replace_all_by_template() is used the attributes
+ * will be stored in the order defined in the array, except that
+ * the attributes may be split between the bonus and the spill buffer
+ *
+ */
+typedef struct sa_bulk_attr {
+       void                    *sa_data;
+       sa_data_locator_t       *sa_data_func;
+       uint16_t                sa_length;
+       sa_attr_type_t          sa_attr;
+       /* the following are private to the sa framework */
+       void                    *sa_addr;
+       uint16_t                sa_buftype;
+       uint16_t                sa_size;
+} sa_bulk_attr_t;
+
+
+/*
+ * special macro for adding entries for bulk attr support
+ * bulk - sa_bulk_attr_t
+ * count - integer that will be incremented during each add
+ * attr - attribute to manipulate
+ * func - function for accessing data.
+ * data - pointer to data.
+ * len - length of data
+ */
+
+#define        SA_ADD_BULK_ATTR(b, idx, attr, func, data, len) \
+{ \
+       b[idx].sa_attr = attr;\
+       b[idx].sa_data_func = func; \
+       b[idx].sa_data = data; \
+       b[idx++].sa_length = len; \
+}
+
+typedef struct sa_os sa_os_t;
+
+typedef enum sa_handle_type {
+       SA_HDL_SHARED,
+       SA_HDL_PRIVATE
+} sa_handle_type_t;
+
+struct sa_handle;
+typedef void *sa_lookup_tab_t;
+typedef struct sa_handle sa_handle_t;
+
+typedef void (sa_update_cb_t)(sa_handle_t *, dmu_tx_t *tx);
+
+int sa_handle_get(objset_t *, uint64_t, void *userp,
+    sa_handle_type_t, sa_handle_t **);
+int sa_handle_get_from_db(objset_t *, dmu_buf_t *, void *userp,
+    sa_handle_type_t, sa_handle_t **);
+void sa_handle_destroy(sa_handle_t *);
+int sa_buf_hold(objset_t *, uint64_t, void *, dmu_buf_t **);
+void sa_buf_rele(dmu_buf_t *, void *);
+int sa_lookup(sa_handle_t *, sa_attr_type_t, void *buf, uint32_t buflen);
+int sa_update(sa_handle_t *, sa_attr_type_t, void *buf,
+    uint32_t buflen, dmu_tx_t *);
+int sa_remove(sa_handle_t *, sa_attr_type_t, dmu_tx_t *);
+int sa_bulk_lookup(sa_handle_t *, sa_bulk_attr_t *, int count);
+int sa_bulk_lookup_locked(sa_handle_t *, sa_bulk_attr_t *, int count);
+int sa_bulk_update(sa_handle_t *, sa_bulk_attr_t *, int count, dmu_tx_t *);
+int sa_size(sa_handle_t *, sa_attr_type_t, int *);
+int sa_update_from_cb(sa_handle_t *, sa_attr_type_t,
+    uint32_t buflen, sa_data_locator_t *, void *userdata, dmu_tx_t *);
+void sa_object_info(sa_handle_t *, dmu_object_info_t *);
+void sa_object_size(sa_handle_t *, uint32_t *, u_longlong_t *);
+void sa_update_user(sa_handle_t *, sa_handle_t *);
+void *sa_get_userdata(sa_handle_t *);
+void sa_set_userp(sa_handle_t *, void *);
+dmu_buf_t *sa_get_db(sa_handle_t *);
+uint64_t sa_handle_object(sa_handle_t *);
+boolean_t sa_attr_would_spill(sa_handle_t *, sa_attr_type_t, int size);
+void sa_register_update_callback(objset_t *, sa_update_cb_t *);
+int sa_setup(objset_t *, uint64_t, sa_attr_reg_t *, int, sa_attr_type_t **);
+void sa_tear_down(objset_t *);
+int sa_replace_all_by_template(sa_handle_t *, sa_bulk_attr_t *,
+    int, dmu_tx_t *);
+int sa_replace_all_by_template_locked(sa_handle_t *, sa_bulk_attr_t *,
+    int, dmu_tx_t *);
+boolean_t sa_enabled(objset_t *);
+void sa_cache_init(void);
+void sa_cache_fini(void);
+int sa_set_sa_object(objset_t *, uint64_t);
+int sa_hdrsize(void *);
+void sa_handle_lock(sa_handle_t *);
+void sa_handle_unlock(sa_handle_t *);
+
+#ifdef _KERNEL
+int sa_lookup_uio(sa_handle_t *, sa_attr_type_t, uio_t *);
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_SA_H */
diff --git a/include/sys/sa_impl.h b/include/sys/sa_impl.h
new file mode 100644 (file)
index 0000000..6661e47
--- /dev/null
@@ -0,0 +1,287 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_SA_IMPL_H
+#define        _SYS_SA_IMPL_H
+
+#include <sys/dmu.h>
+#include <sys/refcount.h>
+#include <sys/list.h>
+
+/*
+ * Array of known attributes and their
+ * various characteristics.
+ */
+typedef struct sa_attr_table {
+       sa_attr_type_t  sa_attr;
+       uint8_t sa_registered;
+       uint16_t sa_length;
+       sa_bswap_type_t sa_byteswap;
+       char *sa_name;
+} sa_attr_table_t;
+
+/*
+ * Zap attribute format for attribute registration
+ *
+ * 64      56      48      40      32      24      16      8       0
+ * +-------+-------+-------+-------+-------+-------+-------+-------+
+ * |        unused         |      len      | bswap |   attr num    |
+ * +-------+-------+-------+-------+-------+-------+-------+-------+
+ *
+ * Zap attribute format for layout information.
+ *
+ * layout information is stored as an array of attribute numbers
+ * The name of the attribute is the layout number (0, 1, 2, ...)
+ *
+ * 16       0
+ * +---- ---+
+ * | attr # |
+ * +--------+
+ * | attr # |
+ * +--- ----+
+ *  ......
+ *
+ */
+
+#define        ATTR_BSWAP(x)   BF32_GET(x, 16, 8)
+#define        ATTR_LENGTH(x)  BF32_GET(x, 24, 16)
+#define        ATTR_NUM(x)     BF32_GET(x, 0, 16)
+#define        ATTR_ENCODE(x, attr, length, bswap) \
+{ \
+       BF64_SET(x, 24, 16, length); \
+       BF64_SET(x, 16, 8, bswap); \
+       BF64_SET(x, 0, 16, attr); \
+}
+
+#define        TOC_OFF(x)              BF32_GET(x, 0, 23)
+#define        TOC_ATTR_PRESENT(x)     BF32_GET(x, 31, 1)
+#define        TOC_LEN_IDX(x)          BF32_GET(x, 24, 4)
+#define        TOC_ATTR_ENCODE(x, len_idx, offset) \
+{ \
+       BF32_SET(x, 31, 1, 1); \
+       BF32_SET(x, 24, 7, len_idx); \
+       BF32_SET(x, 0, 24, offset); \
+}
+
+#define        SA_LAYOUTS      "LAYOUTS"
+#define        SA_REGISTRY     "REGISTRY"
+
+/*
+ * Each unique layout will have their own table
+ * sa_lot (layout_table)
+ */
+typedef struct sa_lot {
+       avl_node_t lot_num_node;
+       avl_node_t lot_hash_node;
+       uint64_t lot_num;
+       uint64_t lot_hash;
+       sa_attr_type_t *lot_attrs;      /* array of attr #'s */
+       uint32_t lot_var_sizes; /* how many aren't fixed size */
+       uint32_t lot_attr_count;        /* total attr count */
+       list_t  lot_idx_tab;    /* should be only a couple of entries */
+       int     lot_instance;   /* used with lot_hash to identify entry */
+} sa_lot_t;
+
+/* index table of offsets */
+typedef struct sa_idx_tab {
+       list_node_t     sa_next;
+       sa_lot_t        *sa_layout;
+       uint16_t        *sa_variable_lengths;
+       refcount_t      sa_refcount;
+       uint32_t        *sa_idx_tab;    /* array of offsets */
+} sa_idx_tab_t;
+
+/*
+ * Since the offset/index information into the actual data
+ * will usually be identical we can share that information with
+ * all handles that have the exact same offsets.
+ *
+ * You would typically only have a large number of different table of
+ * contents if you had a several variable sized attributes.
+ *
+ * Two AVL trees are used to track the attribute layout numbers.
+ * one is keyed by number and will be consulted when a DMU_OT_SA
+ * object is first read.  The second tree is keyed by the hash signature
+ * of the attributes and will be consulted when an attribute is added
+ * to determine if we already have an instance of that layout.  Both
+ * of these tree's are interconnected.  The only difference is that
+ * when an entry is found in the "hash" tree the list of attributes will
+ * need to be compared against the list of attributes you have in hand.
+ * The assumption is that typically attributes will just be updated and
+ * adding a completely new attribute is a very rare operation.
+ */
+struct sa_os {
+       kmutex_t        sa_lock;
+       boolean_t       sa_need_attr_registration;
+       boolean_t       sa_force_spill;
+       uint64_t        sa_master_obj;
+       uint64_t        sa_reg_attr_obj;
+       uint64_t        sa_layout_attr_obj;
+       int             sa_num_attrs;
+       sa_attr_table_t *sa_attr_table;  /* private attr table */
+       sa_update_cb_t  *sa_update_cb;
+       avl_tree_t      sa_layout_num_tree;  /* keyed by layout number */
+       avl_tree_t      sa_layout_hash_tree; /* keyed by layout hash value */
+       int             sa_user_table_sz;
+       sa_attr_type_t  *sa_user_table; /* user name->attr mapping table */
+};
+
+/*
+ * header for all bonus and spill buffers.
+ * The header has a fixed portion with a variable number
+ * of "lengths" depending on the number of variable sized
+ * attribues which are determined by the "layout number"
+ */
+
+#define        SA_MAGIC        0x2F505A  /* ZFS SA */
+typedef struct sa_hdr_phys {
+       uint32_t sa_magic;
+       uint16_t sa_layout_info;  /* Encoded with hdrsize and layout number */
+       uint16_t sa_lengths[1]; /* optional sizes for variable length attrs */
+       /* ... Data follows the lengths.  */
+} sa_hdr_phys_t;
+
+/*
+ * sa_hdr_phys -> sa_layout_info
+ *
+ * 16      10       0
+ * +--------+-------+
+ * | hdrsz  |layout |
+ * +--------+-------+
+ *
+ * Bits 0-10 are the layout number
+ * Bits 11-16 are the size of the header.
+ * The hdrsize is the number * 8
+ *
+ * For example.
+ * hdrsz of 1 ==> 8 byte header
+ *          2 ==> 16 byte header
+ *
+ */
+
+#define        SA_HDR_LAYOUT_NUM(hdr) BF32_GET(hdr->sa_layout_info, 0, 10)
+#define        SA_HDR_SIZE(hdr) BF32_GET_SB(hdr->sa_layout_info, 10, 16, 3, 0)
+#define        SA_HDR_LAYOUT_INFO_ENCODE(x, num, size) \
+{ \
+       BF32_SET_SB(x, 10, 6, 3, 0, size); \
+       BF32_SET(x, 0, 10, num); \
+}
+
+typedef enum sa_buf_type {
+       SA_BONUS = 1,
+       SA_SPILL = 2
+} sa_buf_type_t;
+
+typedef enum sa_data_op {
+       SA_LOOKUP,
+       SA_UPDATE,
+       SA_ADD,
+       SA_REPLACE,
+       SA_REMOVE
+} sa_data_op_t;
+
+/*
+ * Opaque handle used for most sa functions
+ *
+ * This needs to be kept as small as possible.
+ */
+
+struct sa_handle {
+       kmutex_t        sa_lock;
+       dmu_buf_t       *sa_bonus;
+       dmu_buf_t       *sa_spill;
+       objset_t        *sa_os;
+       void            *sa_userp;
+       sa_idx_tab_t    *sa_bonus_tab;   /* idx of bonus */
+       sa_idx_tab_t    *sa_spill_tab; /* only present if spill activated */
+};
+
+#define        SA_GET_DB(hdl, type)    \
+       (dmu_buf_impl_t *)((type == SA_BONUS) ? hdl->sa_bonus : hdl->sa_spill)
+
+#define        SA_GET_HDR(hdl, type) \
+       ((sa_hdr_phys_t *)((dmu_buf_impl_t *)(SA_GET_DB(hdl, \
+       type))->db.db_data))
+
+#define        SA_IDX_TAB_GET(hdl, type) \
+       (type == SA_BONUS ? hdl->sa_bonus_tab : hdl->sa_spill_tab)
+
+#define        IS_SA_BONUSTYPE(a)      \
+       ((a == DMU_OT_SA) ? B_TRUE : B_FALSE)
+
+#define        SA_BONUSTYPE_FROM_DB(db) \
+       (dmu_get_bonustype((dmu_buf_t *)db))
+
+#define        SA_BLKPTR_SPACE (DN_MAX_BONUSLEN - sizeof (blkptr_t))
+
+#define        SA_LAYOUT_NUM(x, type) \
+       ((!IS_SA_BONUSTYPE(type) ? 0 : (((IS_SA_BONUSTYPE(type)) && \
+       ((SA_HDR_LAYOUT_NUM(x)) == 0)) ? 1 : SA_HDR_LAYOUT_NUM(x))))
+
+
+#define        SA_REGISTERED_LEN(sa, attr) sa->sa_attr_table[attr].sa_length
+
+#define        SA_ATTR_LEN(sa, idx, attr, hdr) ((SA_REGISTERED_LEN(sa, attr) == 0) ?\
+       hdr->sa_lengths[TOC_LEN_IDX(idx->sa_idx_tab[attr])] : \
+       SA_REGISTERED_LEN(sa, attr))
+
+#define        SA_SET_HDR(hdr, num, size) \
+       { \
+               hdr->sa_magic = SA_MAGIC; \
+               SA_HDR_LAYOUT_INFO_ENCODE(hdr->sa_layout_info, num, size); \
+       }
+
+#define        SA_ATTR_INFO(sa, idx, hdr, attr, bulk, type, hdl) \
+       { \
+               bulk.sa_size = SA_ATTR_LEN(sa, idx, attr, hdr); \
+               bulk.sa_buftype = type; \
+               bulk.sa_addr = \
+                   (void *)((uintptr_t)TOC_OFF(idx->sa_idx_tab[attr]) + \
+                   (uintptr_t)hdr); \
+}
+
+#define        SA_HDR_SIZE_MATCH_LAYOUT(hdr, tb) \
+       (SA_HDR_SIZE(hdr) == (sizeof (sa_hdr_phys_t) + \
+       (tb->lot_var_sizes > 1 ? P2ROUNDUP((tb->lot_var_sizes - 1) * \
+       sizeof (uint16_t), 8) : 0)))
+
+int sa_add_impl(sa_handle_t *, sa_attr_type_t,
+    uint32_t, sa_data_locator_t, void *, dmu_tx_t *);
+
+void sa_register_update_callback_locked(objset_t *, sa_update_cb_t *);
+int sa_size_locked(sa_handle_t *, sa_attr_type_t, int *);
+
+void sa_default_locator(void **, uint32_t *, uint32_t, boolean_t, void *);
+int sa_attr_size(sa_os_t *, sa_idx_tab_t *, sa_attr_type_t,
+    uint16_t *, sa_hdr_phys_t *);
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_SA_IMPL_H */
diff --git a/include/sys/spa.h b/include/sys/spa.h
new file mode 100644 (file)
index 0000000..52737eb
--- /dev/null
@@ -0,0 +1,707 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _SYS_SPA_H
+#define        _SYS_SPA_H
+
+#include <sys/avl.h>
+#include <sys/zfs_context.h>
+#include <sys/nvpair.h>
+#include <sys/sysmacros.h>
+#include <sys/types.h>
+#include <sys/fs/zfs.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Forward references that lots of things need.
+ */
+typedef struct spa spa_t;
+typedef struct vdev vdev_t;
+typedef struct metaslab metaslab_t;
+typedef struct metaslab_group metaslab_group_t;
+typedef struct metaslab_class metaslab_class_t;
+typedef struct zio zio_t;
+typedef struct zilog zilog_t;
+typedef struct spa_aux_vdev spa_aux_vdev_t;
+typedef struct ddt ddt_t;
+typedef struct ddt_entry ddt_entry_t;
+struct dsl_pool;
+
+/*
+ * General-purpose 32-bit and 64-bit bitfield encodings.
+ */
+#define        BF32_DECODE(x, low, len)        P2PHASE((x) >> (low), 1U << (len))
+#define        BF64_DECODE(x, low, len)        P2PHASE((x) >> (low), 1ULL << (len))
+#define        BF32_ENCODE(x, low, len)        (P2PHASE((x), 1U << (len)) << (low))
+#define        BF64_ENCODE(x, low, len)        (P2PHASE((x), 1ULL << (len)) << (low))
+
+#define        BF32_GET(x, low, len)           BF32_DECODE(x, low, len)
+#define        BF64_GET(x, low, len)           BF64_DECODE(x, low, len)
+
+#define        BF32_SET(x, low, len, val)      \
+       ((x) ^= BF32_ENCODE((x >> low) ^ (val), low, len))
+#define        BF64_SET(x, low, len, val)      \
+       ((x) ^= BF64_ENCODE((x >> low) ^ (val), low, len))
+
+#define        BF32_GET_SB(x, low, len, shift, bias)   \
+       ((BF32_GET(x, low, len) + (bias)) << (shift))
+#define        BF64_GET_SB(x, low, len, shift, bias)   \
+       ((BF64_GET(x, low, len) + (bias)) << (shift))
+
+#define        BF32_SET_SB(x, low, len, shift, bias, val)      \
+       BF32_SET(x, low, len, ((val) >> (shift)) - (bias))
+#define        BF64_SET_SB(x, low, len, shift, bias, val)      \
+       BF64_SET(x, low, len, ((val) >> (shift)) - (bias))
+
+/*
+ * We currently support nine block sizes, from 512 bytes to 128K.
+ * We could go higher, but the benefits are near-zero and the cost
+ * of COWing a giant block to modify one byte would become excessive.
+ */
+#define        SPA_MINBLOCKSHIFT       9
+#define        SPA_MAXBLOCKSHIFT       17
+#define        SPA_MINBLOCKSIZE        (1ULL << SPA_MINBLOCKSHIFT)
+#define        SPA_MAXBLOCKSIZE        (1ULL << SPA_MAXBLOCKSHIFT)
+
+#define        SPA_BLOCKSIZES          (SPA_MAXBLOCKSHIFT - SPA_MINBLOCKSHIFT + 1)
+
+/*
+ * Size of block to hold the configuration data (a packed nvlist)
+ */
+#define        SPA_CONFIG_BLOCKSIZE    (1 << 14)
+
+/*
+ * The DVA size encodings for LSIZE and PSIZE support blocks up to 32MB.
+ * The ASIZE encoding should be at least 64 times larger (6 more bits)
+ * to support up to 4-way RAID-Z mirror mode with worst-case gang block
+ * overhead, three DVAs per bp, plus one more bit in case we do anything
+ * else that expands the ASIZE.
+ */
+#define        SPA_LSIZEBITS           16      /* LSIZE up to 32M (2^16 * 512) */
+#define        SPA_PSIZEBITS           16      /* PSIZE up to 32M (2^16 * 512) */
+#define        SPA_ASIZEBITS           24      /* ASIZE up to 64 times larger  */
+
+/*
+ * All SPA data is represented by 128-bit data virtual addresses (DVAs).
+ * The members of the dva_t should be considered opaque outside the SPA.
+ */
+typedef struct dva {
+       uint64_t        dva_word[2];
+} dva_t;
+
+/*
+ * Each block has a 256-bit checksum -- strong enough for cryptographic hashes.
+ */
+typedef struct zio_cksum {
+       uint64_t        zc_word[4];
+} zio_cksum_t;
+
+/*
+ * Each block is described by its DVAs, time of birth, checksum, etc.
+ * The word-by-word, bit-by-bit layout of the blkptr is as follows:
+ *
+ *     64      56      48      40      32      24      16      8       0
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * 0   |               vdev1           | GRID  |         ASIZE         |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * 1   |G|                      offset1                                |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * 2   |               vdev2           | GRID  |         ASIZE         |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * 3   |G|                      offset2                                |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * 4   |               vdev3           | GRID  |         ASIZE         |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * 5   |G|                      offset3                                |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * 6   |BDX|lvl| type  | cksum | comp  |     PSIZE     |     LSIZE     |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * 7   |                       padding                                 |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * 8   |                       padding                                 |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * 9   |                       physical birth txg                      |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * a   |                       logical birth txg                       |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * b   |                       fill count                              |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * c   |                       checksum[0]                             |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * d   |                       checksum[1]                             |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * e   |                       checksum[2]                             |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ * f   |                       checksum[3]                             |
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ *
+ * Legend:
+ *
+ * vdev                virtual device ID
+ * offset      offset into virtual device
+ * LSIZE       logical size
+ * PSIZE       physical size (after compression)
+ * ASIZE       allocated size (including RAID-Z parity and gang block headers)
+ * GRID                RAID-Z layout information (reserved for future use)
+ * cksum       checksum function
+ * comp                compression function
+ * G           gang block indicator
+ * B           byteorder (endianness)
+ * D           dedup
+ * X           unused
+ * lvl         level of indirection
+ * type                DMU object type
+ * phys birth  txg of block allocation; zero if same as logical birth txg
+ * log. birth  transaction group in which the block was logically born
+ * fill count  number of non-zero blocks under this bp
+ * checksum[4] 256-bit checksum of the data this bp describes
+ */
+#define        SPA_BLKPTRSHIFT 7               /* blkptr_t is 128 bytes        */
+#define        SPA_DVAS_PER_BP 3               /* Number of DVAs in a bp       */
+
+typedef struct blkptr {
+       dva_t           blk_dva[SPA_DVAS_PER_BP]; /* Data Virtual Addresses */
+       uint64_t        blk_prop;       /* size, compression, type, etc     */
+       uint64_t        blk_pad[2];     /* Extra space for the future       */
+       uint64_t        blk_phys_birth; /* txg when block was allocated     */
+       uint64_t        blk_birth;      /* transaction group at birth       */
+       uint64_t        blk_fill;       /* fill count                       */
+       zio_cksum_t     blk_cksum;      /* 256-bit checksum                 */
+} blkptr_t;
+
+/*
+ * Macros to get and set fields in a bp or DVA.
+ */
+#define        DVA_GET_ASIZE(dva)      \
+       BF64_GET_SB((dva)->dva_word[0], 0, 24, SPA_MINBLOCKSHIFT, 0)
+#define        DVA_SET_ASIZE(dva, x)   \
+       BF64_SET_SB((dva)->dva_word[0], 0, 24, SPA_MINBLOCKSHIFT, 0, x)
+
+#define        DVA_GET_GRID(dva)       BF64_GET((dva)->dva_word[0], 24, 8)
+#define        DVA_SET_GRID(dva, x)    BF64_SET((dva)->dva_word[0], 24, 8, x)
+
+#define        DVA_GET_VDEV(dva)       BF64_GET((dva)->dva_word[0], 32, 32)
+#define        DVA_SET_VDEV(dva, x)    BF64_SET((dva)->dva_word[0], 32, 32, x)
+
+#define        DVA_GET_OFFSET(dva)     \
+       BF64_GET_SB((dva)->dva_word[1], 0, 63, SPA_MINBLOCKSHIFT, 0)
+#define        DVA_SET_OFFSET(dva, x)  \
+       BF64_SET_SB((dva)->dva_word[1], 0, 63, SPA_MINBLOCKSHIFT, 0, x)
+
+#define        DVA_GET_GANG(dva)       BF64_GET((dva)->dva_word[1], 63, 1)
+#define        DVA_SET_GANG(dva, x)    BF64_SET((dva)->dva_word[1], 63, 1, x)
+
+#define        BP_GET_LSIZE(bp)        \
+       BF64_GET_SB((bp)->blk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1)
+#define        BP_SET_LSIZE(bp, x)     \
+       BF64_SET_SB((bp)->blk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1, x)
+
+#define        BP_GET_PSIZE(bp)        \
+       BF64_GET_SB((bp)->blk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1)
+#define        BP_SET_PSIZE(bp, x)     \
+       BF64_SET_SB((bp)->blk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1, x)
+
+#define        BP_GET_COMPRESS(bp)             BF64_GET((bp)->blk_prop, 32, 8)
+#define        BP_SET_COMPRESS(bp, x)          BF64_SET((bp)->blk_prop, 32, 8, x)
+
+#define        BP_GET_CHECKSUM(bp)             BF64_GET((bp)->blk_prop, 40, 8)
+#define        BP_SET_CHECKSUM(bp, x)          BF64_SET((bp)->blk_prop, 40, 8, x)
+
+#define        BP_GET_TYPE(bp)                 BF64_GET((bp)->blk_prop, 48, 8)
+#define        BP_SET_TYPE(bp, x)              BF64_SET((bp)->blk_prop, 48, 8, x)
+
+#define        BP_GET_LEVEL(bp)                BF64_GET((bp)->blk_prop, 56, 5)
+#define        BP_SET_LEVEL(bp, x)             BF64_SET((bp)->blk_prop, 56, 5, x)
+
+#define        BP_GET_PROP_BIT_61(bp)          BF64_GET((bp)->blk_prop, 61, 1)
+#define        BP_SET_PROP_BIT_61(bp, x)       BF64_SET((bp)->blk_prop, 61, 1, x)
+
+#define        BP_GET_DEDUP(bp)                BF64_GET((bp)->blk_prop, 62, 1)
+#define        BP_SET_DEDUP(bp, x)             BF64_SET((bp)->blk_prop, 62, 1, x)
+
+#define        BP_GET_BYTEORDER(bp)            (0 - BF64_GET((bp)->blk_prop, 63, 1))
+#define        BP_SET_BYTEORDER(bp, x)         BF64_SET((bp)->blk_prop, 63, 1, x)
+
+#define        BP_PHYSICAL_BIRTH(bp)           \
+       ((bp)->blk_phys_birth ? (bp)->blk_phys_birth : (bp)->blk_birth)
+
+#define        BP_SET_BIRTH(bp, logical, physical)     \
+{                                              \
+       (bp)->blk_birth = (logical);            \
+       (bp)->blk_phys_birth = ((logical) == (physical) ? 0 : (physical)); \
+}
+
+#define        BP_GET_ASIZE(bp)        \
+       (DVA_GET_ASIZE(&(bp)->blk_dva[0]) + DVA_GET_ASIZE(&(bp)->blk_dva[1]) + \
+               DVA_GET_ASIZE(&(bp)->blk_dva[2]))
+
+#define        BP_GET_UCSIZE(bp) \
+       ((BP_GET_LEVEL(bp) > 0 || dmu_ot[BP_GET_TYPE(bp)].ot_metadata) ? \
+       BP_GET_PSIZE(bp) : BP_GET_LSIZE(bp))
+
+#define        BP_GET_NDVAS(bp)        \
+       (!!DVA_GET_ASIZE(&(bp)->blk_dva[0]) + \
+       !!DVA_GET_ASIZE(&(bp)->blk_dva[1]) + \
+       !!DVA_GET_ASIZE(&(bp)->blk_dva[2]))
+
+#define        BP_COUNT_GANG(bp)       \
+       (DVA_GET_GANG(&(bp)->blk_dva[0]) + \
+       DVA_GET_GANG(&(bp)->blk_dva[1]) + \
+       DVA_GET_GANG(&(bp)->blk_dva[2]))
+
+#define        DVA_EQUAL(dva1, dva2)   \
+       ((dva1)->dva_word[1] == (dva2)->dva_word[1] && \
+       (dva1)->dva_word[0] == (dva2)->dva_word[0])
+
+#define        BP_EQUAL(bp1, bp2)      \
+       (BP_PHYSICAL_BIRTH(bp1) == BP_PHYSICAL_BIRTH(bp2) &&    \
+       DVA_EQUAL(&(bp1)->blk_dva[0], &(bp2)->blk_dva[0]) &&    \
+       DVA_EQUAL(&(bp1)->blk_dva[1], &(bp2)->blk_dva[1]) &&    \
+       DVA_EQUAL(&(bp1)->blk_dva[2], &(bp2)->blk_dva[2]))
+
+#define        ZIO_CHECKSUM_EQUAL(zc1, zc2) \
+       (0 == (((zc1).zc_word[0] - (zc2).zc_word[0]) | \
+       ((zc1).zc_word[1] - (zc2).zc_word[1]) | \
+       ((zc1).zc_word[2] - (zc2).zc_word[2]) | \
+       ((zc1).zc_word[3] - (zc2).zc_word[3])))
+
+#define        DVA_IS_VALID(dva)       (DVA_GET_ASIZE(dva) != 0)
+
+#define        ZIO_SET_CHECKSUM(zcp, w0, w1, w2, w3)   \
+{                                              \
+       (zcp)->zc_word[0] = w0;                 \
+       (zcp)->zc_word[1] = w1;                 \
+       (zcp)->zc_word[2] = w2;                 \
+       (zcp)->zc_word[3] = w3;                 \
+}
+
+#define        BP_IDENTITY(bp)         (&(bp)->blk_dva[0])
+#define        BP_IS_GANG(bp)          DVA_GET_GANG(BP_IDENTITY(bp))
+#define        BP_IS_HOLE(bp)          ((bp)->blk_birth == 0)
+
+/* BP_IS_RAIDZ(bp) assumes no block compression */
+#define        BP_IS_RAIDZ(bp)         (DVA_GET_ASIZE(&(bp)->blk_dva[0]) > \
+                               BP_GET_PSIZE(bp))
+
+#define        BP_ZERO(bp)                             \
+{                                              \
+       (bp)->blk_dva[0].dva_word[0] = 0;       \
+       (bp)->blk_dva[0].dva_word[1] = 0;       \
+       (bp)->blk_dva[1].dva_word[0] = 0;       \
+       (bp)->blk_dva[1].dva_word[1] = 0;       \
+       (bp)->blk_dva[2].dva_word[0] = 0;       \
+       (bp)->blk_dva[2].dva_word[1] = 0;       \
+       (bp)->blk_prop = 0;                     \
+       (bp)->blk_pad[0] = 0;                   \
+       (bp)->blk_pad[1] = 0;                   \
+       (bp)->blk_phys_birth = 0;               \
+       (bp)->blk_birth = 0;                    \
+       (bp)->blk_fill = 0;                     \
+       ZIO_SET_CHECKSUM(&(bp)->blk_cksum, 0, 0, 0, 0); \
+}
+
+/*
+ * Note: the byteorder is either 0 or -1, both of which are palindromes.
+ * This simplifies the endianness handling a bit.
+ */
+#ifdef _BIG_ENDIAN
+#define        ZFS_HOST_BYTEORDER      (0ULL)
+#else
+#define        ZFS_HOST_BYTEORDER      (-1ULL)
+#endif
+
+#define        BP_SHOULD_BYTESWAP(bp)  (BP_GET_BYTEORDER(bp) != ZFS_HOST_BYTEORDER)
+
+#define        BP_SPRINTF_LEN  320
+
+/*
+ * This macro allows code sharing between zfs, libzpool, and mdb.
+ * 'func' is either snprintf() or mdb_snprintf().
+ * 'ws' (whitespace) can be ' ' for single-line format, '\n' for multi-line.
+ */
+#define        SPRINTF_BLKPTR(func, ws, buf, bp, type, checksum, compress)     \
+{                                                                      \
+       static const char *copyname[] =                                 \
+           { "zero", "single", "double", "triple" };                   \
+       int size = BP_SPRINTF_LEN;                                      \
+       int len = 0;                                                    \
+       int copies = 0;                                                 \
+       int d;                                                          \
+                                                                       \
+       if (bp == NULL) {                                               \
+               len = func(buf + len, size - len, "<NULL>");            \
+       } else if (BP_IS_HOLE(bp)) {                                    \
+               len = func(buf + len, size - len, "<hole>");            \
+       } else {                                                        \
+               for (d = 0; d < BP_GET_NDVAS(bp); d++) {                \
+                       const dva_t *dva = &bp->blk_dva[d];             \
+                       if (DVA_IS_VALID(dva))                          \
+                               copies++;                               \
+                       len += func(buf + len, size - len,              \
+                           "DVA[%d]=<%llu:%llx:%llx>%c", d,            \
+                           (u_longlong_t)DVA_GET_VDEV(dva),            \
+                           (u_longlong_t)DVA_GET_OFFSET(dva),          \
+                           (u_longlong_t)DVA_GET_ASIZE(dva),           \
+                           ws);                                        \
+               }                                                       \
+               if (BP_IS_GANG(bp) &&                                   \
+                   DVA_GET_ASIZE(&bp->blk_dva[2]) <=                   \
+                   DVA_GET_ASIZE(&bp->blk_dva[1]) / 2)                 \
+                       copies--;                                       \
+               len += func(buf + len, size - len,                      \
+                   "[L%llu %s] %s %s %s %s %s %s%c"                    \
+                   "size=%llxL/%llxP birth=%lluL/%lluP fill=%llu%c"    \
+                   "cksum=%llx:%llx:%llx:%llx",                        \
+                   (u_longlong_t)BP_GET_LEVEL(bp),                     \
+                   type,                                               \
+                   checksum,                                           \
+                   compress,                                           \
+                   BP_GET_BYTEORDER(bp) == 0 ? "BE" : "LE",            \
+                   BP_IS_GANG(bp) ? "gang" : "contiguous",             \
+                   BP_GET_DEDUP(bp) ? "dedup" : "unique",              \
+                   copyname[copies],                                   \
+                   ws,                                                 \
+                   (u_longlong_t)BP_GET_LSIZE(bp),                     \
+                   (u_longlong_t)BP_GET_PSIZE(bp),                     \
+                   (u_longlong_t)bp->blk_birth,                        \
+                   (u_longlong_t)BP_PHYSICAL_BIRTH(bp),                \
+                   (u_longlong_t)bp->blk_fill,                         \
+                   ws,                                                 \
+                   (u_longlong_t)bp->blk_cksum.zc_word[0],             \
+                   (u_longlong_t)bp->blk_cksum.zc_word[1],             \
+                   (u_longlong_t)bp->blk_cksum.zc_word[2],             \
+                   (u_longlong_t)bp->blk_cksum.zc_word[3]);            \
+       }                                                               \
+       ASSERT(len < size);                                             \
+}
+
+#include <sys/dmu.h>
+
+#define        BP_GET_BUFC_TYPE(bp)                                            \
+       (((BP_GET_LEVEL(bp) > 0) || (dmu_ot[BP_GET_TYPE(bp)].ot_metadata)) ? \
+       ARC_BUFC_METADATA : ARC_BUFC_DATA);
+
+typedef enum spa_import_type {
+       SPA_IMPORT_EXISTING,
+       SPA_IMPORT_ASSEMBLE
+} spa_import_type_t;
+
+/* state manipulation functions */
+extern int spa_open(const char *pool, spa_t **, void *tag);
+extern int spa_open_rewind(const char *pool, spa_t **, void *tag,
+    nvlist_t *policy, nvlist_t **config);
+extern int spa_get_stats(const char *pool, nvlist_t **config,
+    char *altroot, size_t buflen);
+extern int spa_create(const char *pool, nvlist_t *config, nvlist_t *props,
+    const char *history_str, nvlist_t *zplprops);
+extern int spa_import_rootpool(char *devpath, char *devid);
+extern int spa_import(const char *pool, nvlist_t *config, nvlist_t *props,
+    uint64_t flags);
+extern nvlist_t *spa_tryimport(nvlist_t *tryconfig);
+extern int spa_destroy(char *pool);
+extern int spa_export(char *pool, nvlist_t **oldconfig, boolean_t force,
+    boolean_t hardforce);
+extern int spa_reset(char *pool);
+extern void spa_async_request(spa_t *spa, int flag);
+extern void spa_async_unrequest(spa_t *spa, int flag);
+extern void spa_async_suspend(spa_t *spa);
+extern void spa_async_resume(spa_t *spa);
+extern spa_t *spa_inject_addref(char *pool);
+extern void spa_inject_delref(spa_t *spa);
+extern void spa_scan_stat_init(spa_t *spa);
+extern int spa_scan_get_stats(spa_t *spa, pool_scan_stat_t *ps);
+
+#define        SPA_ASYNC_CONFIG_UPDATE 0x01
+#define        SPA_ASYNC_REMOVE        0x02
+#define        SPA_ASYNC_PROBE         0x04
+#define        SPA_ASYNC_RESILVER_DONE 0x08
+#define        SPA_ASYNC_RESILVER      0x10
+#define        SPA_ASYNC_AUTOEXPAND    0x20
+#define        SPA_ASYNC_REMOVE_DONE   0x40
+#define        SPA_ASYNC_REMOVE_STOP   0x80
+
+/*
+ * Controls the behavior of spa_vdev_remove().
+ */
+#define        SPA_REMOVE_UNSPARE      0x01
+#define        SPA_REMOVE_DONE         0x02
+
+/* device manipulation */
+extern int spa_vdev_add(spa_t *spa, nvlist_t *nvroot);
+extern int spa_vdev_attach(spa_t *spa, uint64_t guid, nvlist_t *nvroot,
+    int replacing);
+extern int spa_vdev_detach(spa_t *spa, uint64_t guid, uint64_t pguid,
+    int replace_done);
+extern int spa_vdev_remove(spa_t *spa, uint64_t guid, boolean_t unspare);
+extern boolean_t spa_vdev_remove_active(spa_t *spa);
+extern int spa_vdev_setpath(spa_t *spa, uint64_t guid, const char *newpath);
+extern int spa_vdev_setfru(spa_t *spa, uint64_t guid, const char *newfru);
+extern int spa_vdev_split_mirror(spa_t *spa, char *newname, nvlist_t *config,
+    nvlist_t *props, boolean_t exp);
+
+/* spare state (which is global across all pools) */
+extern void spa_spare_add(vdev_t *vd);
+extern void spa_spare_remove(vdev_t *vd);
+extern boolean_t spa_spare_exists(uint64_t guid, uint64_t *pool, int *refcnt);
+extern void spa_spare_activate(vdev_t *vd);
+
+/* L2ARC state (which is global across all pools) */
+extern void spa_l2cache_add(vdev_t *vd);
+extern void spa_l2cache_remove(vdev_t *vd);
+extern boolean_t spa_l2cache_exists(uint64_t guid, uint64_t *pool);
+extern void spa_l2cache_activate(vdev_t *vd);
+extern void spa_l2cache_drop(spa_t *spa);
+
+/* scanning */
+extern int spa_scan(spa_t *spa, pool_scan_func_t func);
+extern int spa_scan_stop(spa_t *spa);
+
+/* spa syncing */
+extern void spa_sync(spa_t *spa, uint64_t txg); /* only for DMU use */
+extern void spa_sync_allpools(void);
+
+/*
+ * DEFERRED_FREE must be large enough that regular blocks are not
+ * deferred.  XXX so can't we change it back to 1?
+ */
+#define        SYNC_PASS_DEFERRED_FREE 2       /* defer frees after this pass */
+#define        SYNC_PASS_DONT_COMPRESS 4       /* don't compress after this pass */
+#define        SYNC_PASS_REWRITE       1       /* rewrite new bps after this pass */
+
+/* spa namespace global mutex */
+extern kmutex_t spa_namespace_lock;
+
+/*
+ * SPA configuration functions in spa_config.c
+ */
+
+#define        SPA_CONFIG_UPDATE_POOL  0
+#define        SPA_CONFIG_UPDATE_VDEVS 1
+
+extern void spa_config_sync(spa_t *, boolean_t, boolean_t);
+extern void spa_config_load(void);
+extern nvlist_t *spa_all_configs(uint64_t *);
+extern void spa_config_set(spa_t *spa, nvlist_t *config);
+extern nvlist_t *spa_config_generate(spa_t *spa, vdev_t *vd, uint64_t txg,
+    int getstats);
+extern void spa_config_update(spa_t *spa, int what);
+
+/*
+ * Miscellaneous SPA routines in spa_misc.c
+ */
+
+/* Namespace manipulation */
+extern spa_t *spa_lookup(const char *name);
+extern spa_t *spa_add(const char *name, nvlist_t *config, const char *altroot);
+extern void spa_remove(spa_t *spa);
+extern spa_t *spa_next(spa_t *prev);
+
+/* Refcount functions */
+extern void spa_open_ref(spa_t *spa, void *tag);
+extern void spa_close(spa_t *spa, void *tag);
+extern boolean_t spa_refcount_zero(spa_t *spa);
+
+#define        SCL_NONE        0x00
+#define        SCL_CONFIG      0x01
+#define        SCL_STATE       0x02
+#define        SCL_L2ARC       0x04            /* hack until L2ARC 2.0 */
+#define        SCL_ALLOC       0x08
+#define        SCL_ZIO         0x10
+#define        SCL_FREE        0x20
+#define        SCL_VDEV        0x40
+#define        SCL_LOCKS       7
+#define        SCL_ALL         ((1 << SCL_LOCKS) - 1)
+#define        SCL_STATE_ALL   (SCL_STATE | SCL_L2ARC | SCL_ZIO)
+
+/* Pool configuration locks */
+extern int spa_config_tryenter(spa_t *spa, int locks, void *tag, krw_t rw);
+extern void spa_config_enter(spa_t *spa, int locks, void *tag, krw_t rw);
+extern void spa_config_exit(spa_t *spa, int locks, void *tag);
+extern int spa_config_held(spa_t *spa, int locks, krw_t rw);
+
+/* Pool vdev add/remove lock */
+extern uint64_t spa_vdev_enter(spa_t *spa);
+extern uint64_t spa_vdev_config_enter(spa_t *spa);
+extern void spa_vdev_config_exit(spa_t *spa, vdev_t *vd, uint64_t txg,
+    int error, char *tag);
+extern int spa_vdev_exit(spa_t *spa, vdev_t *vd, uint64_t txg, int error);
+
+/* Pool vdev state change lock */
+extern void spa_vdev_state_enter(spa_t *spa, int oplock);
+extern int spa_vdev_state_exit(spa_t *spa, vdev_t *vd, int error);
+
+/* Log state */
+typedef enum spa_log_state {
+       SPA_LOG_UNKNOWN = 0,    /* unknown log state */
+       SPA_LOG_MISSING,        /* missing log(s) */
+       SPA_LOG_CLEAR,          /* clear the log(s) */
+       SPA_LOG_GOOD,           /* log(s) are good */
+} spa_log_state_t;
+
+extern spa_log_state_t spa_get_log_state(spa_t *spa);
+extern void spa_set_log_state(spa_t *spa, spa_log_state_t state);
+extern int spa_offline_log(spa_t *spa);
+
+/* Log claim callback */
+extern void spa_claim_notify(zio_t *zio);
+
+/* Accessor functions */
+extern boolean_t spa_shutting_down(spa_t *spa);
+extern struct dsl_pool *spa_get_dsl(spa_t *spa);
+extern blkptr_t *spa_get_rootblkptr(spa_t *spa);
+extern void spa_set_rootblkptr(spa_t *spa, const blkptr_t *bp);
+extern void spa_altroot(spa_t *, char *, size_t);
+extern int spa_sync_pass(spa_t *spa);
+extern char *spa_name(spa_t *spa);
+extern uint64_t spa_guid(spa_t *spa);
+extern uint64_t spa_last_synced_txg(spa_t *spa);
+extern uint64_t spa_first_txg(spa_t *spa);
+extern uint64_t spa_syncing_txg(spa_t *spa);
+extern uint64_t spa_version(spa_t *spa);
+extern pool_state_t spa_state(spa_t *spa);
+extern spa_load_state_t spa_load_state(spa_t *spa);
+extern uint64_t spa_freeze_txg(spa_t *spa);
+extern uint64_t spa_get_asize(spa_t *spa, uint64_t lsize);
+extern uint64_t spa_get_dspace(spa_t *spa);
+extern void spa_update_dspace(spa_t *spa);
+extern uint64_t spa_version(spa_t *spa);
+extern boolean_t spa_deflate(spa_t *spa);
+extern metaslab_class_t *spa_normal_class(spa_t *spa);
+extern metaslab_class_t *spa_log_class(spa_t *spa);
+extern int spa_max_replication(spa_t *spa);
+extern int spa_prev_software_version(spa_t *spa);
+extern int spa_busy(void);
+extern uint8_t spa_get_failmode(spa_t *spa);
+extern boolean_t spa_suspended(spa_t *spa);
+extern uint64_t spa_bootfs(spa_t *spa);
+extern uint64_t spa_delegation(spa_t *spa);
+extern objset_t *spa_meta_objset(spa_t *spa);
+
+/* Miscellaneous support routines */
+extern int spa_rename(const char *oldname, const char *newname);
+extern spa_t *spa_by_guid(uint64_t pool_guid, uint64_t device_guid);
+extern boolean_t spa_guid_exists(uint64_t pool_guid, uint64_t device_guid);
+extern char *spa_strdup(const char *);
+extern void spa_strfree(char *);
+extern uint64_t spa_get_random(uint64_t range);
+extern uint64_t spa_generate_guid(spa_t *spa);
+extern void sprintf_blkptr(char *buf, const blkptr_t *bp);
+extern void spa_freeze(spa_t *spa);
+extern void spa_upgrade(spa_t *spa, uint64_t version);
+extern void spa_evict_all(void);
+extern vdev_t *spa_lookup_by_guid(spa_t *spa, uint64_t guid,
+    boolean_t l2cache);
+extern boolean_t spa_has_spare(spa_t *, uint64_t guid);
+extern uint64_t dva_get_dsize_sync(spa_t *spa, const dva_t *dva);
+extern uint64_t bp_get_dsize_sync(spa_t *spa, const blkptr_t *bp);
+extern uint64_t bp_get_dsize(spa_t *spa, const blkptr_t *bp);
+extern boolean_t spa_has_slogs(spa_t *spa);
+extern boolean_t spa_is_root(spa_t *spa);
+extern boolean_t spa_writeable(spa_t *spa);
+
+extern int spa_mode(spa_t *spa);
+extern uint64_t strtonum(const char *str, char **nptr);
+
+/* history logging */
+typedef enum history_log_type {
+       LOG_CMD_POOL_CREATE,
+       LOG_CMD_NORMAL,
+       LOG_INTERNAL
+} history_log_type_t;
+
+typedef struct history_arg {
+       char *ha_history_str;
+       history_log_type_t ha_log_type;
+       history_internal_events_t ha_event;
+       char *ha_zone;
+       uid_t ha_uid;
+} history_arg_t;
+
+extern char *spa_his_ievent_table[];
+
+extern void spa_history_create_obj(spa_t *spa, dmu_tx_t *tx);
+extern int spa_history_get(spa_t *spa, uint64_t *offset, uint64_t *len_read,
+    char *his_buf);
+extern int spa_history_log(spa_t *spa, const char *his_buf,
+    history_log_type_t what);
+extern void spa_history_log_internal(history_internal_events_t event,
+    spa_t *spa, dmu_tx_t *tx, const char *fmt, ...);
+extern void spa_history_log_version(spa_t *spa, history_internal_events_t evt);
+
+/* error handling */
+struct zbookmark;
+extern void spa_log_error(spa_t *spa, zio_t *zio);
+extern void zfs_ereport_post(const char *class, spa_t *spa, vdev_t *vd,
+    zio_t *zio, uint64_t stateoroffset, uint64_t length);
+extern void zfs_post_remove(spa_t *spa, vdev_t *vd);
+extern void zfs_post_state_change(spa_t *spa, vdev_t *vd);
+extern void zfs_post_autoreplace(spa_t *spa, vdev_t *vd);
+extern uint64_t spa_get_errlog_size(spa_t *spa);
+extern int spa_get_errlog(spa_t *spa, void *uaddr, size_t *count);
+extern void spa_errlog_rotate(spa_t *spa);
+extern void spa_errlog_drain(spa_t *spa);
+extern void spa_errlog_sync(spa_t *spa, uint64_t txg);
+extern void spa_get_errlists(spa_t *spa, avl_tree_t *last, avl_tree_t *scrub);
+
+/* vdev cache */
+extern void vdev_cache_stat_init(void);
+extern void vdev_cache_stat_fini(void);
+
+/* Initialization and termination */
+extern void spa_init(int flags);
+extern void spa_fini(void);
+extern void spa_boot_init(void);
+
+/* properties */
+extern int spa_prop_set(spa_t *spa, nvlist_t *nvp);
+extern int spa_prop_get(spa_t *spa, nvlist_t **nvp);
+extern void spa_prop_clear_bootfs(spa_t *spa, uint64_t obj, dmu_tx_t *tx);
+extern void spa_configfile_set(spa_t *, nvlist_t *, boolean_t);
+
+/* asynchronous event notification */
+extern void spa_event_notify(spa_t *spa, vdev_t *vdev, const char *name);
+
+#ifdef ZFS_DEBUG
+#define        dprintf_bp(bp, fmt, ...) do {                           \
+       if (zfs_flags & ZFS_DEBUG_DPRINTF) {                    \
+       char *__blkbuf = kmem_alloc(BP_SPRINTF_LEN, KM_SLEEP);  \
+       sprintf_blkptr(__blkbuf, (bp));                         \
+       dprintf(fmt " %s\n", __VA_ARGS__, __blkbuf);            \
+       kmem_free(__blkbuf, BP_SPRINTF_LEN);                    \
+       } \
+_NOTE(CONSTCOND) } while (0)
+#else
+#define        dprintf_bp(bp, fmt, ...)
+#endif
+
+extern int spa_mode_global;                    /* mode, e.g. FREAD | FWRITE */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_SPA_H */
diff --git a/include/sys/spa_boot.h b/include/sys/spa_boot.h
new file mode 100644 (file)
index 0000000..1d3622f
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_SPA_BOOT_H
+#define        _SYS_SPA_BOOT_H
+
+#include <sys/nvpair.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern char *spa_get_bootprop(char *prop);
+extern void spa_free_bootprop(char *prop);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_SPA_BOOT_H */
diff --git a/include/sys/spa_impl.h b/include/sys/spa_impl.h
new file mode 100644 (file)
index 0000000..1c34873
--- /dev/null
@@ -0,0 +1,235 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _SYS_SPA_IMPL_H
+#define        _SYS_SPA_IMPL_H
+
+#include <sys/spa.h>
+#include <sys/vdev.h>
+#include <sys/metaslab.h>
+#include <sys/dmu.h>
+#include <sys/dsl_pool.h>
+#include <sys/uberblock_impl.h>
+#include <sys/zfs_context.h>
+#include <sys/avl.h>
+#include <sys/refcount.h>
+#include <sys/bplist.h>
+#include <sys/bpobj.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct spa_error_entry {
+       zbookmark_t     se_bookmark;
+       char            *se_name;
+       avl_node_t      se_avl;
+} spa_error_entry_t;
+
+typedef struct spa_history_phys {
+       uint64_t sh_pool_create_len;    /* ending offset of zpool create */
+       uint64_t sh_phys_max_off;       /* physical EOF */
+       uint64_t sh_bof;                /* logical BOF */
+       uint64_t sh_eof;                /* logical EOF */
+       uint64_t sh_records_lost;       /* num of records overwritten */
+} spa_history_phys_t;
+
+struct spa_aux_vdev {
+       uint64_t        sav_object;             /* MOS object for device list */
+       nvlist_t        *sav_config;            /* cached device config */
+       vdev_t          **sav_vdevs;            /* devices */
+       int             sav_count;              /* number devices */
+       boolean_t       sav_sync;               /* sync the device list */
+       nvlist_t        **sav_pending;          /* pending device additions */
+       uint_t          sav_npending;           /* # pending devices */
+};
+
+typedef struct spa_config_lock {
+       kmutex_t        scl_lock;
+       kthread_t       *scl_writer;
+       int             scl_write_wanted;
+       kcondvar_t      scl_cv;
+       refcount_t      scl_count;
+} spa_config_lock_t;
+
+typedef struct spa_config_dirent {
+       list_node_t     scd_link;
+       char            *scd_path;
+} spa_config_dirent_t;
+
+enum zio_taskq_type {
+       ZIO_TASKQ_ISSUE = 0,
+       ZIO_TASKQ_ISSUE_HIGH,
+       ZIO_TASKQ_INTERRUPT,
+       ZIO_TASKQ_INTERRUPT_HIGH,
+       ZIO_TASKQ_TYPES
+};
+
+/*
+ * State machine for the zpool-pooname process.  The states transitions
+ * are done as follows:
+ *
+ *     From               To                   Routine
+ *     PROC_NONE       -> PROC_CREATED         spa_activate()
+ *     PROC_CREATED    -> PROC_ACTIVE          spa_thread()
+ *     PROC_ACTIVE     -> PROC_DEACTIVATE      spa_deactivate()
+ *     PROC_DEACTIVATE -> PROC_GONE            spa_thread()
+ *     PROC_GONE       -> PROC_NONE            spa_deactivate()
+ */
+typedef enum spa_proc_state {
+       SPA_PROC_NONE,          /* spa_proc = &p0, no process created */
+       SPA_PROC_CREATED,       /* spa_activate() has proc, is waiting */
+       SPA_PROC_ACTIVE,        /* taskqs created, spa_proc set */
+       SPA_PROC_DEACTIVATE,    /* spa_deactivate() requests process exit */
+       SPA_PROC_GONE           /* spa_thread() is exiting, spa_proc = &p0 */
+} spa_proc_state_t;
+
+struct spa {
+       /*
+        * Fields protected by spa_namespace_lock.
+        */
+       char            spa_name[MAXNAMELEN];   /* pool name */
+       avl_node_t      spa_avl;                /* node in spa_namespace_avl */
+       nvlist_t        *spa_config;            /* last synced config */
+       nvlist_t        *spa_config_syncing;    /* currently syncing config */
+       nvlist_t        *spa_config_splitting;  /* config for splitting */
+       nvlist_t        *spa_load_info;         /* info and errors from load */
+       uint64_t        spa_config_txg;         /* txg of last config change */
+       int             spa_sync_pass;          /* iterate-to-convergence */
+       pool_state_t    spa_state;              /* pool state */
+       int             spa_inject_ref;         /* injection references */
+       uint8_t         spa_sync_on;            /* sync threads are running */
+       spa_load_state_t spa_load_state;        /* current load operation */
+       uint64_t        spa_import_flags;       /* import specific flags */
+       taskq_t         *spa_zio_taskq[ZIO_TYPES][ZIO_TASKQ_TYPES];
+       dsl_pool_t      *spa_dsl_pool;
+       metaslab_class_t *spa_normal_class;     /* normal data class */
+       metaslab_class_t *spa_log_class;        /* intent log data class */
+       uint64_t        spa_first_txg;          /* first txg after spa_open() */
+       uint64_t        spa_final_txg;          /* txg of export/destroy */
+       uint64_t        spa_freeze_txg;         /* freeze pool at this txg */
+       uint64_t        spa_load_max_txg;       /* best initial ub_txg */
+       uint64_t        spa_claim_max_txg;      /* highest claimed birth txg */
+       timespec_t      spa_loaded_ts;          /* 1st successful open time */
+       objset_t        *spa_meta_objset;       /* copy of dp->dp_meta_objset */
+       txg_list_t      spa_vdev_txg_list;      /* per-txg dirty vdev list */
+       vdev_t          *spa_root_vdev;         /* top-level vdev container */
+       uint64_t        spa_load_guid;          /* initial guid for spa_load */
+       list_t          spa_config_dirty_list;  /* vdevs with dirty config */
+       list_t          spa_state_dirty_list;   /* vdevs with dirty state */
+       spa_aux_vdev_t  spa_spares;             /* hot spares */
+       spa_aux_vdev_t  spa_l2cache;            /* L2ARC cache devices */
+       uint64_t        spa_config_object;      /* MOS object for pool config */
+       uint64_t        spa_config_generation;  /* config generation number */
+       uint64_t        spa_syncing_txg;        /* txg currently syncing */
+       bpobj_t         spa_deferred_bpobj;     /* deferred-free bplist */
+       bplist_t        spa_free_bplist[TXG_SIZE]; /* bplist of stuff to free */
+       uberblock_t     spa_ubsync;             /* last synced uberblock */
+       uberblock_t     spa_uberblock;          /* current uberblock */
+       boolean_t       spa_extreme_rewind;     /* rewind past deferred frees */
+       uint64_t        spa_last_io;            /* lbolt of last non-scan I/O */
+       kmutex_t        spa_scrub_lock;         /* resilver/scrub lock */
+       uint64_t        spa_scrub_inflight;     /* in-flight scrub I/Os */
+       kcondvar_t      spa_scrub_io_cv;        /* scrub I/O completion */
+       uint8_t         spa_scrub_active;       /* active or suspended? */
+       uint8_t         spa_scrub_type;         /* type of scrub we're doing */
+       uint8_t         spa_scrub_finished;     /* indicator to rotate logs */
+       uint8_t         spa_scrub_started;      /* started since last boot */
+       uint8_t         spa_scrub_reopen;       /* scrub doing vdev_reopen */
+       uint64_t        spa_scan_pass_start;    /* start time per pass/reboot */
+       uint64_t        spa_scan_pass_exam;     /* examined bytes per pass */
+       kmutex_t        spa_async_lock;         /* protect async state */
+       kthread_t       *spa_async_thread;      /* thread doing async task */
+       int             spa_async_suspended;    /* async tasks suspended */
+       kcondvar_t      spa_async_cv;           /* wait for thread_exit() */
+       uint16_t        spa_async_tasks;        /* async task mask */
+       char            *spa_root;              /* alternate root directory */
+       uint64_t        spa_ena;                /* spa-wide ereport ENA */
+       int             spa_last_open_failed;   /* error if last open failed */
+       uint64_t        spa_last_ubsync_txg;    /* "best" uberblock txg */
+       uint64_t        spa_last_ubsync_txg_ts; /* timestamp from that ub */
+       uint64_t        spa_load_txg;           /* ub txg that loaded */
+       uint64_t        spa_load_txg_ts;        /* timestamp from that ub */
+       uint64_t        spa_load_meta_errors;   /* verify metadata err count */
+       uint64_t        spa_load_data_errors;   /* verify data err count */
+       uint64_t        spa_verify_min_txg;     /* start txg of verify scrub */
+       kmutex_t        spa_errlog_lock;        /* error log lock */
+       uint64_t        spa_errlog_last;        /* last error log object */
+       uint64_t        spa_errlog_scrub;       /* scrub error log object */
+       kmutex_t        spa_errlist_lock;       /* error list/ereport lock */
+       avl_tree_t      spa_errlist_last;       /* last error list */
+       avl_tree_t      spa_errlist_scrub;      /* scrub error list */
+       uint64_t        spa_deflate;            /* should we deflate? */
+       uint64_t        spa_history;            /* history object */
+       kmutex_t        spa_history_lock;       /* history lock */
+       vdev_t          *spa_pending_vdev;      /* pending vdev additions */
+       kmutex_t        spa_props_lock;         /* property lock */
+       uint64_t        spa_pool_props_object;  /* object for properties */
+       uint64_t        spa_bootfs;             /* default boot filesystem */
+       uint64_t        spa_failmode;           /* failure mode for the pool */
+       uint64_t        spa_delegation;         /* delegation on/off */
+       list_t          spa_config_list;        /* previous cache file(s) */
+       zio_t           *spa_async_zio_root;    /* root of all async I/O */
+       zio_t           *spa_suspend_zio_root;  /* root of all suspended I/O */
+       kmutex_t        spa_suspend_lock;       /* protects suspend_zio_root */
+       kcondvar_t      spa_suspend_cv;         /* notification of resume */
+       uint8_t         spa_suspended;          /* pool is suspended */
+       uint8_t         spa_claiming;           /* pool is doing zil_claim() */
+       boolean_t       spa_is_root;            /* pool is root */
+       int             spa_minref;             /* num refs when first opened */
+       int             spa_mode;               /* FREAD | FWRITE */
+       spa_log_state_t spa_log_state;          /* log state */
+       uint64_t        spa_autoexpand;         /* lun expansion on/off */
+       ddt_t           *spa_ddt[ZIO_CHECKSUM_FUNCTIONS]; /* in-core DDTs */
+       uint64_t        spa_ddt_stat_object;    /* DDT statistics */
+       uint64_t        spa_dedup_ditto;        /* dedup ditto threshold */
+       uint64_t        spa_dedup_checksum;     /* default dedup checksum */
+       uint64_t        spa_dspace;             /* dspace in normal class */
+       kmutex_t        spa_vdev_top_lock;      /* dueling offline/remove */
+       kmutex_t        spa_proc_lock;          /* protects spa_proc* */
+       kcondvar_t      spa_proc_cv;            /* spa_proc_state transitions */
+       spa_proc_state_t spa_proc_state;        /* see definition */
+       proc_t          *spa_proc;              /* "zpool-poolname" process */
+       uint64_t        spa_did;                /* if procp != p0, did of t1 */
+       boolean_t       spa_autoreplace;        /* autoreplace set in open */
+       int             spa_vdev_locks;         /* locks grabbed */
+       uint64_t        spa_creation_version;   /* version at pool creation */
+       uint64_t        spa_prev_software_version;
+       /*
+        * spa_refcnt & spa_config_lock must be the last elements
+        * because refcount_t changes size based on compilation options.
+        * In order for the MDB module to function correctly, the other
+        * fields must remain in the same location.
+        */
+       spa_config_lock_t spa_config_lock[SCL_LOCKS]; /* config changes */
+       refcount_t      spa_refcount;           /* number of opens */
+};
+
+extern char *spa_config_path;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_SPA_IMPL_H */
diff --git a/include/sys/space_map.h b/include/sys/space_map.h
new file mode 100644 (file)
index 0000000..6f935c9
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_SPACE_MAP_H
+#define        _SYS_SPACE_MAP_H
+
+#include <sys/avl.h>
+#include <sys/dmu.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct space_map_ops space_map_ops_t;
+
+typedef struct space_map {
+       avl_tree_t      sm_root;        /* AVL tree of map segments */
+       uint64_t        sm_space;       /* sum of all segments in the map */
+       uint64_t        sm_start;       /* start of map */
+       uint64_t        sm_size;        /* size of map */
+       uint8_t         sm_shift;       /* unit shift */
+       uint8_t         sm_pad[3];      /* unused */
+       uint8_t         sm_loaded;      /* map loaded? */
+       uint8_t         sm_loading;     /* map loading? */
+       kcondvar_t      sm_load_cv;     /* map load completion */
+       space_map_ops_t *sm_ops;        /* space map block picker ops vector */
+       avl_tree_t      *sm_pp_root;    /* picker-private AVL tree */
+       void            *sm_ppd;        /* picker-private data */
+       kmutex_t        *sm_lock;       /* pointer to lock that protects map */
+} space_map_t;
+
+typedef struct space_seg {
+       avl_node_t      ss_node;        /* AVL node */
+       avl_node_t      ss_pp_node;     /* AVL picker-private node */
+       uint64_t        ss_start;       /* starting offset of this segment */
+       uint64_t        ss_end;         /* ending offset (non-inclusive) */
+} space_seg_t;
+
+typedef struct space_ref {
+       avl_node_t      sr_node;        /* AVL node */
+       uint64_t        sr_offset;      /* offset (start or end) */
+       int64_t         sr_refcnt;      /* associated reference count */
+} space_ref_t;
+
+typedef struct space_map_obj {
+       uint64_t        smo_object;     /* on-disk space map object */
+       uint64_t        smo_objsize;    /* size of the object */
+       uint64_t        smo_alloc;      /* space allocated from the map */
+} space_map_obj_t;
+
+struct space_map_ops {
+       void    (*smop_load)(space_map_t *sm);
+       void    (*smop_unload)(space_map_t *sm);
+       uint64_t (*smop_alloc)(space_map_t *sm, uint64_t size);
+       void    (*smop_claim)(space_map_t *sm, uint64_t start, uint64_t size);
+       void    (*smop_free)(space_map_t *sm, uint64_t start, uint64_t size);
+       uint64_t (*smop_max)(space_map_t *sm);
+       boolean_t (*smop_fragmented)(space_map_t *sm);
+};
+
+/*
+ * debug entry
+ *
+ *    1      3         10                     50
+ *  ,---+--------+------------+---------------------------------.
+ *  | 1 | action |  syncpass  |        txg (lower bits)         |
+ *  `---+--------+------------+---------------------------------'
+ *   63  62    60 59        50 49                               0
+ *
+ *
+ *
+ * non-debug entry
+ *
+ *    1               47                   1           15
+ *  ,-----------------------------------------------------------.
+ *  | 0 |   offset (sm_shift units)    | type |       run       |
+ *  `-----------------------------------------------------------'
+ *   63  62                          17   16   15               0
+ */
+
+/* All this stuff takes and returns bytes */
+#define        SM_RUN_DECODE(x)        (BF64_DECODE(x, 0, 15) + 1)
+#define        SM_RUN_ENCODE(x)        BF64_ENCODE((x) - 1, 0, 15)
+#define        SM_TYPE_DECODE(x)       BF64_DECODE(x, 15, 1)
+#define        SM_TYPE_ENCODE(x)       BF64_ENCODE(x, 15, 1)
+#define        SM_OFFSET_DECODE(x)     BF64_DECODE(x, 16, 47)
+#define        SM_OFFSET_ENCODE(x)     BF64_ENCODE(x, 16, 47)
+#define        SM_DEBUG_DECODE(x)      BF64_DECODE(x, 63, 1)
+#define        SM_DEBUG_ENCODE(x)      BF64_ENCODE(x, 63, 1)
+
+#define        SM_DEBUG_ACTION_DECODE(x)       BF64_DECODE(x, 60, 3)
+#define        SM_DEBUG_ACTION_ENCODE(x)       BF64_ENCODE(x, 60, 3)
+
+#define        SM_DEBUG_SYNCPASS_DECODE(x)     BF64_DECODE(x, 50, 10)
+#define        SM_DEBUG_SYNCPASS_ENCODE(x)     BF64_ENCODE(x, 50, 10)
+
+#define        SM_DEBUG_TXG_DECODE(x)          BF64_DECODE(x, 0, 50)
+#define        SM_DEBUG_TXG_ENCODE(x)          BF64_ENCODE(x, 0, 50)
+
+#define        SM_RUN_MAX                      SM_RUN_DECODE(~0ULL)
+
+#define        SM_ALLOC        0x0
+#define        SM_FREE         0x1
+
+/*
+ * The data for a given space map can be kept on blocks of any size.
+ * Larger blocks entail fewer i/o operations, but they also cause the
+ * DMU to keep more data in-core, and also to waste more i/o bandwidth
+ * when only a few blocks have changed since the last transaction group.
+ * This could use a lot more research, but for now, set the freelist
+ * block size to 4k (2^12).
+ */
+#define        SPACE_MAP_BLOCKSHIFT    12
+
+typedef void space_map_func_t(space_map_t *sm, uint64_t start, uint64_t size);
+
+extern void space_map_create(space_map_t *sm, uint64_t start, uint64_t size,
+    uint8_t shift, kmutex_t *lp);
+extern void space_map_destroy(space_map_t *sm);
+extern void space_map_add(space_map_t *sm, uint64_t start, uint64_t size);
+extern void space_map_remove(space_map_t *sm, uint64_t start, uint64_t size);
+extern boolean_t space_map_contains(space_map_t *sm,
+    uint64_t start, uint64_t size);
+extern void space_map_vacate(space_map_t *sm,
+    space_map_func_t *func, space_map_t *mdest);
+extern void space_map_walk(space_map_t *sm,
+    space_map_func_t *func, space_map_t *mdest);
+
+extern void space_map_load_wait(space_map_t *sm);
+extern int space_map_load(space_map_t *sm, space_map_ops_t *ops,
+    uint8_t maptype, space_map_obj_t *smo, objset_t *os);
+extern void space_map_unload(space_map_t *sm);
+
+extern uint64_t space_map_alloc(space_map_t *sm, uint64_t size);
+extern void space_map_claim(space_map_t *sm, uint64_t start, uint64_t size);
+extern void space_map_free(space_map_t *sm, uint64_t start, uint64_t size);
+extern uint64_t space_map_maxsize(space_map_t *sm);
+
+extern void space_map_sync(space_map_t *sm, uint8_t maptype,
+    space_map_obj_t *smo, objset_t *os, dmu_tx_t *tx);
+extern void space_map_truncate(space_map_obj_t *smo,
+    objset_t *os, dmu_tx_t *tx);
+
+extern void space_map_ref_create(avl_tree_t *t);
+extern void space_map_ref_destroy(avl_tree_t *t);
+extern void space_map_ref_add_seg(avl_tree_t *t,
+    uint64_t start, uint64_t end, int64_t refcnt);
+extern void space_map_ref_add_map(avl_tree_t *t,
+    space_map_t *sm, int64_t refcnt);
+extern void space_map_ref_generate_map(avl_tree_t *t,
+    space_map_t *sm, int64_t minref);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_SPACE_MAP_H */
diff --git a/include/sys/txg.h b/include/sys/txg.h
new file mode 100644 (file)
index 0000000..e323d5e
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_TXG_H
+#define        _SYS_TXG_H
+
+#include <sys/spa.h>
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define        TXG_CONCURRENT_STATES   3       /* open, quiescing, syncing     */
+#define        TXG_SIZE                4               /* next power of 2      */
+#define        TXG_MASK                (TXG_SIZE - 1)  /* mask for size        */
+#define        TXG_INITIAL             TXG_SIZE        /* initial txg          */
+#define        TXG_IDX                 (txg & TXG_MASK)
+
+/* Number of txgs worth of frees we defer adding to in-core spacemaps */
+#define        TXG_DEFER_SIZE          2
+
+#define        TXG_WAIT                1ULL
+#define        TXG_NOWAIT              2ULL
+
+typedef struct tx_cpu tx_cpu_t;
+
+typedef struct txg_handle {
+       tx_cpu_t        *th_cpu;
+       uint64_t        th_txg;
+} txg_handle_t;
+
+typedef struct txg_node {
+       struct txg_node *tn_next[TXG_SIZE];
+       uint8_t         tn_member[TXG_SIZE];
+} txg_node_t;
+
+typedef struct txg_list {
+       kmutex_t        tl_lock;
+       size_t          tl_offset;
+       txg_node_t      *tl_head[TXG_SIZE];
+} txg_list_t;
+
+struct dsl_pool;
+
+extern void txg_init(struct dsl_pool *dp, uint64_t txg);
+extern void txg_fini(struct dsl_pool *dp);
+extern void txg_sync_start(struct dsl_pool *dp);
+extern void txg_sync_stop(struct dsl_pool *dp);
+extern uint64_t txg_hold_open(struct dsl_pool *dp, txg_handle_t *txghp);
+extern void txg_rele_to_quiesce(txg_handle_t *txghp);
+extern void txg_rele_to_sync(txg_handle_t *txghp);
+extern void txg_register_callbacks(txg_handle_t *txghp, list_t *tx_callbacks);
+
+/*
+ * Delay the caller by the specified number of ticks or until
+ * the txg closes (whichever comes first).  This is intended
+ * to be used to throttle writers when the system nears its
+ * capacity.
+ */
+extern void txg_delay(struct dsl_pool *dp, uint64_t txg, int ticks);
+
+/*
+ * Wait until the given transaction group has finished syncing.
+ * Try to make this happen as soon as possible (eg. kick off any
+ * necessary syncs immediately).  If txg==0, wait for the currently open
+ * txg to finish syncing.
+ */
+extern void txg_wait_synced(struct dsl_pool *dp, uint64_t txg);
+
+/*
+ * Wait until the given transaction group, or one after it, is
+ * the open transaction group.  Try to make this happen as soon
+ * as possible (eg. kick off any necessary syncs immediately).
+ * If txg == 0, wait for the next open txg.
+ */
+extern void txg_wait_open(struct dsl_pool *dp, uint64_t txg);
+
+/*
+ * Returns TRUE if we are "backed up" waiting for the syncing
+ * transaction to complete; otherwise returns FALSE.
+ */
+extern boolean_t txg_stalled(struct dsl_pool *dp);
+
+/* returns TRUE if someone is waiting for the next txg to sync */
+extern boolean_t txg_sync_waiting(struct dsl_pool *dp);
+
+/*
+ * Per-txg object lists.
+ */
+
+#define        TXG_CLEAN(txg)  ((txg) - 1)
+
+extern void txg_list_create(txg_list_t *tl, size_t offset);
+extern void txg_list_destroy(txg_list_t *tl);
+extern int txg_list_empty(txg_list_t *tl, uint64_t txg);
+extern int txg_list_add(txg_list_t *tl, void *p, uint64_t txg);
+extern int txg_list_add_tail(txg_list_t *tl, void *p, uint64_t txg);
+extern void *txg_list_remove(txg_list_t *tl, uint64_t txg);
+extern void *txg_list_remove_this(txg_list_t *tl, void *p, uint64_t txg);
+extern int txg_list_member(txg_list_t *tl, void *p, uint64_t txg);
+extern void *txg_list_head(txg_list_t *tl, uint64_t txg);
+extern void *txg_list_next(txg_list_t *tl, void *p, uint64_t txg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_TXG_H */
diff --git a/include/sys/txg_impl.h b/include/sys/txg_impl.h
new file mode 100644 (file)
index 0000000..7b356ea
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_TXG_IMPL_H
+#define        _SYS_TXG_IMPL_H
+
+#include <sys/spa.h>
+#include <sys/txg.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct tx_cpu {
+       kmutex_t        tc_lock;
+       kcondvar_t      tc_cv[TXG_SIZE];
+       uint64_t        tc_count[TXG_SIZE];
+       list_t          tc_callbacks[TXG_SIZE]; /* commit cb list */
+       char            tc_pad[16];
+};
+
+typedef struct tx_state {
+       tx_cpu_t        *tx_cpu;        /* protects right to enter txg  */
+       kmutex_t        tx_sync_lock;   /* protects tx_state_t */
+       uint64_t        tx_open_txg;    /* currently open txg id */
+       uint64_t        tx_quiesced_txg; /* quiesced txg waiting for sync */
+       uint64_t        tx_syncing_txg; /* currently syncing txg id */
+       uint64_t        tx_synced_txg;  /* last synced txg id */
+
+       uint64_t        tx_sync_txg_waiting; /* txg we're waiting to sync */
+       uint64_t        tx_quiesce_txg_waiting; /* txg we're waiting to open */
+
+       kcondvar_t      tx_sync_more_cv;
+       kcondvar_t      tx_sync_done_cv;
+       kcondvar_t      tx_quiesce_more_cv;
+       kcondvar_t      tx_quiesce_done_cv;
+       kcondvar_t      tx_timeout_cv;
+       kcondvar_t      tx_exit_cv;     /* wait for all threads to exit */
+
+       uint8_t         tx_threads;     /* number of threads */
+       uint8_t         tx_exiting;     /* set when we're exiting */
+
+       kthread_t       *tx_sync_thread;
+       kthread_t       *tx_quiesce_thread;
+
+       taskq_t         *tx_commit_cb_taskq; /* commit callback taskq */
+} tx_state_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_TXG_IMPL_H */
diff --git a/include/sys/u8_textprep.h b/include/sys/u8_textprep.h
new file mode 100644 (file)
index 0000000..f8b5bed
--- /dev/null
@@ -0,0 +1,113 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SYS_U8_TEXTPREP_H
+#define        _SYS_U8_TEXTPREP_H
+
+
+
+#include <sys/isa_defs.h>
+#include <sys/types.h>
+#include <sys/errno.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Unicode encoding conversion functions and their macros.
+ */
+#define        UCONV_IN_BIG_ENDIAN             0x0001
+#define        UCONV_OUT_BIG_ENDIAN            0x0002
+#define        UCONV_IN_SYSTEM_ENDIAN          0x0004
+#define        UCONV_OUT_SYSTEM_ENDIAN         0x0008
+#define        UCONV_IN_LITTLE_ENDIAN          0x0010
+#define        UCONV_OUT_LITTLE_ENDIAN         0x0020
+#define        UCONV_IGNORE_NULL               0x0040
+#define        UCONV_IN_ACCEPT_BOM             0x0080
+#define        UCONV_OUT_EMIT_BOM              0x0100
+
+extern int uconv_u16tou32(const uint16_t *, size_t *, uint32_t *, size_t *,
+       int);
+extern int uconv_u16tou8(const uint16_t *, size_t *, uchar_t *, size_t *, int);
+extern int uconv_u32tou16(const uint32_t *, size_t *, uint16_t *, size_t *,
+       int);
+extern int uconv_u32tou8(const uint32_t *, size_t *, uchar_t *, size_t *, int);
+extern int uconv_u8tou16(const uchar_t *, size_t *, uint16_t *, size_t *, int);
+extern int uconv_u8tou32(const uchar_t *, size_t *, uint32_t *, size_t *, int);
+
+/*
+ * UTF-8 text preparation functions and their macros.
+ *
+ * Among the macros defined, U8_CANON_DECOMP, U8_COMPAT_DECOMP, and
+ * U8_CANON_COMP are not public interfaces and must not be used directly
+ * at the flag input argument.
+ */
+#define        U8_STRCMP_CS                    (0x00000001)
+#define        U8_STRCMP_CI_UPPER              (0x00000002)
+#define        U8_STRCMP_CI_LOWER              (0x00000004)
+
+#define        U8_CANON_DECOMP                 (0x00000010)
+#define        U8_COMPAT_DECOMP                (0x00000020)
+#define        U8_CANON_COMP                   (0x00000040)
+
+#define        U8_STRCMP_NFD                   (U8_CANON_DECOMP)
+#define        U8_STRCMP_NFC                   (U8_CANON_DECOMP | U8_CANON_COMP)
+#define        U8_STRCMP_NFKD                  (U8_COMPAT_DECOMP)
+#define        U8_STRCMP_NFKC                  (U8_COMPAT_DECOMP | U8_CANON_COMP)
+
+#define        U8_TEXTPREP_TOUPPER             (U8_STRCMP_CI_UPPER)
+#define        U8_TEXTPREP_TOLOWER             (U8_STRCMP_CI_LOWER)
+
+#define        U8_TEXTPREP_NFD                 (U8_STRCMP_NFD)
+#define        U8_TEXTPREP_NFC                 (U8_STRCMP_NFC)
+#define        U8_TEXTPREP_NFKD                (U8_STRCMP_NFKD)
+#define        U8_TEXTPREP_NFKC                (U8_STRCMP_NFKC)
+
+#define        U8_TEXTPREP_IGNORE_NULL         (0x00010000)
+#define        U8_TEXTPREP_IGNORE_INVALID      (0x00020000)
+#define        U8_TEXTPREP_NOWAIT              (0x00040000)
+
+#define        U8_UNICODE_320                  (0)
+#define        U8_UNICODE_500                  (1)
+#define        U8_UNICODE_LATEST               (U8_UNICODE_500)
+
+#define        U8_VALIDATE_ENTIRE              (0x00100000)
+#define        U8_VALIDATE_CHECK_ADDITIONAL    (0x00200000)
+#define        U8_VALIDATE_UCS2_RANGE          (0x00400000)
+
+#define        U8_ILLEGAL_CHAR                 (-1)
+#define        U8_OUT_OF_RANGE_CHAR            (-2)
+
+extern int u8_validate(char *, size_t, char **, int, int *);
+extern int u8_strcmp(const char *, const char *, size_t, int, size_t, int *);
+extern size_t u8_textprep_str(char *, size_t *, char *, size_t *, int, size_t,
+       int *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_U8_TEXTPREP_H */
diff --git a/include/sys/u8_textprep_data.h b/include/sys/u8_textprep_data.h
new file mode 100644 (file)
index 0000000..03f71f2
--- /dev/null
@@ -0,0 +1,35376 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+/*
+ * COPYRIGHT AND PERMISSION NOTICE
+ *
+ * Copyright (c) 1991-2006 Unicode, Inc. All rights reserved. Distributed under
+ * the Terms of Use in http://www.unicode.org/copyright.html.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of the Unicode data files and any associated documentation (the
+ * "Data Files") or Unicode software and any associated documentation (the
+ * "Software") to deal in the Data Files or Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, and/or sell copies of the Data Files or Software, and
+ * to permit persons to whom the Data Files or Software are furnished to do so,
+ * provided that (a) the above copyright notice(s) and this permission notice
+ * appear with all copies of the Data Files or Software, (b) both the above
+ * copyright notice(s) and this permission notice appear in associated
+ * documentation, and (c) there is clear notice in each modified Data File or
+ * in the Software as well as in the documentation associated with the Data
+ * File(s) or Software that the data or software has been modified.
+ *
+ * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+ * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
+ * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
+ * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR
+ * CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THE DATA FILES OR SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder shall not
+ * be used in advertising or otherwise to promote the sale, use or other
+ * dealings in these Data Files or Software without prior written authorization
+ * of the copyright holder.
+ *
+ * Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be
+ * registered in some jurisdictions. All other trademarks and registered
+ * trademarks mentioned herein are the property of their respective owners.
+ */
+/*
+ * This file has been modified by Sun Microsystems, Inc.
+ */
+
+#ifndef _SYS_U8_TEXTPREP_DATA_H
+#define        _SYS_U8_TEXTPREP_DATA_H
+
+
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * To get to the combining class data, composition mappings, decomposition
+ * mappings, and case conversion mappings of Unicode, the data structures
+ * formulated and their meanings are like the following:
+ *
+ * Each UTF-8 character is seen as a 4-byte entity so that U+0061 (or 0x61 in
+ * UTF-8) would be seen as 0x00 0x00 0x00 0x61. Similarly, U+1D15E would be
+ * 0xF0 0x9D 0x85 0x9E in UTF-8.
+ *
+ * The first byte (MSB) value is an index to the b1_tbl, such as
+ * u8_common_b1_tbl and u8_composition_b1_tbl tables. A b1_tbl has
+ * indices to b2_tbl tables that have indices to b3_tbl. Each b3_tbl has
+ * either indices to b4_tbl or indices to b4_tbl and base values for
+ * displacement calculations later by using the u8_displacement_t type at
+ * below. Each b4_tbl table then has indices to the final tables.
+ *
+ * As an example, if we have a character with code value of U+1D15E which is
+ * 0xF0 0x9D 0x85 0x9E in UTF-8, the target decomposition character bytes
+ * that will be mapped by the mapping procedure would be the ones between
+ * the start_index and the end_index computed as like the following:
+ *
+ *     b2_tbl_id = u8_common_b1_tbl[0][0xF0];
+ *     b3_tbl_id = u8_decomp_b2_tbl[0][b2_tbl_id][0x9D];
+ *     b4_tbl_id = u8_decomp_b3_tbl[0][b3_tbl_id][0x85].tbl_id;
+ *     b4_base = u8_decomp_b3_tbl[0][b3_tbl_id][0x85].base;
+ *     if (b4_tbl_id >= 0x8000) {
+ *             b4_tbl_id -= 0x8000;
+ *             start_index = u8_decomp_b4_16bit_tbl[0][b4_tbl_id][0x9E];
+ *             end_index = u8_decomp_b4_16bit_tbl[0][b4_tbl_id][0x9E + 1];
+ *     } else {
+ *             start_index = u8_decomp_b4_tbl[0][b4_tbl_id][0x9E];
+ *             end_index = u8_decomp_b4_tbl[0][b4_tbl_id][0x9E + 1];
+ *     }
+ *
+ * The start_index and the end_index can be used to retrieve the bytes
+ * possibly of multiple UTF-8 characters from the final tables.
+ *
+ * The "[0]" at the above indicates this is for Unicode Version 3.2.0 data
+ * as of today.  Consequently, the "[1]" indicates another Unicode version
+ * data and it is Unicode 5.0.0 as of today.
+ *
+ * The mapping procedures and the data structures are more or less similar or
+ * alike among different mappings. You might want to read the u8_textprep.c
+ * for specific details.
+ *
+ * The tool programs created and used to generate the tables in this file are
+ * saved at PSARC/2007/149/materials/ as tools.tar.gz file.
+ */
+
+/* The following is a component type for the b4_tbl vectors. */
+typedef struct {
+       uint16_t        tbl_id;
+       uint16_t        base;
+} u8_displacement_t;
+
+/*
+ * The U8_TBL_ELEMENT_NOT_DEF macro indicates a byte that is not defined or
+ * used. The U8_TBL_ELEMENT_FILLER indicates the end of a UTF-8 character at
+ * the final tables.
+ */
+#define        U8_TBL_ELEMENT_NOT_DEF          (0xff)
+#define        N_                              U8_TBL_ELEMENT_NOT_DEF
+
+#define        U8_TBL_ELEMENT_FILLER           (0xf7)
+#define        FIL_                            U8_TBL_ELEMENT_FILLER
+
+/*
+ * The common b1_tbl for combining class, decompositions, tolower, and
+ * toupper case conversion mappings.
+ */
+static const uchar_t u8_common_b1_tbl[2][256] = {
+       {
+               0,  N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               1,  N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+       },
+       {
+               0,  N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               1,  N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+       },
+};
+
+static const uchar_t u8_combining_class_b2_tbl[2][2][256] = {
+       {
+               {
+                       0,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       1,  2,  3,  4,  N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, 5,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, 6,  N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+
+       },
+       {
+               {
+                       0,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       1,  2,  3,  4,  N_, N_, N_, N_,
+                       N_, N_, 5,  N_, N_, N_, N_, 6,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       7,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, 8,  N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+
+       },
+
+};
+
+static const uchar_t u8_combining_class_b3_tbl[2][9][256] = {
+       {
+               {       /* Third byte table 0. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, 0,  1,  N_, N_,
+                       N_, N_, 2,  N_, N_, N_, 3,  4,
+                       N_, 5,  N_, 6,  7,  8,  N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 1. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, 9,  10, 11, 12,
+                       13, 14, 15, 16, 17, 18, N_, 19,
+                       N_, 20, N_, 21, N_, 22, N_, 23,
+                       24, 25, 26, 27, 28, 29, 30, 31,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 2. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       32, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, 33, N_, N_, 34,
+                       N_, N_, 35, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 3. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, 36, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 4. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       37, N_, 38, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 5. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, 39, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       40, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 6. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, 41, 42, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 7. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 8. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+       },
+       {
+               {       /* Third byte table 0. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, 0,  1,  N_, N_,
+                       N_, N_, 2,  N_, N_, N_, 3,  4,
+                       5,  6,  N_, 7,  8,  9,  N_, 10,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 1. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, 11, 12, 13, 14,
+                       15, 16, 17, 18, 19, 20, N_, 21,
+                       N_, 22, 23, 24, N_, 25, N_, 26,
+                       27, 28, 29, 30, 31, 32, 33, 34,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 2. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       35, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, 36, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, 37, N_, N_, 38,
+                       N_, N_, 39, N_, 40, N_, N_, N_,
+                       41, N_, N_, N_, 42, 43, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, 44,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 3. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, 45, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 4. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       46, N_, 47, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 5. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       48, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 6. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, 49, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       50, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 7. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       51, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {       /* Third byte table 8. */
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, 52, 53, N_,
+                       N_, 54, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+       },
+};
+
+/*
+ * Unlike other b4_tbl, the b4_tbl for combining class data has
+ * the combining class values not indices to the final tables.
+ */
+static const uchar_t u8_combining_class_b4_tbl[2][55][256] = {
+       {
+               {       /* Fourth byte table 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,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       230, 230, 230, 230, 230, 230, 230, 230,
+                       230, 230, 230, 230, 230, 230, 230, 230,
+                       230, 230, 230, 230, 230, 232, 220, 220,
+                       220, 220, 232, 216, 220, 220, 220, 220,
+                       220, 202, 202, 220, 220, 220, 220, 202,
+                       202, 220, 220, 220, 220, 220, 220, 220,
+                       220, 220, 220, 220, 1,   1,   1,   1,
+                       1,   220, 220, 220, 220, 230, 230, 230,
+                       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,   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,
+               },
+               {       /* Fourth byte table 1. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       230, 230, 230, 230, 230, 240, 230, 220,
+                       220, 220, 230, 230, 230, 220, 220, 0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       234, 234, 233, 230, 230, 230, 230, 230,
+                       230, 230, 230, 230, 230, 230, 230, 230,
+                       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,   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,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 2. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   230, 230, 230, 230, 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,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 3. */
+                       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,   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,   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,   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,   220, 230, 230, 230, 230, 220, 230,
+                       230, 230, 222, 220, 230, 230, 230, 230,
+                       230, 230, 0,   220, 220, 220, 220, 220,
+                       230, 230, 220, 230, 230, 222, 228, 230,
+                       10,  11,  12,  13,  14,  15,  16,  17,
+                       18,  19,  0,   20,  21,  22,  0,   23,
+                       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,   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,
+               },
+               {       /* Fourth byte table 4. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   24,  25,  0,   230, 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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 5. */
+                       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,   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,   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,   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,   27,  28,  29,  30,  31,
+                       32,  33,  34,  230, 230, 220, 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,
+                       35,  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,   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,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 6. */
+                       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,   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,   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,   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,   0,   0,   230, 230,
+                       230, 230, 230, 230, 230, 0,   0,   230,
+                       230, 230, 230, 220, 230, 0,   0,   230,
+                       230, 0,   220, 230, 230, 220, 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,   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,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 7. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   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,   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,   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,   0,   0,   0,   0,   0,
+                       0,   36,  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,
+                       230, 220, 230, 230, 220, 230, 230, 220,
+                       220, 220, 230, 220, 220, 230, 220, 230,
+                       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,   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,
+               },
+               {       /* Fourth byte table 8. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       230, 230, 220, 230, 220, 230, 220, 230,
+                       220, 230, 230, 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,
+                       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,   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,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 9. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 10. */
+                       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,   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,   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,   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,   9,   0,   0,
+                       0,   230, 220, 230, 230, 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,   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,   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,
+               },
+               {       /* Fourth byte table 11. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 12. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   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,   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,   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,   0,   0,   0,   0,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 13. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 14. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 15. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 16. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 17. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 18. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 19. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 20. */
+                       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,   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,   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,   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,   9,   0,   0,
+                       0,   0,   0,   0,   0,   84,  91,  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,   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,   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,
+               },
+               {       /* Fourth byte table 21. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 22. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 23. */
+                       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,   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,   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,   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,   9,   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,
+                       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,   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,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 24. */
+                       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,   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,   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,   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,   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,
+                       103, 103, 9,   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,
+                       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,
+               },
+               {       /* Fourth byte table 25. */
+                       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,   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,   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,   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,
+                       107, 107, 107, 107, 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,   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,   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,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 26. */
+                       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,   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,   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,   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,   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,
+                       118, 118, 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,   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,
+               },
+               {       /* Fourth byte table 27. */
+                       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,   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,   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,   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,
+                       122, 122, 122, 122, 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,   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,   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,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 28. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       220, 220, 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,   220, 0,   220,
+                       0,   216, 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,   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,
+               },
+               {       /* Fourth byte table 29. */
+                       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,   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,   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,   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,   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,   129, 130, 0,   132, 0,   0,   0,
+                       0,   0,   130, 130, 130, 130, 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,   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,
+               },
+               {       /* Fourth byte table 30. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       130, 0,   230, 230, 9,   0,   230, 230,
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 31. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   220, 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,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 32. */
+                       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,   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,   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,   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,   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,   7,
+                       0,   9,   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,   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,
+               },
+               {       /* Fourth byte table 33. */
+                       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,   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,   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,   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,   9,   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,   9,   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,   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,   0,
+               },
+               {       /* Fourth byte table 34. */
+                       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,   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,   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,   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,   9,   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,
+                       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,   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,
+               },
+               {       /* Fourth byte table 35. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   228, 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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 36. */
+                       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,   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,   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,   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,
+                       230, 230, 1,   1,   230, 230, 230, 230,
+                       1,   1,   1,   230, 230, 0,   0,   0,
+                       0,   230, 0,   0,   0,   1,   1,   230,
+                       220, 230, 1,   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,
+                       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,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 37. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   218, 228, 232, 222, 224, 224,
+                       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,   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,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 38. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   8,   8,   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,
+                       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,   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,
+               },
+               {       /* Fourth byte table 39. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   26,  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,   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,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 40. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       230, 230, 230, 230, 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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 41. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   216, 216, 1,
+                       1,   1,   0,   0,   0,   226, 216, 216,
+                       216, 216, 216, 0,   0,   0,   0,   0,
+                       0,   0,   0,   220, 220, 220, 220, 220,
+                       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,   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,
+               },
+               {       /* Fourth byte table 42. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       220, 220, 220, 0,   0,   230, 230, 230,
+                       230, 230, 220, 220, 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,   230, 230, 230, 230, 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,   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,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 43. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 44. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 45. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 46. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 47. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 48. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 49. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 50. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 51. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 52. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 53. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 54. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+       },
+       {
+               {       /* Fourth byte table 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,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       230, 230, 230, 230, 230, 230, 230, 230,
+                       230, 230, 230, 230, 230, 230, 230, 230,
+                       230, 230, 230, 230, 230, 232, 220, 220,
+                       220, 220, 232, 216, 220, 220, 220, 220,
+                       220, 202, 202, 220, 220, 220, 220, 202,
+                       202, 220, 220, 220, 220, 220, 220, 220,
+                       220, 220, 220, 220, 1,   1,   1,   1,
+                       1,   220, 220, 220, 220, 230, 230, 230,
+                       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,   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,
+               },
+               {       /* Fourth byte table 1. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       230, 230, 230, 230, 230, 240, 230, 220,
+                       220, 220, 230, 230, 230, 220, 220, 0,
+                       230, 230, 230, 220, 220, 220, 220, 230,
+                       232, 220, 220, 230, 233, 234, 234, 233,
+                       234, 234, 233, 230, 230, 230, 230, 230,
+                       230, 230, 230, 230, 230, 230, 230, 230,
+                       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,   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,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 2. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   230, 230, 230, 230, 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,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 3. */
+                       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,   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,   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,   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,   220, 230, 230, 230, 230, 220, 230,
+                       230, 230, 222, 220, 230, 230, 230, 230,
+                       230, 230, 220, 220, 220, 220, 220, 220,
+                       230, 230, 220, 230, 230, 222, 228, 230,
+                       10,  11,  12,  13,  14,  15,  16,  17,
+                       18,  19,  19,  20,  21,  22,  0,   23,
+                       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,   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,
+               },
+               {       /* Fourth byte table 4. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   24,  25,  0,   230, 220, 0,   18,
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 5. */
+                       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,   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,   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,   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,
+                       230, 230, 230, 230, 230, 230, 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,   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,
+                       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,
+               },
+               {       /* Fourth byte table 6. */
+                       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,   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,   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,   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,   27,  28,  29,  30,  31,
+                       32,  33,  34,  230, 230, 220, 220, 230,
+                       230, 230, 230, 230, 220, 230, 230, 0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       35,  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,   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,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 7. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   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,   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,   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,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   230, 230,
+                       230, 230, 230, 230, 230, 0,   0,   230,
+                       230, 230, 230, 220, 230, 0,   0,   230,
+                       230, 0,   220, 230, 230, 220, 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,   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,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 8. */
+                       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,   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,   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,   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,   36,  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,
+                       230, 220, 230, 230, 220, 230, 230, 220,
+                       220, 220, 230, 220, 220, 230, 220, 230,
+                       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,   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,
+               },
+               {       /* Fourth byte table 9. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       230, 230, 220, 230, 220, 230, 220, 230,
+                       220, 230, 230, 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,
+                       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,   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,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 10. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   230, 230, 230, 230, 230,
+                       230, 230, 220, 230, 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,   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,   0,   0,
+               },
+               {       /* Fourth byte table 11. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 12. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   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,   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,   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,   0,   0,   0,   0,   9,   0,   0,
+                       0,   230, 220, 230, 230, 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,   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,   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,
+               },
+               {       /* Fourth byte table 13. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 14. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 15. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 16. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 17. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 18. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 19. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 20. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 21. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 22. */
+                       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,   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,   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,   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,   9,   0,   0,
+                       0,   0,   0,   0,   0,   84,  91,  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,   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,   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,
+               },
+               {       /* Fourth byte table 23. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+               },
+               {       /* Fourth byte table 24. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 25. */
+                       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,   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,   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,   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,   9,   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,   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,
+                       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,   0,   0,   0,
+               },
+               {       /* Fourth byte table 26. */
+                       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,   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,   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,   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,   9,   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,
+                       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,   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,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 27. */
+                       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,   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,   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,   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,   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,
+                       103, 103, 9,   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,
+                       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,
+               },
+               {       /* Fourth byte table 28. */
+                       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,   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,   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,   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,
+                       107, 107, 107, 107, 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,   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,   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,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 29. */
+                       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,   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,   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,   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,   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,
+                       118, 118, 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,   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,
+               },
+               {       /* Fourth byte table 30. */
+                       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,   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,   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,   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,
+                       122, 122, 122, 122, 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,   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,   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,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 31. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       220, 220, 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,   220, 0,   220,
+                       0,   216, 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,   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,
+               },
+               {       /* Fourth byte table 32. */
+                       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,   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,   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,   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,   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,   129, 130, 0,   132, 0,   0,   0,
+                       0,   0,   130, 130, 130, 130, 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,   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,
+               },
+               {       /* Fourth byte table 33. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       130, 0,   230, 230, 9,   0,   230, 230,
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 34. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   220, 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,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 35. */
+                       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,   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,   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,   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,   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,   7,
+                       0,   9,   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,   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,
+               },
+               {       /* Fourth byte table 36. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   230,
+                       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,   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,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 37. */
+                       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,   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,   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,   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,   9,   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,   9,   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,   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,   0,
+               },
+               {       /* Fourth byte table 38. */
+                       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,   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,   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,   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,   9,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   230, 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,   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,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 39. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   228, 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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 40. */
+                       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,   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,   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,   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,   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,   222, 230, 220, 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,   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,
+               },
+               {       /* Fourth byte table 41. */
+                       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,   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,   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,   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,   0,   0,   0,   230,
+                       220, 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,   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,   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,
+               },
+               {       /* Fourth byte table 42. */
+                       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,   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,   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,   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,   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,   7,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 43. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   9,   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,   0,   230, 220, 230, 230, 230,
+                       230, 230, 230, 230, 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,   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,   0,   0,
+               },
+               {       /* Fourth byte table 44. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       230, 230, 220, 230, 230, 230, 230, 230,
+                       230, 230, 220, 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,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   230, 220,
+                       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,   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,
+               },
+               {       /* Fourth byte table 45. */
+                       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,   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,   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,   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,
+                       230, 230, 1,   1,   230, 230, 230, 230,
+                       1,   1,   1,   230, 230, 0,   0,   0,
+                       0,   230, 0,   0,   0,   1,   1,   230,
+                       220, 230, 1,   1,   220, 220, 220, 220,
+                       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,   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,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 46. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   218, 228, 232, 222, 224, 224,
+                       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,   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,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 47. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   8,   8,   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,
+                       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,   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,
+               },
+               {       /* Fourth byte table 48. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   9,   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,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 49. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   26,  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,   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,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 50. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       230, 230, 230, 230, 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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 51. */
+                       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,   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,   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,   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,   220, 0,   230,
+                       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,   0,   0,   0,
+                       230, 1,   220, 0,   0,   0,   0,   9,
+                       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,   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,
+               },
+               {       /* Fourth byte table 52. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   216, 216, 1,
+                       1,   1,   0,   0,   0,   226, 216, 216,
+                       216, 216, 216, 0,   0,   0,   0,   0,
+                       0,   0,   0,   220, 220, 220, 220, 220,
+                       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,   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,
+               },
+               {       /* Fourth byte table 53. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       220, 220, 220, 0,   0,   230, 230, 230,
+                       230, 230, 220, 220, 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,   230, 230, 230, 230, 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,   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,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+               {       /* Fourth byte table 54. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   230, 230, 230, 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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+               },
+       },
+};
+
+static const uchar_t u8_composition_b1_tbl[2][256] = {
+       {
+               0,  N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+       },
+       {
+               0,  N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+               N_, N_, N_, N_, N_, N_, N_, N_,
+       },
+};
+
+static const uchar_t u8_composition_b2_tbl[2][1][256] = {
+       {
+               {
+                       0,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       1,  2,  3,  4,  N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+
+       },
+       {
+               {
+                       0,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       1,  2,  3,  4,  N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+
+       },
+
+};
+
+static const u8_displacement_t u8_composition_b3_tbl[2][5][256] = {
+       {
+               {       /* Third byte table 0. */
+                       { 0x8000, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 0, 2470 },
+                       { 0x8001, 2491 }, { 1, 2871 }, { 2, 2959 },
+                       { 3, 3061 }, { 4, 3212 }, { 5, 3226 },
+                       { N_, 0 }, { 6, 3270 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 0x8002, 3277 },
+                       { 7, 3774 }, { 8, 3949 }, { 9, 4198 },
+                       { N_, 0 }, { 10, 4265 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 11, 4293 }, { 12, 4312 }, { N_, 0 },
+                       { 13, 4326 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 1. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 14, 4347 },
+                       { N_, 0 }, { N_, 0 }, { 15, 4374 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 16, 4391 },
+                       { 17, 4416 }, { 18, 4425 }, { N_, 0 },
+                       { 19, 4451 }, { 20, 4460 }, { 21, 4469 },
+                       { N_, 0 }, { 22, 4503 }, { N_, 0 },
+                       { 23, 4529 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 2. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 24, 4563 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 25, 4572 }, { 26, 4588 },
+                       { 27, 4620 }, { 28, 4666 }, { 0x8003, 4682 },
+                       { 0x8004, 5254 }, { 29, 5616 }, { 30, 5646 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 3. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 31, 5684 },
+                       { 32, 5708 }, { 33, 5732 }, { 34, 5780 },
+                       { 35, 5900 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 4. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 36, 6012 }, { 37, 6241 }, { 38, 6358 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+       },
+       {
+               {       /* Third byte table 0. */
+                       { 0x8000, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 0, 2470 },
+                       { 0x8001, 2491 }, { 1, 2871 }, { 2, 2959 },
+                       { 3, 3061 }, { 4, 3212 }, { 5, 3226 },
+                       { N_, 0 }, { 6, 3270 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 0x8002, 3277 },
+                       { 7, 3774 }, { 8, 3949 }, { 9, 4198 },
+                       { N_, 0 }, { 10, 4265 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 11, 4293 }, { 12, 4312 }, { N_, 0 },
+                       { 13, 4326 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 1. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 14, 4347 },
+                       { N_, 0 }, { N_, 0 }, { 15, 4374 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 16, 4391 },
+                       { 17, 4416 }, { 18, 4425 }, { N_, 0 },
+                       { 19, 4451 }, { 20, 4460 }, { 21, 4469 },
+                       { N_, 0 }, { 22, 4503 }, { N_, 0 },
+                       { 23, 4529 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 2. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 24, 4563 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 25, 4572 }, { 26, 4662 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 27, 4671 }, { 28, 4687 },
+                       { 29, 4719 }, { 30, 4765 }, { 0x8003, 4781 },
+                       { 0x8004, 5353 }, { 31, 5715 }, { 32, 5745 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 3. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 33, 5783 },
+                       { 34, 5807 }, { 35, 5831 }, { 36, 5879 },
+                       { 37, 5999 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 4. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 38, 6111 }, { 39, 6340 }, { 40, 6457 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+       },
+};
+
+static const uchar_t u8_composition_b4_tbl[2][41][257] = {
+       {
+               {       /* Fourth byte table 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,   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,   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,   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,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 1. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   29,  58,  58,  58,  58,
+                       58,  58,  58,  58,  58,  58,  58,  58,
+                       58,  58,  58,  73,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,
+               },
+               {       /* Fourth byte table 2. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   15,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  38,  46,  46,  46,  46,
+                       46,  54,  62,  62,  62,  62,  62,  62,
+                       62,  70,  78,  86,  94,  94,  94,  94,
+                       94,  94,  94,  94,  94,  94,  94,  94,
+                       94,  94,  94,  94,  94,  94,  94,  94,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102,
+               },
+               {       /* Fourth byte table 3. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   36,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       108, 144, 144, 144, 144, 144, 144, 144,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151,
+               },
+               {       /* Fourth byte table 4. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   7,   14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,
+               },
+               {       /* Fourth byte table 5. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   7,
+                       14,  22,  30,  30,  30,  30,  30,  37,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,
+               },
+               {       /* Fourth byte table 6. */
+                       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,   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,   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,   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,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,
+               },
+               {       /* Fourth byte table 7. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   15,  15,  15,  15,  70,  70,
+                       70,  70,  112, 133, 154, 154, 154, 162,
+                       162, 162, 162, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175,
+               },
+               {       /* Fourth byte table 8. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   20,  20,  20,  27,  27,  46,  59,
+                       66,  91,  91,  98,  98,  98,  98,  105,
+                       105, 105, 105, 105, 130, 130, 130, 130,
+                       137, 137, 137, 137, 144, 144, 151, 151,
+                       151, 164, 164, 164, 171, 171, 190, 203,
+                       210, 235, 235, 242, 242, 242, 242, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249,
+               },
+               {       /* Fourth byte table 9. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   25,  25,  25,  25,
+                       32,  32,  32,  32,  39,  39,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  53,
+                       53,  53,  53,  53,  53,  53,  53,  53,
+                       53,  53,  53,  53,  53,  53,  53,  53,
+                       53,  53,  53,  53,  53,  53,  53,  53,
+                       53,  53,  53,  53,  53,  60,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,
+               },
+               {       /* Fourth byte table 10. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   7,   14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  21,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,
+               },
+               {       /* Fourth byte table 11. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,
+               },
+               {       /* Fourth byte table 12. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   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,   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,   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,   7,   7,   14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,
+               },
+               {       /* Fourth byte table 13. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   14,  14,  14,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 14. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   9,   9,   9,   9,   9,   9,   9,
+                       9,   18,  18,  18,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,
+               },
+               {       /* Fourth byte table 15. */
+                       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,   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,   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,   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,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,
+               },
+               {       /* Fourth byte table 16. */
+                       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,   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,   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,   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,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,
+               },
+               {       /* Fourth byte table 17. */
+                       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,   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,   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,   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,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,
+               },
+               {       /* Fourth byte table 18. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   17,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,
+               },
+               {       /* Fourth byte table 19. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,
+               },
+               {       /* Fourth byte table 20. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   0,   0,   0,   0,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,
+               },
+               {       /* Fourth byte table 21. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   25,
+                       25,  25,  25,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,
+               },
+               {       /* Fourth byte table 22. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   17,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,
+               },
+               {       /* Fourth byte table 23. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   25,  25,  25,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,
+               },
+               {       /* Fourth byte table 24. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,
+               },
+               {       /* Fourth byte table 25. */
+                       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,   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,   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,   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,   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,   8,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,
+               },
+               {       /* Fourth byte table 26. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   8,   16,  16,  16,  16,
+                       16,  16,  16,  24,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,
+               },
+               {       /* Fourth byte table 27. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   15,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  38,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,
+               },
+               {       /* Fourth byte table 28. */
+                       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,   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,   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,   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,   8,   16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,
+               },
+               {       /* Fourth byte table 29. */
+                       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,   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,   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,   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,   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,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,
+               },
+               {       /* Fourth byte table 30. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   16,
+                       16,  16,  16,  16,  16,  16,  16,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,
+               },
+               {       /* Fourth byte table 31. */
+                       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,   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,   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,   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,   8,   8,   16,  16,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,
+               },
+               {       /* Fourth byte table 32. */
+                       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,   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,   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,   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,   8,   8,   16,  16,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,
+               },
+               {       /* Fourth byte table 33. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   8,   8,   8,   8,
+                       8,   16,  16,  16,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  32,  32,  40,  40,
+                       40,  40,  40,  40,  40,  40,  40,  40,
+                       40,  40,  40,  40,  40,  40,  40,  40,
+                       40,  40,  40,  40,  40,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,
+               },
+               {       /* Fourth byte table 34. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   8,   8,   16,  16,
+                       16,  24,  24,  24,  24,  24,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  40,  40,  40,  48,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  64,  72,  72,  72,  80,
+                       88,  88,  88,  96,  104, 112, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120,
+               },
+               {       /* Fourth byte table 35. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   8,   16,  16,  16,  24,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  40,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  56,  56,  56,  56,  56,
+                       56,  64,  72,  72,  80,  80,  80,  80,
+                       80,  80,  80,  88,  96,  104, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112,
+               },
+               {       /* Fourth byte table 36. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   9,
+                       9,   9,   9,   9,   18,  18,  27,  27,
+                       36,  36,  45,  45,  54,  54,  63,  63,
+                       72,  72,  81,  81,  90,  90,  99,  99,
+                       108, 108, 117, 117, 117, 126, 126, 135,
+                       135, 144, 144, 144, 144, 144, 144, 144,
+                       161, 161, 161, 178, 178, 178, 195, 195,
+                       195, 212, 212, 212, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229,
+               },
+               {       /* Fourth byte table 37. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   18,
+                       18,  18,  18,  18,  27,  27,  36,  36,
+                       45,  45,  54,  54,  63,  63,  72,  72,
+                       81,  81,  90,  90,  99,  99,  108, 108,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117,
+               },
+               {       /* Fourth byte table 38. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   9,   9,   9,   18,  18,  27,
+                       27,  36,  36,  36,  36,  36,  36,  36,
+                       53,  53,  53,  70,  70,  70,  87,  87,
+                       87,  104, 104, 104, 121, 121, 121, 121,
+                       121, 121, 121, 121, 121, 121, 121, 121,
+                       121, 121, 121, 121, 121, 121, 121, 121,
+                       130, 139, 148, 157, 157, 157, 157, 157,
+                       157, 157, 157, 157, 157, 157, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166,
+               },
+               {       /* Fourth byte table 39. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 40. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+       },
+       {
+               {       /* Fourth byte table 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,   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,   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,   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,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 1. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   29,  58,  58,  58,  58,
+                       58,  58,  58,  58,  58,  58,  58,  58,
+                       58,  58,  58,  73,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,
+               },
+               {       /* Fourth byte table 2. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   15,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  38,  46,  46,  46,  46,
+                       46,  54,  62,  62,  62,  62,  62,  62,
+                       62,  70,  78,  86,  94,  94,  94,  94,
+                       94,  94,  94,  94,  94,  94,  94,  94,
+                       94,  94,  94,  94,  94,  94,  94,  94,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102, 102, 102, 102, 102, 102, 102, 102,
+                       102,
+               },
+               {       /* Fourth byte table 3. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   36,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       108, 144, 144, 144, 144, 144, 144, 144,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151, 151, 151, 151, 151, 151, 151, 151,
+                       151,
+               },
+               {       /* Fourth byte table 4. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   7,   14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,
+               },
+               {       /* Fourth byte table 5. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   7,
+                       14,  22,  30,  30,  30,  30,  30,  37,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,
+               },
+               {       /* Fourth byte table 6. */
+                       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,   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,   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,   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,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,
+               },
+               {       /* Fourth byte table 7. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   15,  15,  15,  15,  70,  70,
+                       70,  70,  112, 133, 154, 154, 154, 162,
+                       162, 162, 162, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175,
+               },
+               {       /* Fourth byte table 8. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   20,  20,  20,  27,  27,  46,  59,
+                       66,  91,  91,  98,  98,  98,  98,  105,
+                       105, 105, 105, 105, 130, 130, 130, 130,
+                       137, 137, 137, 137, 144, 144, 151, 151,
+                       151, 164, 164, 164, 171, 171, 190, 203,
+                       210, 235, 235, 242, 242, 242, 242, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249, 249, 249, 249, 249, 249, 249, 249,
+                       249,
+               },
+               {       /* Fourth byte table 9. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   25,  25,  25,  25,
+                       32,  32,  32,  32,  39,  39,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  53,
+                       53,  53,  53,  53,  53,  53,  53,  53,
+                       53,  53,  53,  53,  53,  53,  53,  53,
+                       53,  53,  53,  53,  53,  53,  53,  53,
+                       53,  53,  53,  53,  53,  60,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,
+               },
+               {       /* Fourth byte table 10. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   7,   14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  21,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,
+               },
+               {       /* Fourth byte table 11. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,
+               },
+               {       /* Fourth byte table 12. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   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,   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,   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,   7,   7,   14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,
+               },
+               {       /* Fourth byte table 13. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   14,  14,  14,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 14. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   9,   9,   9,   9,   9,   9,   9,
+                       9,   18,  18,  18,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,
+               },
+               {       /* Fourth byte table 15. */
+                       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,   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,   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,   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,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,
+               },
+               {       /* Fourth byte table 16. */
+                       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,   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,   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,   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,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,
+               },
+               {       /* Fourth byte table 17. */
+                       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,   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,   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,   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,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,
+               },
+               {       /* Fourth byte table 18. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   17,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,
+               },
+               {       /* Fourth byte table 19. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,
+               },
+               {       /* Fourth byte table 20. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   0,   0,   0,   0,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,
+               },
+               {       /* Fourth byte table 21. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   25,
+                       25,  25,  25,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,
+               },
+               {       /* Fourth byte table 22. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   17,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,
+               },
+               {       /* Fourth byte table 23. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   25,  25,  25,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  34,  34,
+                       34,
+               },
+               {       /* Fourth byte table 24. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,
+               },
+               {       /* Fourth byte table 25. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   9,   9,
+                       18,  18,  27,  27,  36,  36,  45,  45,
+                       45,  45,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  63,  63,  72,  72,  81,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,
+               },
+               {       /* Fourth byte table 26. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,
+               },
+               {       /* Fourth byte table 27. */
+                       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,   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,   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,   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,   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,   8,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,
+               },
+               {       /* Fourth byte table 28. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   8,   16,  16,  16,  16,
+                       16,  16,  16,  24,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,
+               },
+               {       /* Fourth byte table 29. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   15,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  38,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,
+               },
+               {       /* Fourth byte table 30. */
+                       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,   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,   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,   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,   8,   16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,
+               },
+               {       /* Fourth byte table 31. */
+                       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,   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,   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,   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,   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,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,
+               },
+               {       /* Fourth byte table 32. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   16,
+                       16,  16,  16,  16,  16,  16,  16,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,
+               },
+               {       /* Fourth byte table 33. */
+                       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,   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,   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,   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,   8,   8,   16,  16,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,
+               },
+               {       /* Fourth byte table 34. */
+                       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,   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,   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,   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,   8,   8,   16,  16,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,
+               },
+               {       /* Fourth byte table 35. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   8,   8,   8,   8,
+                       8,   16,  16,  16,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  32,  32,  40,  40,
+                       40,  40,  40,  40,  40,  40,  40,  40,
+                       40,  40,  40,  40,  40,  40,  40,  40,
+                       40,  40,  40,  40,  40,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,
+               },
+               {       /* Fourth byte table 36. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   8,   8,   16,  16,
+                       16,  24,  24,  24,  24,  24,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  40,  40,  40,  48,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  64,  72,  72,  72,  80,
+                       88,  88,  88,  96,  104, 112, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120, 120, 120, 120, 120, 120, 120, 120,
+                       120,
+               },
+               {       /* Fourth byte table 37. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   8,   16,  16,  16,  24,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  40,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  56,  56,  56,  56,  56,
+                       56,  64,  72,  72,  80,  80,  80,  80,
+                       80,  80,  80,  88,  96,  104, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112,
+               },
+               {       /* Fourth byte table 38. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   9,
+                       9,   9,   9,   9,   18,  18,  27,  27,
+                       36,  36,  45,  45,  54,  54,  63,  63,
+                       72,  72,  81,  81,  90,  90,  99,  99,
+                       108, 108, 117, 117, 117, 126, 126, 135,
+                       135, 144, 144, 144, 144, 144, 144, 144,
+                       161, 161, 161, 178, 178, 178, 195, 195,
+                       195, 212, 212, 212, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229, 229, 229, 229, 229, 229, 229, 229,
+                       229,
+               },
+               {       /* Fourth byte table 39. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   18,
+                       18,  18,  18,  18,  27,  27,  36,  36,
+                       45,  45,  54,  54,  63,  63,  72,  72,
+                       81,  81,  90,  90,  99,  99,  108, 108,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117, 117, 117, 117, 117, 117, 117, 117,
+                       117,
+               },
+               {       /* Fourth byte table 40. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   9,   9,   9,   18,  18,  27,
+                       27,  36,  36,  36,  36,  36,  36,  36,
+                       53,  53,  53,  70,  70,  70,  87,  87,
+                       87,  104, 104, 104, 121, 121, 121, 121,
+                       121, 121, 121, 121, 121, 121, 121, 121,
+                       121, 121, 121, 121, 121, 121, 121, 121,
+                       130, 139, 148, 157, 157, 157, 157, 157,
+                       157, 157, 157, 157, 157, 157, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166, 166, 166, 166, 166, 166, 166, 166,
+                       166,
+               },
+       },
+};
+
+static const uint16_t u8_composition_b4_16bit_tbl[2][5][257] = {
+       {
+               {       /* Fourth byte 16-bit table 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,    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,    8,    16,   24,
+                       24,   24,   124,  146,  177,  219,  327,  335,
+                       379,  427,  521,  528,  562,  602,  624,  683,
+                       782,  797,  797,  849,  894,  941,  1061, 1076,
+                       1118, 1133, 1193, 1233, 1233, 1233, 1233, 1233,
+                       1233, 1233, 1333, 1355, 1386, 1428, 1536, 1544,
+                       1588, 1643, 1731, 1744, 1778, 1818, 1840, 1899,
+                       1998, 2013, 2013, 2065, 2110, 2164, 2284, 2299,
+                       2348, 2363, 2430, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470,
+               },
+               {       /* Fourth byte 16-bit table 1. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    29,   29,   36,   43,   56,
+                       64,   64,   64,   93,   93,   93,   93,   93,
+                       101,  101,  101,  101,  101,  130,  151,  158,
+                       158,  165,  165,  165,  165,  190,  190,  190,
+                       190,  190,  190,  219,  219,  226,  233,  246,
+                       254,  254,  254,  283,  283,  283,  283,  283,
+                       291,  291,  291,  291,  291,  320,  341,  348,
+                       348,  355,  355,  355,  355,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,
+               },
+               {       /* Fourth byte 16-bit table 2. */
+                       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,    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,    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,    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,    49,   49,   49,   49,   77,   77,
+                       112,  112,  160,  160,  160,  160,  160,  160,
+                       188,  188,  196,  196,  196,  196,  237,  237,
+                       237,  237,  272,  272,  272,  280,  280,  288,
+                       288,  288,  344,  344,  344,  344,  372,  372,
+                       414,  414,  469,  469,  469,  469,  469,  469,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,
+               },
+               {       /* Fourth byte 16-bit table 3. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    29,   58,   66,   74,   82,   90,   98,
+                       106,  135,  164,  172,  180,  188,  196,  204,
+                       212,  227,  242,  242,  242,  242,  242,  242,
+                       242,  257,  272,  272,  272,  272,  272,  272,
+                       272,  301,  330,  338,  346,  354,  362,  370,
+                       378,  407,  436,  444,  452,  460,  468,  476,
+                       484,  506,  528,  528,  528,  528,  528,  528,
+                       528,  550,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,
+               },
+               {       /* Fourth byte 16-bit table 4. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    15,   30,   30,   30,   30,   30,   30,
+                       30,   45,   60,   60,   60,   60,   60,   60,
+                       60,   82,   104,  104,  104,  104,  104,  104,
+                       104,  104,  126,  126,  126,  126,  126,  126,
+                       126,  155,  184,  192,  200,  208,  216,  224,
+                       232,  261,  290,  298,  306,  314,  322,  330,
+                       338,  346,  346,  346,  346,  354,  354,  354,
+                       354,  354,  354,  354,  354,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,
+               },
+       },
+       {
+               {       /* Fourth byte 16-bit table 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,    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,    8,    16,   24,
+                       24,   24,   124,  146,  177,  219,  327,  335,
+                       379,  427,  521,  528,  562,  602,  624,  683,
+                       782,  797,  797,  849,  894,  941,  1061, 1076,
+                       1118, 1133, 1193, 1233, 1233, 1233, 1233, 1233,
+                       1233, 1233, 1333, 1355, 1386, 1428, 1536, 1544,
+                       1588, 1643, 1731, 1744, 1778, 1818, 1840, 1899,
+                       1998, 2013, 2013, 2065, 2110, 2164, 2284, 2299,
+                       2348, 2363, 2430, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+                       2470,
+               },
+               {       /* Fourth byte 16-bit table 1. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    29,   29,   36,   43,   56,
+                       64,   64,   64,   93,   93,   93,   93,   93,
+                       101,  101,  101,  101,  101,  130,  151,  158,
+                       158,  165,  165,  165,  165,  190,  190,  190,
+                       190,  190,  190,  219,  219,  226,  233,  246,
+                       254,  254,  254,  283,  283,  283,  283,  283,
+                       291,  291,  291,  291,  291,  320,  341,  348,
+                       348,  355,  355,  355,  355,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,  380,  380,  380,  380,  380,  380,  380,
+                       380,
+               },
+               {       /* Fourth byte 16-bit table 2. */
+                       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,    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,    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,    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,    49,   49,   49,   49,   77,   77,
+                       112,  112,  160,  160,  160,  160,  160,  160,
+                       188,  188,  196,  196,  196,  196,  237,  237,
+                       237,  237,  272,  272,  272,  280,  280,  288,
+                       288,  288,  344,  344,  344,  344,  372,  372,
+                       414,  414,  469,  469,  469,  469,  469,  469,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,  497,  497,  497,  497,  497,  497,  497,
+                       497,
+               },
+               {       /* Fourth byte 16-bit table 3. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    29,   58,   66,   74,   82,   90,   98,
+                       106,  135,  164,  172,  180,  188,  196,  204,
+                       212,  227,  242,  242,  242,  242,  242,  242,
+                       242,  257,  272,  272,  272,  272,  272,  272,
+                       272,  301,  330,  338,  346,  354,  362,  370,
+                       378,  407,  436,  444,  452,  460,  468,  476,
+                       484,  506,  528,  528,  528,  528,  528,  528,
+                       528,  550,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,  572,  572,  572,  572,  572,  572,  572,
+                       572,
+               },
+               {       /* Fourth byte 16-bit table 4. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    15,   30,   30,   30,   30,   30,   30,
+                       30,   45,   60,   60,   60,   60,   60,   60,
+                       60,   82,   104,  104,  104,  104,  104,  104,
+                       104,  104,  126,  126,  126,  126,  126,  126,
+                       126,  155,  184,  192,  200,  208,  216,  224,
+                       232,  261,  290,  298,  306,  314,  322,  330,
+                       338,  346,  346,  346,  346,  354,  354,  354,
+                       354,  354,  354,  354,  354,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,  362,  362,  362,  362,  362,  362,  362,
+                       362,
+               },
+       },
+};
+
+static const uchar_t u8_composition_final_tbl[2][6623] = {
+       {
+               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAE, FIL_,
+               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xA0, FIL_,
+               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAF, FIL_,
+               0x10, 0xCC, 0x86, FIL_, 0xC4, 0x82, FIL_, 0xCC,
+               0x87, FIL_, 0xC8, 0xA6, FIL_, 0xCC, 0x8F, FIL_,
+               0xC8, 0x80, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x82,
+               FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x81, FIL_, 0xCC,
+               0x80, FIL_, 0xC3, 0x80, FIL_, 0xCC, 0x83, FIL_,
+               0xC3, 0x83, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA,
+               0xA0, FIL_, 0xCC, 0xA5, FIL_, 0xE1, 0xB8, 0x80,
+               FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x82, FIL_, 0xCC,
+               0x84, FIL_, 0xC4, 0x80, FIL_, 0xCC, 0x88, FIL_,
+               0xC3, 0x84, FIL_, 0xCC, 0x8A, FIL_, 0xC3, 0x85,
+               FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x84, FIL_, 0xCC,
+               0x89, FIL_, 0xE1, 0xBA, 0xA2, FIL_, 0xCC, 0x8C,
+               FIL_, 0xC7, 0x8D, FIL_, 0x03, 0xCC, 0x87, FIL_,
+               0xE1, 0xB8, 0x82, FIL_, 0xCC, 0xB1, FIL_, 0xE1,
+               0xB8, 0x86, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
+               0x84, FIL_, 0x05, 0xCC, 0xA7, FIL_, 0xC3, 0x87,
+               FIL_, 0xCC, 0x81, FIL_, 0xC4, 0x86, FIL_, 0xCC,
+               0x8C, FIL_, 0xC4, 0x8C, FIL_, 0xCC, 0x87, FIL_,
+               0xC4, 0x8A, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0x88,
+               FIL_, 0x06, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0x8E,
+               FIL_, 0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0x90, FIL_,
+               0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x92, FIL_, 0xCC,
+               0x87, FIL_, 0xE1, 0xB8, 0x8A, FIL_, 0xCC, 0x8C,
+               FIL_, 0xC4, 0x8E, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xB8, 0x8C, FIL_, 0x11, 0xCC, 0x80, FIL_, 0xC3,
+               0x88, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x89, FIL_,
+               0xCC, 0x82, FIL_, 0xC3, 0x8A, FIL_, 0xCC, 0x88,
+               FIL_, 0xC3, 0x8B, FIL_, 0xCC, 0xA7, FIL_, 0xC8,
+               0xA8, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x86, FIL_,
+               0xCC, 0x8F, FIL_, 0xC8, 0x84, FIL_, 0xCC, 0x89,
+               FIL_, 0xE1, 0xBA, 0xBA, FIL_, 0xCC, 0xB0, FIL_,
+               0xE1, 0xB8, 0x9A, FIL_, 0xCC, 0xAD, FIL_, 0xE1,
+               0xB8, 0x98, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBA,
+               0xBC, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0xB8,
+               FIL_, 0xCC, 0x84, FIL_, 0xC4, 0x92, FIL_, 0xCC,
+               0x86, FIL_, 0xC4, 0x94, FIL_, 0xCC, 0x87, FIL_,
+               0xC4, 0x96, FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x98,
+               FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x9A, FIL_, 0x01,
+               0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9E, FIL_, 0x07,
+               0xCC, 0x8C, FIL_, 0xC7, 0xA6, FIL_, 0xCC, 0x87,
+               FIL_, 0xC4, 0xA0, FIL_, 0xCC, 0x84, FIL_, 0xE1,
+               0xB8, 0xA0, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0x9C,
+               FIL_, 0xCC, 0x81, FIL_, 0xC7, 0xB4, FIL_, 0xCC,
+               0xA7, FIL_, 0xC4, 0xA2, FIL_, 0xCC, 0x86, FIL_,
+               0xC4, 0x9E, FIL_, 0x07, 0xCC, 0xAE, FIL_, 0xE1,
+               0xB8, 0xAA, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB8,
+               0xA2, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA6,
+               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0xA4, FIL_,
+               0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0xA8, FIL_, 0xCC,
+               0x8C, FIL_, 0xC8, 0x9E, FIL_, 0xCC, 0x82, FIL_,
+               0xC4, 0xA4, FIL_, 0x0F, 0xCC, 0x84, FIL_, 0xC4,
+               0xAA, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x8C, FIL_,
+               0xCC, 0xA8, FIL_, 0xC4, 0xAE, FIL_, 0xCC, 0x83,
+               FIL_, 0xC4, 0xA8, FIL_, 0xCC, 0x88, FIL_, 0xC3,
+               0x8F, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x8D, FIL_,
+               0xCC, 0x8F, FIL_, 0xC8, 0x88, FIL_, 0xCC, 0x86,
+               FIL_, 0xC4, 0xAC, FIL_, 0xCC, 0x91, FIL_, 0xC8,
+               0x8A, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x8F, FIL_,
+               0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x88, FIL_, 0xCC,
+               0x87, FIL_, 0xC4, 0xB0, FIL_, 0xCC, 0xA3, FIL_,
+               0xE1, 0xBB, 0x8A, FIL_, 0xCC, 0xB0, FIL_, 0xE1,
+               0xB8, 0xAC, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x8E,
+               FIL_, 0x01, 0xCC, 0x82, FIL_, 0xC4, 0xB4, FIL_,
+               0x05, 0xCC, 0x8C, FIL_, 0xC7, 0xA8, FIL_, 0xCC,
+               0xB1, FIL_, 0xE1, 0xB8, 0xB4, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xB8, 0xB0, FIL_, 0xCC, 0xA7, FIL_,
+               0xC4, 0xB6, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
+               0xB2, FIL_, 0x06, 0xCC, 0xA7, FIL_, 0xC4, 0xBB,
+               FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0xBD, FIL_, 0xCC,
+               0xB1, FIL_, 0xE1, 0xB8, 0xBA, FIL_, 0xCC, 0xA3,
+               FIL_, 0xE1, 0xB8, 0xB6, FIL_, 0xCC, 0xAD, FIL_,
+               0xE1, 0xB8, 0xBC, FIL_, 0xCC, 0x81, FIL_, 0xC4,
+               0xB9, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xB8,
+               0xBE, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x82,
+               FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x80, FIL_,
+               0x09, 0xCC, 0x80, FIL_, 0xC7, 0xB8, FIL_, 0xCC,
+               0xAD, FIL_, 0xE1, 0xB9, 0x8A, FIL_, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0x84, FIL_, 0xCC, 0xB1, FIL_,
+               0xE1, 0xB9, 0x88, FIL_, 0xCC, 0x83, FIL_, 0xC3,
+               0x91, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x86,
+               FIL_, 0xCC, 0x81, FIL_, 0xC5, 0x83, FIL_, 0xCC,
+               0xA7, FIL_, 0xC5, 0x85, FIL_, 0xCC, 0x8C, FIL_,
+               0xC5, 0x87, FIL_, 0x10, 0xCC, 0xA8, FIL_, 0xC7,
+               0xAA, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x8E, FIL_,
+               0xCC, 0x80, FIL_, 0xC3, 0x92, FIL_, 0xCC, 0x9B,
+               FIL_, 0xC6, 0xA0, FIL_, 0xCC, 0x8F, FIL_, 0xC8,
+               0x8C, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x93, FIL_,
+               0xCC, 0x87, FIL_, 0xC8, 0xAE, FIL_, 0xCC, 0x8C,
+               FIL_, 0xC7, 0x91, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xBB, 0x8C, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x94,
+               FIL_, 0xCC, 0x84, FIL_, 0xC5, 0x8C, FIL_, 0xCC,
+               0x83, FIL_, 0xC3, 0x95, FIL_, 0xCC, 0x86, FIL_,
+               0xC5, 0x8E, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x96,
+               FIL_, 0xCC, 0x8B, FIL_, 0xC5, 0x90, FIL_, 0xCC,
+               0x89, FIL_, 0xE1, 0xBB, 0x8E, FIL_, 0x02, 0xCC,
+               0x87, FIL_, 0xE1, 0xB9, 0x96, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xB9, 0x94, FIL_, 0x08, 0xCC, 0x91,
+               FIL_, 0xC8, 0x92, FIL_, 0xCC, 0xA7, FIL_, 0xC5,
+               0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0x98, FIL_,
+               0xCC, 0xB1, FIL_, 0xE1, 0xB9, 0x9E, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xB9, 0x9A, FIL_, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0x98, FIL_, 0xCC, 0x81, FIL_,
+               0xC5, 0x94, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x90,
+               FIL_, 0x07, 0xCC, 0x81, FIL_, 0xC5, 0x9A, FIL_,
+               0xCC, 0x82, FIL_, 0xC5, 0x9C, FIL_, 0xCC, 0xA7,
+               FIL_, 0xC5, 0x9E, FIL_, 0xCC, 0x8C, FIL_, 0xC5,
+               0xA0, FIL_, 0xCC, 0xA6, FIL_, 0xC8, 0x98, FIL_,
+               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA0, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xB9, 0xA2, FIL_, 0x07, 0xCC,
+               0x8C, FIL_, 0xC5, 0xA4, FIL_, 0xCC, 0xB1, FIL_,
+               0xE1, 0xB9, 0xAE, FIL_, 0xCC, 0xA6, FIL_, 0xC8,
+               0x9A, FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0xA2, FIL_,
+               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xAA, FIL_, 0xCC,
+               0xAD, FIL_, 0xE1, 0xB9, 0xB0, FIL_, 0xCC, 0xA3,
+               FIL_, 0xE1, 0xB9, 0xAC, FIL_, 0x13, 0xCC, 0xA8,
+               FIL_, 0xC5, 0xB2, FIL_, 0xCC, 0x83, FIL_, 0xC5,
+               0xA8, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0xAA, FIL_,
+               0xCC, 0x81, FIL_, 0xC3, 0x9A, FIL_, 0xCC, 0x86,
+               FIL_, 0xC5, 0xAC, FIL_, 0xCC, 0x8A, FIL_, 0xC5,
+               0xAE, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x99, FIL_,
+               0xCC, 0x91, FIL_, 0xC8, 0x96, FIL_, 0xCC, 0x8B,
+               FIL_, 0xC5, 0xB0, FIL_, 0xCC, 0xA4, FIL_, 0xE1,
+               0xB9, 0xB2, FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB9,
+               0xB4, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x94, FIL_,
+               0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB6, FIL_, 0xCC,
+               0x9B, FIL_, 0xC6, 0xAF, FIL_, 0xCC, 0x82, FIL_,
+               0xC3, 0x9B, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x9C,
+               FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x93, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xBB, 0xA4, FIL_, 0xCC, 0x89,
+               FIL_, 0xE1, 0xBB, 0xA6, FIL_, 0x02, 0xCC, 0x83,
+               FIL_, 0xE1, 0xB9, 0xBC, FIL_, 0xCC, 0xA3, FIL_,
+               0xE1, 0xB9, 0xBE, FIL_, 0x06, 0xCC, 0x82, FIL_,
+               0xC5, 0xB4, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xBA,
+               0x84, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xBA, 0x86,
+               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x88, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xBA, 0x82, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBA, 0x80, FIL_, 0x02, 0xCC,
+               0x87, FIL_, 0xE1, 0xBA, 0x8A, FIL_, 0xCC, 0x88,
+               FIL_, 0xE1, 0xBA, 0x8C, FIL_, 0x09, 0xCC, 0x89,
+               FIL_, 0xE1, 0xBB, 0xB6, FIL_, 0xCC, 0x87, FIL_,
+               0xE1, 0xBA, 0x8E, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xBB, 0xB4, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x9D,
+               FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xB2, FIL_, 0xCC,
+               0x82, FIL_, 0xC5, 0xB6, FIL_, 0xCC, 0x88, FIL_,
+               0xC5, 0xB8, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB,
+               0xB2, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xB8,
+               FIL_, 0x06, 0xCC, 0x87, FIL_, 0xC5, 0xBB, FIL_,
+               0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x92, FIL_, 0xCC,
+               0x8C, FIL_, 0xC5, 0xBD, FIL_, 0xCC, 0xB1, FIL_,
+               0xE1, 0xBA, 0x94, FIL_, 0xCC, 0x82, FIL_, 0xE1,
+               0xBA, 0x90, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0xB9,
+               FIL_, 0x10, 0xCC, 0x8C, FIL_, 0xC7, 0x8E, FIL_,
+               0xCC, 0x8F, FIL_, 0xC8, 0x81, FIL_, 0xCC, 0xA8,
+               FIL_, 0xC4, 0x85, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xBA, 0xA1, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x83,
+               FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA3, FIL_,
+               0xCC, 0x84, FIL_, 0xC4, 0x81, FIL_, 0xCC, 0x91,
+               FIL_, 0xC8, 0x83, FIL_, 0xCC, 0x8A, FIL_, 0xC3,
+               0xA5, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0xA4, FIL_,
+               0xCC, 0x83, FIL_, 0xC3, 0xA3, FIL_, 0xCC, 0x82,
+               FIL_, 0xC3, 0xA2, FIL_, 0xCC, 0x81, FIL_, 0xC3,
+               0xA1, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xA0, FIL_,
+               0xCC, 0x87, FIL_, 0xC8, 0xA7, FIL_, 0xCC, 0xA5,
+               FIL_, 0xE1, 0xB8, 0x81, FIL_, 0x03, 0xCC, 0xB1,
+               FIL_, 0xE1, 0xB8, 0x87, FIL_, 0xCC, 0xA3, FIL_,
+               0xE1, 0xB8, 0x85, FIL_, 0xCC, 0x87, FIL_, 0xE1,
+               0xB8, 0x83, FIL_, 0x05, 0xCC, 0x87, FIL_, 0xC4,
+               0x8B, FIL_, 0xCC, 0xA7, FIL_, 0xC3, 0xA7, FIL_,
+               0xCC, 0x82, FIL_, 0xC4, 0x89, FIL_, 0xCC, 0x8C,
+               FIL_, 0xC4, 0x8D, FIL_, 0xCC, 0x81, FIL_, 0xC4,
+               0x87, FIL_, 0x06, 0xCC, 0xAD, FIL_, 0xE1, 0xB8,
+               0x93, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x8B,
+               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0x8D, FIL_,
+               0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0x8F, FIL_, 0xCC,
+               0xA7, FIL_, 0xE1, 0xB8, 0x91, FIL_, 0xCC, 0x8C,
+               FIL_, 0xC4, 0x8F, FIL_, 0x11, 0xCC, 0xA8, FIL_,
+               0xC4, 0x99, FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x9B,
+               FIL_, 0xCC, 0x87, FIL_, 0xC4, 0x97, FIL_, 0xCC,
+               0x88, FIL_, 0xC3, 0xAB, FIL_, 0xCC, 0xA3, FIL_,
+               0xE1, 0xBA, 0xB9, FIL_, 0xCC, 0xB0, FIL_, 0xE1,
+               0xB8, 0x9B, FIL_, 0xCC, 0x84, FIL_, 0xC4, 0x93,
+               FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x99, FIL_,
+               0xCC, 0x83, FIL_, 0xE1, 0xBA, 0xBD, FIL_, 0xCC,
+               0x86, FIL_, 0xC4, 0x95, FIL_, 0xCC, 0xA7, FIL_,
+               0xC8, 0xA9, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA,
+               0xBB, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x85, FIL_,
+               0xCC, 0x81, FIL_, 0xC3, 0xA9, FIL_, 0xCC, 0x91,
+               FIL_, 0xC8, 0x87, FIL_, 0xCC, 0x80, FIL_, 0xC3,
+               0xA8, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xAA, FIL_,
+               0x01, 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9F, FIL_,
+               0x07, 0xCC, 0x86, FIL_, 0xC4, 0x9F, FIL_, 0xCC,
+               0xA7, FIL_, 0xC4, 0xA3, FIL_, 0xCC, 0x81, FIL_,
+               0xC7, 0xB5, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0x9D,
+               FIL_, 0xCC, 0x87, FIL_, 0xC4, 0xA1, FIL_, 0xCC,
+               0x8C, FIL_, 0xC7, 0xA7, FIL_, 0xCC, 0x84, FIL_,
+               0xE1, 0xB8, 0xA1, FIL_, 0x08, 0xCC, 0x8C, FIL_,
+               0xC8, 0x9F, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0xA5,
+               FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA7, FIL_,
+               0xCC, 0x87, FIL_, 0xE1, 0xB8, 0xA3, FIL_, 0xCC,
+               0xB1, FIL_, 0xE1, 0xBA, 0x96, FIL_, 0xCC, 0xA3,
+               FIL_, 0xE1, 0xB8, 0xA5, FIL_, 0xCC, 0xA7, FIL_,
+               0xE1, 0xB8, 0xA9, FIL_, 0xCC, 0xAE, FIL_, 0xE1,
+               0xB8, 0xAB, FIL_, 0x0E, 0xCC, 0x81, FIL_, 0xC3,
+               0xAD, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xAC, FIL_,
+               0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0x8B, FIL_, 0xCC,
+               0x8C, FIL_, 0xC7, 0x90, FIL_, 0xCC, 0x89, FIL_,
+               0xE1, 0xBB, 0x89, FIL_, 0xCC, 0x91, FIL_, 0xC8,
+               0x8B, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x89, FIL_,
+               0xCC, 0x82, FIL_, 0xC3, 0xAE, FIL_, 0xCC, 0xB0,
+               FIL_, 0xE1, 0xB8, 0xAD, FIL_, 0xCC, 0xA8, FIL_,
+               0xC4, 0xAF, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0xAD,
+               FIL_, 0xCC, 0x84, FIL_, 0xC4, 0xAB, FIL_, 0xCC,
+               0x83, FIL_, 0xC4, 0xA9, FIL_, 0xCC, 0x88, FIL_,
+               0xC3, 0xAF, FIL_, 0x02, 0xCC, 0x82, FIL_, 0xC4,
+               0xB5, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0xB0, FIL_,
+               0x05, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0xB3, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xB1, FIL_, 0xCC,
+               0xA7, FIL_, 0xC4, 0xB7, FIL_, 0xCC, 0x8C, FIL_,
+               0xC7, 0xA9, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB8,
+               0xB5, FIL_, 0x06, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
+               0xB7, FIL_, 0xCC, 0x81, FIL_, 0xC4, 0xBA, FIL_,
+               0xCC, 0xA7, FIL_, 0xC4, 0xBC, FIL_, 0xCC, 0x8C,
+               FIL_, 0xC4, 0xBE, FIL_, 0xCC, 0xB1, FIL_, 0xE1,
+               0xB8, 0xBB, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8,
+               0xBD, FIL_, 0x03, 0xCC, 0xA3, FIL_, 0xE1, 0xB9,
+               0x83, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xBF,
+               FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x81, FIL_,
+               0x09, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x87, FIL_,
+               0xCC, 0x83, FIL_, 0xC3, 0xB1, FIL_, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0x85, FIL_, 0xCC, 0xB1, FIL_,
+               0xE1, 0xB9, 0x89, FIL_, 0xCC, 0x81, FIL_, 0xC5,
+               0x84, FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x86, FIL_,
+               0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0x8B, FIL_, 0xCC,
+               0x8C, FIL_, 0xC5, 0x88, FIL_, 0xCC, 0x80, FIL_,
+               0xC7, 0xB9, FIL_, 0x10, 0xCC, 0x89, FIL_, 0xE1,
+               0xBB, 0x8F, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0xB3,
+               FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xB2, FIL_, 0xCC,
+               0x87, FIL_, 0xC8, 0xAF, FIL_, 0xCC, 0x8F, FIL_,
+               0xC8, 0x8D, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB,
+               0x8D, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0x8D, FIL_,
+               0xCC, 0x8C, FIL_, 0xC7, 0x92, FIL_, 0xCC, 0x86,
+               FIL_, 0xC5, 0x8F, FIL_, 0xCC, 0x8B, FIL_, 0xC5,
+               0x91, FIL_, 0xCC, 0x9B, FIL_, 0xC6, 0xA1, FIL_,
+               0xCC, 0x91, FIL_, 0xC8, 0x8F, FIL_, 0xCC, 0xA8,
+               FIL_, 0xC7, 0xAB, FIL_, 0xCC, 0x88, FIL_, 0xC3,
+               0xB6, FIL_, 0xCC, 0x83, FIL_, 0xC3, 0xB5, FIL_,
+               0xCC, 0x82, FIL_, 0xC3, 0xB4, FIL_, 0x02, 0xCC,
+               0x87, FIL_, 0xE1, 0xB9, 0x97, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xB9, 0x95, FIL_, 0x08, 0xCC, 0xB1,
+               FIL_, 0xE1, 0xB9, 0x9F, FIL_, 0xCC, 0x87, FIL_,
+               0xE1, 0xB9, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC5,
+               0x95, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x91, FIL_,
+               0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x9B, FIL_, 0xCC,
+               0x8C, FIL_, 0xC5, 0x99, FIL_, 0xCC, 0x91, FIL_,
+               0xC8, 0x93, FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x97,
+               FIL_, 0x07, 0xCC, 0xA6, FIL_, 0xC8, 0x99, FIL_,
+               0xCC, 0x8C, FIL_, 0xC5, 0xA1, FIL_, 0xCC, 0x81,
+               FIL_, 0xC5, 0x9B, FIL_, 0xCC, 0x87, FIL_, 0xE1,
+               0xB9, 0xA1, FIL_, 0xCC, 0x82, FIL_, 0xC5, 0x9D,
+               FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x9F, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xB9, 0xA3, FIL_, 0x08, 0xCC,
+               0x88, FIL_, 0xE1, 0xBA, 0x97, FIL_, 0xCC, 0xAD,
+               FIL_, 0xE1, 0xB9, 0xB1, FIL_, 0xCC, 0xB1, FIL_,
+               0xE1, 0xB9, 0xAF, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xB9, 0xAD, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0xA5,
+               FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0xA3, FIL_, 0xCC,
+               0x87, FIL_, 0xE1, 0xB9, 0xAB, FIL_, 0xCC, 0xA6,
+               FIL_, 0xC8, 0x9B, FIL_, 0x13, 0xCC, 0x81, FIL_,
+               0xC3, 0xBA, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x97,
+               FIL_, 0xCC, 0x83, FIL_, 0xC5, 0xA9, FIL_, 0xCC,
+               0x8F, FIL_, 0xC8, 0x95, FIL_, 0xCC, 0xA8, FIL_,
+               0xC5, 0xB3, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xBB,
+               FIL_, 0xCC, 0x88, FIL_, 0xC3, 0xBC, FIL_, 0xCC,
+               0x80, FIL_, 0xC3, 0xB9, FIL_, 0xCC, 0xA3, FIL_,
+               0xE1, 0xBB, 0xA5, FIL_, 0xCC, 0xA4, FIL_, 0xE1,
+               0xB9, 0xB3, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB,
+               0xA7, FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB9, 0xB5,
+               FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB7, FIL_,
+               0xCC, 0x9B, FIL_, 0xC6, 0xB0, FIL_, 0xCC, 0x84,
+               FIL_, 0xC5, 0xAB, FIL_, 0xCC, 0x8B, FIL_, 0xC5,
+               0xB1, FIL_, 0xCC, 0x86, FIL_, 0xC5, 0xAD, FIL_,
+               0xCC, 0x8C, FIL_, 0xC7, 0x94, FIL_, 0xCC, 0x8A,
+               FIL_, 0xC5, 0xAF, FIL_, 0x02, 0xCC, 0x83, FIL_,
+               0xE1, 0xB9, 0xBD, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xB9, 0xBF, FIL_, 0x07, 0xCC, 0x82, FIL_, 0xC5,
+               0xB5, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0x81,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0x83, FIL_,
+               0xCC, 0x88, FIL_, 0xE1, 0xBA, 0x85, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xBA, 0x89, FIL_, 0xCC, 0x87,
+               FIL_, 0xE1, 0xBA, 0x87, FIL_, 0xCC, 0x8A, FIL_,
+               0xE1, 0xBA, 0x98, FIL_, 0x02, 0xCC, 0x87, FIL_,
+               0xE1, 0xBA, 0x8B, FIL_, 0xCC, 0x88, FIL_, 0xE1,
+               0xBA, 0x8D, FIL_, 0x0A, 0xCC, 0x87, FIL_, 0xE1,
+               0xBA, 0x8F, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB,
+               0xB9, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xB3,
+               FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0xB7, FIL_,
+               0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xB5, FIL_, 0xCC,
+               0x82, FIL_, 0xC5, 0xB7, FIL_, 0xCC, 0x84, FIL_,
+               0xC8, 0xB3, FIL_, 0xCC, 0x8A, FIL_, 0xE1, 0xBA,
+               0x99, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0xBF, FIL_,
+               0xCC, 0x81, FIL_, 0xC3, 0xBD, FIL_, 0x06, 0xCC,
+               0x8C, FIL_, 0xC5, 0xBE, FIL_, 0xCC, 0x87, FIL_,
+               0xC5, 0xBC, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xBA,
+               0x95, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x93,
+               FIL_, 0xCC, 0x81, FIL_, 0xC5, 0xBA, FIL_, 0xCC,
+               0x82, FIL_, 0xE1, 0xBA, 0x91, FIL_, 0x03, 0xCC,
+               0x80, FIL_, 0xE1, 0xBF, 0xAD, FIL_, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBF, 0x81, FIL_, 0xCC, 0x81, FIL_,
+               0xCE, 0x85, FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1,
+               0xBA, 0xA8, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBA,
+               0xAA, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xA4,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xA6, FIL_,
+               0x01, 0xCC, 0x84, FIL_, 0xC7, 0x9E, FIL_, 0x01,
+               0xCC, 0x81, FIL_, 0xC7, 0xBA, FIL_, 0x02, 0xCC,
+               0x84, FIL_, 0xC7, 0xA2, FIL_, 0xCC, 0x81, FIL_,
+               0xC7, 0xBC, FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1,
+               0xB8, 0x88, FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1,
+               0xBA, 0xBE, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB,
+               0x80, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0x84,
+               FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x82, FIL_,
+               0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xAE, FIL_,
+               0x04, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0x96, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x90, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBB, 0x92, FIL_, 0xCC, 0x89,
+               FIL_, 0xE1, 0xBB, 0x94, FIL_, 0x03, 0xCC, 0x84,
+               FIL_, 0xC8, 0xAC, FIL_, 0xCC, 0x81, FIL_, 0xE1,
+               0xB9, 0x8C, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB9,
+               0x8E, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAA,
+               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xC7, 0xBE, FIL_,
+               0x04, 0xCC, 0x80, FIL_, 0xC7, 0x9B, FIL_, 0xCC,
+               0x84, FIL_, 0xC7, 0x95, FIL_, 0xCC, 0x8C, FIL_,
+               0xC7, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC7, 0x97,
+               FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA9,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xA7, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xA5, FIL_, 0xCC,
+               0x83, FIL_, 0xE1, 0xBA, 0xAB, FIL_, 0x01, 0xCC,
+               0x84, FIL_, 0xC7, 0x9F, FIL_, 0x01, 0xCC, 0x81,
+               FIL_, 0xC7, 0xBB, FIL_, 0x02, 0xCC, 0x84, FIL_,
+               0xC7, 0xA3, FIL_, 0xCC, 0x81, FIL_, 0xC7, 0xBD,
+               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x89,
+               FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x83,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xBF, FIL_,
+               0xCC, 0x80, FIL_, 0xE1, 0xBB, 0x81, FIL_, 0xCC,
+               0x83, FIL_, 0xE1, 0xBB, 0x85, FIL_, 0x01, 0xCC,
+               0x81, FIL_, 0xE1, 0xB8, 0xAF, FIL_, 0x04, 0xCC,
+               0x83, FIL_, 0xE1, 0xBB, 0x97, FIL_, 0xCC, 0x89,
+               FIL_, 0xE1, 0xBB, 0x95, FIL_, 0xCC, 0x80, FIL_,
+               0xE1, 0xBB, 0x93, FIL_, 0xCC, 0x81, FIL_, 0xE1,
+               0xBB, 0x91, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1,
+               0xB9, 0x8D, FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xAD,
+               FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB9, 0x8F, FIL_,
+               0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAB, FIL_, 0x01,
+               0xCC, 0x81, FIL_, 0xC7, 0xBF, FIL_, 0x04, 0xCC,
+               0x81, FIL_, 0xC7, 0x98, FIL_, 0xCC, 0x84, FIL_,
+               0xC7, 0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x9A,
+               FIL_, 0xCC, 0x80, FIL_, 0xC7, 0x9C, FIL_, 0x04,
+               0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xB0, FIL_, 0xCC,
+               0x81, FIL_, 0xE1, 0xBA, 0xAE, FIL_, 0xCC, 0x83,
+               FIL_, 0xE1, 0xBA, 0xB4, FIL_, 0xCC, 0x89, FIL_,
+               0xE1, 0xBA, 0xB2, FIL_, 0x04, 0xCC, 0x80, FIL_,
+               0xE1, 0xBA, 0xB1, FIL_, 0xCC, 0x83, FIL_, 0xE1,
+               0xBA, 0xB5, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA,
+               0xAF, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xB3,
+               FIL_, 0x02, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x96,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x94, FIL_,
+               0x02, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x95, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x97, FIL_, 0x02,
+               0xCC, 0x80, FIL_, 0xE1, 0xB9, 0x90, FIL_, 0xCC,
+               0x81, FIL_, 0xE1, 0xB9, 0x92, FIL_, 0x02, 0xCC,
+               0x80, FIL_, 0xE1, 0xB9, 0x91, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xB9, 0x93, FIL_, 0x01, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0xA4, FIL_, 0x01, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0xA5, FIL_, 0x01, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0xA6, FIL_, 0x01, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0xA7, FIL_, 0x01, 0xCC, 0x81,
+               FIL_, 0xE1, 0xB9, 0xB8, FIL_, 0x01, 0xCC, 0x81,
+               FIL_, 0xE1, 0xB9, 0xB9, FIL_, 0x01, 0xCC, 0x88,
+               FIL_, 0xE1, 0xB9, 0xBA, FIL_, 0x01, 0xCC, 0x88,
+               FIL_, 0xE1, 0xB9, 0xBB, FIL_, 0x01, 0xCC, 0x87,
+               FIL_, 0xE1, 0xBA, 0x9B, FIL_, 0x05, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBB, 0x9C, FIL_, 0xCC, 0x81, FIL_,
+               0xE1, 0xBB, 0x9A, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xBB, 0xA2, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB,
+               0xA0, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x9E,
+               FIL_, 0x05, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xA1,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x9B, FIL_,
+               0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xA3, FIL_, 0xCC,
+               0x89, FIL_, 0xE1, 0xBB, 0x9F, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBB, 0x9D, FIL_, 0x05, 0xCC, 0x83,
+               FIL_, 0xE1, 0xBB, 0xAE, FIL_, 0xCC, 0xA3, FIL_,
+               0xE1, 0xBB, 0xB0, FIL_, 0xCC, 0x89, FIL_, 0xE1,
+               0xBB, 0xAC, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB,
+               0xA8, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xAA,
+               FIL_, 0x05, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xB1,
+               FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xAF, FIL_,
+               0xCC, 0x89, FIL_, 0xE1, 0xBB, 0xAD, FIL_, 0xCC,
+               0x81, FIL_, 0xE1, 0xBB, 0xA9, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBB, 0xAB, FIL_, 0x01, 0xCC, 0x8C,
+               FIL_, 0xC7, 0xAE, FIL_, 0x01, 0xCC, 0x84, FIL_,
+               0xC7, 0xAC, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7,
+               0xAD, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA0,
+               FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA1, FIL_,
+               0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9C, FIL_,
+               0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9D, FIL_,
+               0x01, 0xCC, 0x84, FIL_, 0xC8, 0xB0, FIL_, 0x01,
+               0xCC, 0x84, FIL_, 0xC8, 0xB1, FIL_, 0x01, 0xCC,
+               0x8C, FIL_, 0xC7, 0xAF, FIL_, 0x07, 0xCC, 0x93,
+               FIL_, 0xE1, 0xBC, 0x88, FIL_, 0xCC, 0x94, FIL_,
+               0xE1, 0xBC, 0x89, FIL_, 0xCC, 0x81, FIL_, 0xCE,
+               0x86, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xBC,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBE, 0xBA, FIL_,
+               0xCC, 0x84, FIL_, 0xE1, 0xBE, 0xB9, FIL_, 0xCC,
+               0x86, FIL_, 0xE1, 0xBE, 0xB8, FIL_, 0x04, 0xCC,
+               0x81, FIL_, 0xCE, 0x88, FIL_, 0xCC, 0x94, FIL_,
+               0xE1, 0xBC, 0x99, FIL_, 0xCC, 0x93, FIL_, 0xE1,
+               0xBC, 0x98, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF,
+               0x88, FIL_, 0x05, 0xCC, 0x94, FIL_, 0xE1, 0xBC,
+               0xA9, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x8A,
+               FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x89, FIL_, 0xCD,
+               0x85, FIL_, 0xE1, 0xBF, 0x8C, FIL_, 0xCC, 0x93,
+               FIL_, 0xE1, 0xBC, 0xA8, FIL_, 0x07, 0xCC, 0x81,
+               FIL_, 0xCE, 0x8A, FIL_, 0xCC, 0x88, FIL_, 0xCE,
+               0xAA, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF, 0x98,
+               FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xBF, 0x99, FIL_,
+               0xCC, 0x93, FIL_, 0xE1, 0xBC, 0xB8, FIL_, 0xCC,
+               0x94, FIL_, 0xE1, 0xBC, 0xB9, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBF, 0x9A, FIL_, 0x04, 0xCC, 0x94,
+               FIL_, 0xE1, 0xBD, 0x89, FIL_, 0xCC, 0x80, FIL_,
+               0xE1, 0xBF, 0xB8, FIL_, 0xCC, 0x81, FIL_, 0xCE,
+               0x8C, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD, 0x88,
+               FIL_, 0x01, 0xCC, 0x94, FIL_, 0xE1, 0xBF, 0xAC,
+               FIL_, 0x06, 0xCC, 0x81, FIL_, 0xCE, 0x8E, FIL_,
+               0xCC, 0x86, FIL_, 0xE1, 0xBF, 0xA8, FIL_, 0xCC,
+               0x94, FIL_, 0xE1, 0xBD, 0x99, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBF, 0xAA, FIL_, 0xCC, 0x84, FIL_,
+               0xE1, 0xBF, 0xA9, FIL_, 0xCC, 0x88, FIL_, 0xCE,
+               0xAB, FIL_, 0x05, 0xCC, 0x80, FIL_, 0xE1, 0xBF,
+               0xBA, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x8F, FIL_,
+               0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xBC, FIL_, 0xCC,
+               0x94, FIL_, 0xE1, 0xBD, 0xA9, FIL_, 0xCC, 0x93,
+               FIL_, 0xE1, 0xBD, 0xA8, FIL_, 0x01, 0xCD, 0x85,
+               FIL_, 0xE1, 0xBE, 0xB4, FIL_, 0x01, 0xCD, 0x85,
+               FIL_, 0xE1, 0xBF, 0x84, FIL_, 0x08, 0xCC, 0x81,
+               FIL_, 0xCE, 0xAC, FIL_, 0xCC, 0x80, FIL_, 0xE1,
+               0xBD, 0xB0, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC,
+               0x80, FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBC, 0x81,
+               FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBE, 0xB6, FIL_,
+               0xCC, 0x86, FIL_, 0xE1, 0xBE, 0xB0, FIL_, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0xB3, FIL_, 0xCC, 0x84,
+               FIL_, 0xE1, 0xBE, 0xB1, FIL_, 0x04, 0xCC, 0x81,
+               FIL_, 0xCE, 0xAD, FIL_, 0xCC, 0x94, FIL_, 0xE1,
+               0xBC, 0x91, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD,
+               0xB2, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC, 0x90,
+               FIL_, 0x06, 0xCC, 0x81, FIL_, 0xCE, 0xAE, FIL_,
+               0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xB4, FIL_, 0xCD,
+               0x85, FIL_, 0xE1, 0xBF, 0x83, FIL_, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBF, 0x86, FIL_, 0xCC, 0x94, FIL_,
+               0xE1, 0xBC, 0xA1, FIL_, 0xCC, 0x93, FIL_, 0xE1,
+               0xBC, 0xA0, FIL_, 0x08, 0xCD, 0x82, FIL_, 0xE1,
+               0xBF, 0x96, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF,
+               0x90, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC, 0xB0,
+               FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAF, FIL_, 0xCC,
+               0x94, FIL_, 0xE1, 0xBC, 0xB1, FIL_, 0xCC, 0x84,
+               FIL_, 0xE1, 0xBF, 0x91, FIL_, 0xCC, 0x88, FIL_,
+               0xCF, 0x8A, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD,
+               0xB6, FIL_, 0x04, 0xCC, 0x81, FIL_, 0xCF, 0x8C,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xB8, FIL_,
+               0xCC, 0x93, FIL_, 0xE1, 0xBD, 0x80, FIL_, 0xCC,
+               0x94, FIL_, 0xE1, 0xBD, 0x81, FIL_, 0x02, 0xCC,
+               0x93, FIL_, 0xE1, 0xBF, 0xA4, FIL_, 0xCC, 0x94,
+               FIL_, 0xE1, 0xBF, 0xA5, FIL_, 0x08, 0xCC, 0x93,
+               FIL_, 0xE1, 0xBD, 0x90, FIL_, 0xCC, 0x94, FIL_,
+               0xE1, 0xBD, 0x91, FIL_, 0xCC, 0x86, FIL_, 0xE1,
+               0xBF, 0xA0, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF,
+               0xA6, FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xBF, 0xA1,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xBA, FIL_,
+               0xCC, 0x81, FIL_, 0xCF, 0x8D, FIL_, 0xCC, 0x88,
+               FIL_, 0xCF, 0x8B, FIL_, 0x06, 0xCC, 0x94, FIL_,
+               0xE1, 0xBD, 0xA1, FIL_, 0xCD, 0x85, FIL_, 0xE1,
+               0xBF, 0xB3, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD,
+               0xBC, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0xB6,
+               FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD, 0xA0, FIL_,
+               0xCC, 0x81, FIL_, 0xCF, 0x8E, FIL_, 0x03, 0xCD,
+               0x82, FIL_, 0xE1, 0xBF, 0x97, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBF, 0x92, FIL_, 0xCC, 0x81, FIL_,
+               0xCE, 0x90, FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1,
+               0xBF, 0xA2, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xB0,
+               FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0xA7, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB4, FIL_,
+               0x02, 0xCC, 0x88, FIL_, 0xCF, 0x94, FIL_, 0xCC,
+               0x81, FIL_, 0xCF, 0x93, FIL_, 0x01, 0xCC, 0x88,
+               FIL_, 0xD0, 0x87, FIL_, 0x02, 0xCC, 0x86, FIL_,
+               0xD3, 0x90, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x92,
+               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD0, 0x83, FIL_,
+               0x03, 0xCC, 0x86, FIL_, 0xD3, 0x96, FIL_, 0xCC,
+               0x80, FIL_, 0xD0, 0x80, FIL_, 0xCC, 0x88, FIL_,
+               0xD0, 0x81, FIL_, 0x02, 0xCC, 0x88, FIL_, 0xD3,
+               0x9C, FIL_, 0xCC, 0x86, FIL_, 0xD3, 0x81, FIL_,
+               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9E, FIL_, 0x04,
+               0xCC, 0x80, FIL_, 0xD0, 0x8D, FIL_, 0xCC, 0x88,
+               FIL_, 0xD3, 0xA4, FIL_, 0xCC, 0x86, FIL_, 0xD0,
+               0x99, FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xA2, FIL_,
+               0x01, 0xCC, 0x81, FIL_, 0xD0, 0x8C, FIL_, 0x01,
+               0xCC, 0x88, FIL_, 0xD3, 0xA6, FIL_, 0x04, 0xCC,
+               0x86, FIL_, 0xD0, 0x8E, FIL_, 0xCC, 0x8B, FIL_,
+               0xD3, 0xB2, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0xB0,
+               FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xAE, FIL_, 0x01,
+               0xCC, 0x88, FIL_, 0xD3, 0xB4, FIL_, 0x01, 0xCC,
+               0x88, FIL_, 0xD3, 0xB8, FIL_, 0x01, 0xCC, 0x88,
+               FIL_, 0xD3, 0xAC, FIL_, 0x02, 0xCC, 0x86, FIL_,
+               0xD3, 0x91, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x93,
+               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD1, 0x93, FIL_,
+               0x03, 0xCC, 0x80, FIL_, 0xD1, 0x90, FIL_, 0xCC,
+               0x88, FIL_, 0xD1, 0x91, FIL_, 0xCC, 0x86, FIL_,
+               0xD3, 0x97, FIL_, 0x02, 0xCC, 0x88, FIL_, 0xD3,
+               0x9D, FIL_, 0xCC, 0x86, FIL_, 0xD3, 0x82, FIL_,
+               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9F, FIL_, 0x04,
+               0xCC, 0x88, FIL_, 0xD3, 0xA5, FIL_, 0xCC, 0x86,
+               FIL_, 0xD0, 0xB9, FIL_, 0xCC, 0x80, FIL_, 0xD1,
+               0x9D, FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xA3, FIL_,
+               0x01, 0xCC, 0x81, FIL_, 0xD1, 0x9C, FIL_, 0x01,
+               0xCC, 0x88, FIL_, 0xD3, 0xA7, FIL_, 0x04, 0xCC,
+               0x84, FIL_, 0xD3, 0xAF, FIL_, 0xCC, 0x86, FIL_,
+               0xD1, 0x9E, FIL_, 0xCC, 0x8B, FIL_, 0xD3, 0xB3,
+               FIL_, 0xCC, 0x88, FIL_, 0xD3, 0xB1, FIL_, 0x01,
+               0xCC, 0x88, FIL_, 0xD3, 0xB5, FIL_, 0x01, 0xCC,
+               0x88, FIL_, 0xD3, 0xB9, FIL_, 0x01, 0xCC, 0x88,
+               FIL_, 0xD3, 0xAD, FIL_, 0x01, 0xCC, 0x88, FIL_,
+               0xD1, 0x97, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1,
+               0xB6, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1, 0xB7,
+               FIL_, 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9A, FIL_,
+               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9B, FIL_, 0x01,
+               0xCC, 0x88, FIL_, 0xD3, 0xAA, FIL_, 0x01, 0xCC,
+               0x88, FIL_, 0xD3, 0xAB, FIL_, 0x03, 0xD9, 0x94,
+               FIL_, 0xD8, 0xA3, FIL_, 0xD9, 0x93, FIL_, 0xD8,
+               0xA2, FIL_, 0xD9, 0x95, FIL_, 0xD8, 0xA5, FIL_,
+               0x01, 0xD9, 0x94, FIL_, 0xD8, 0xA4, FIL_, 0x01,
+               0xD9, 0x94, FIL_, 0xD8, 0xA6, FIL_, 0x01, 0xD9,
+               0x94, FIL_, 0xDB, 0x82, FIL_, 0x01, 0xD9, 0x94,
+               FIL_, 0xDB, 0x93, FIL_, 0x01, 0xD9, 0x94, FIL_,
+               0xDB, 0x80, FIL_, 0x01, 0xE0, 0xA4, 0xBC, FIL_,
+               0xE0, 0xA4, 0xA9, FIL_, 0x01, 0xE0, 0xA4, 0xBC,
+               FIL_, 0xE0, 0xA4, 0xB1, FIL_, 0x01, 0xE0, 0xA4,
+               0xBC, FIL_, 0xE0, 0xA4, 0xB4, FIL_, 0x02, 0xE0,
+               0xA6, 0xBE, FIL_, 0xE0, 0xA7, 0x8B, FIL_, 0xE0,
+               0xA7, 0x97, FIL_, 0xE0, 0xA7, 0x8C, FIL_, 0x03,
+               0xE0, 0xAD, 0x97, FIL_, 0xE0, 0xAD, 0x8C, FIL_,
+               0xE0, 0xAC, 0xBE, FIL_, 0xE0, 0xAD, 0x8B, FIL_,
+               0xE0, 0xAD, 0x96, FIL_, 0xE0, 0xAD, 0x88, FIL_,
+               0x01, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAE, 0x94,
+               FIL_, 0x02, 0xE0, 0xAE, 0xBE, FIL_, 0xE0, 0xAF,
+               0x8A, FIL_, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAF,
+               0x8C, FIL_, 0x01, 0xE0, 0xAE, 0xBE, FIL_, 0xE0,
+               0xAF, 0x8B, FIL_, 0x01, 0xE0, 0xB1, 0x96, FIL_,
+               0xE0, 0xB1, 0x88, FIL_, 0x01, 0xE0, 0xB3, 0x95,
+               FIL_, 0xE0, 0xB3, 0x80, FIL_, 0x03, 0xE0, 0xB3,
+               0x95, FIL_, 0xE0, 0xB3, 0x87, FIL_, 0xE0, 0xB3,
+               0x82, FIL_, 0xE0, 0xB3, 0x8A, FIL_, 0xE0, 0xB3,
+               0x96, FIL_, 0xE0, 0xB3, 0x88, FIL_, 0x01, 0xE0,
+               0xB3, 0x95, FIL_, 0xE0, 0xB3, 0x8B, FIL_, 0x02,
+               0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8A, FIL_,
+               0xE0, 0xB5, 0x97, FIL_, 0xE0, 0xB5, 0x8C, FIL_,
+               0x01, 0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8B,
+               FIL_, 0x03, 0xE0, 0xB7, 0x8F, FIL_, 0xE0, 0xB7,
+               0x9C, FIL_, 0xE0, 0xB7, 0x8A, FIL_, 0xE0, 0xB7,
+               0x9A, FIL_, 0xE0, 0xB7, 0x9F, FIL_, 0xE0, 0xB7,
+               0x9E, FIL_, 0x01, 0xE0, 0xB7, 0x8A, FIL_, 0xE0,
+               0xB7, 0x9D, FIL_, 0x01, 0xE1, 0x80, 0xAE, FIL_,
+               0xE1, 0x80, 0xA6, FIL_, 0x01, 0xCC, 0x84, FIL_,
+               0xE1, 0xB8, 0xB8, FIL_, 0x01, 0xCC, 0x84, FIL_,
+               0xE1, 0xB8, 0xB9, FIL_, 0x01, 0xCC, 0x84, FIL_,
+               0xE1, 0xB9, 0x9C, FIL_, 0x01, 0xCC, 0x84, FIL_,
+               0xE1, 0xB9, 0x9D, FIL_, 0x01, 0xCC, 0x87, FIL_,
+               0xE1, 0xB9, 0xA8, FIL_, 0x01, 0xCC, 0x87, FIL_,
+               0xE1, 0xB9, 0xA9, FIL_, 0x02, 0xCC, 0x86, FIL_,
+               0xE1, 0xBA, 0xB6, FIL_, 0xCC, 0x82, FIL_, 0xE1,
+               0xBA, 0xAC, FIL_, 0x02, 0xCC, 0x86, FIL_, 0xE1,
+               0xBA, 0xB7, FIL_, 0xCC, 0x82, FIL_, 0xE1, 0xBA,
+               0xAD, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB,
+               0x86, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB,
+               0x87, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB,
+               0x98, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB,
+               0x99, FIL_, 0x04, 0xCC, 0x80, FIL_, 0xE1, 0xBC,
+               0x82, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x84,
+               FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x80, FIL_,
+               0xCD, 0x82, FIL_, 0xE1, 0xBC, 0x86, FIL_, 0x04,
+               0xCD, 0x82, FIL_, 0xE1, 0xBC, 0x87, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBC, 0x83, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xBC, 0x85, FIL_, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x81, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x82, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x83, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x84, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x85, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x86, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x87, FIL_, 0x04, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x88, FIL_, 0xCC, 0x80, FIL_, 0xE1,
+               0xBC, 0x8A, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC,
+               0x8E, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x8C,
+               FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x8D,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x8B, FIL_,
+               0xCD, 0x82, FIL_, 0xE1, 0xBC, 0x8F, FIL_, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x89, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x8A, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x8B, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x8C, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x8D, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x8E, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x8F, FIL_, 0x02, 0xCC,
+               0x80, FIL_, 0xE1, 0xBC, 0x92, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xBC, 0x94, FIL_, 0x02, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBC, 0x93, FIL_, 0xCC, 0x81, FIL_,
+               0xE1, 0xBC, 0x95, FIL_, 0x02, 0xCC, 0x80, FIL_,
+               0xE1, 0xBC, 0x9A, FIL_, 0xCC, 0x81, FIL_, 0xE1,
+               0xBC, 0x9C, FIL_, 0x02, 0xCC, 0x80, FIL_, 0xE1,
+               0xBC, 0x9B, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC,
+               0x9D, FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBC,
+               0xA6, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x90,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xA4, FIL_,
+               0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xA2, FIL_, 0x04,
+               0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xA3, FIL_, 0xCC,
+               0x81, FIL_, 0xE1, 0xBC, 0xA5, FIL_, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBC, 0xA7, FIL_, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x91, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x92, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x93, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x94, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x95, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x96, FIL_, 0x01, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0x97, FIL_, 0x04, 0xCD, 0x82, FIL_,
+               0xE1, 0xBC, 0xAE, FIL_, 0xCC, 0x81, FIL_, 0xE1,
+               0xBC, 0xAC, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE,
+               0x98, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xAA,
+               FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xAF,
+               FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x99, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xAD, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBC, 0xAB, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x9A, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x9B, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x9C, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x9D, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x9E, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0x9F, FIL_, 0x03, 0xCC,
+               0x81, FIL_, 0xE1, 0xBC, 0xB4, FIL_, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBC, 0xB6, FIL_, 0xCC, 0x80, FIL_,
+               0xE1, 0xBC, 0xB2, FIL_, 0x03, 0xCC, 0x81, FIL_,
+               0xE1, 0xBC, 0xB5, FIL_, 0xCD, 0x82, FIL_, 0xE1,
+               0xBC, 0xB7, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC,
+               0xB3, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xBC,
+               0xBC, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xBA,
+               FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xBE, FIL_,
+               0x03, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xBB, FIL_,
+               0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xBF, FIL_, 0xCC,
+               0x81, FIL_, 0xE1, 0xBC, 0xBD, FIL_, 0x02, 0xCC,
+               0x80, FIL_, 0xE1, 0xBD, 0x82, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xBD, 0x84, FIL_, 0x02, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBD, 0x83, FIL_, 0xCC, 0x81, FIL_,
+               0xE1, 0xBD, 0x85, FIL_, 0x02, 0xCC, 0x81, FIL_,
+               0xE1, 0xBD, 0x8C, FIL_, 0xCC, 0x80, FIL_, 0xE1,
+               0xBD, 0x8A, FIL_, 0x02, 0xCC, 0x81, FIL_, 0xE1,
+               0xBD, 0x8D, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD,
+               0x8B, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xBD,
+               0x94, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0x96,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x92, FIL_,
+               0x03, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0x97, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x95, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBD, 0x93, FIL_, 0x03, 0xCC,
+               0x81, FIL_, 0xE1, 0xBD, 0x9D, FIL_, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBD, 0x9F, FIL_, 0xCC, 0x80, FIL_,
+               0xE1, 0xBD, 0x9B, FIL_, 0x04, 0xCC, 0x81, FIL_,
+               0xE1, 0xBD, 0xA4, FIL_, 0xCC, 0x80, FIL_, 0xE1,
+               0xBD, 0xA2, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD,
+               0xA6, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA0,
+               FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xA7,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0xA5, FIL_,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA1, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBD, 0xA3, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0xA2, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0xA3, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0xA4, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0xA5, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0xA6, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0xA7, FIL_, 0x04, 0xCC,
+               0x81, FIL_, 0xE1, 0xBD, 0xAC, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBD, 0xAA, FIL_, 0xCD, 0x82, FIL_,
+               0xE1, 0xBD, 0xAE, FIL_, 0xCD, 0x85, FIL_, 0xE1,
+               0xBE, 0xA8, FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1,
+               0xBD, 0xAD, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE,
+               0xA9, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xAF,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xAB, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAA, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAB, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAC, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAD, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAE, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAF, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xB2, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0x82, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB2, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xB7, FIL_,
+               0x03, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0x8F, FIL_,
+               0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x8D, FIL_, 0xCC,
+               0x81, FIL_, 0xE1, 0xBF, 0x8E, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBF, 0x87, FIL_, 0x01, 0xCD,
+               0x85, FIL_, 0xE1, 0xBF, 0xB7, FIL_, 0x03, 0xCC,
+               0x80, FIL_, 0xE1, 0xBF, 0x9D, FIL_, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBF, 0x9F, FIL_, 0xCC, 0x81, FIL_,
+               0xE1, 0xBF, 0x9E, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x86, 0x9A, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x86, 0x9B, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x86, 0xAE, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x87, 0x8D, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x87, 0x8F, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x87, 0x8E, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x88, 0x84, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x88, 0x89, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x88, 0x8C, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x88, 0xA4, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x88, 0xA6, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0x81, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0x84, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0x87, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0x89, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0xAD, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0xA2, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0xB0, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0xB1, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0xB4, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0xB5, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0xB8, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x89, 0xB9, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8A, 0x80, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8A, 0x81, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8B, 0xA0, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8B, 0xA1, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8A, 0x84, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8A, 0x85, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8A, 0x88, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8A, 0x89, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8B, 0xA2, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8B, 0xA3, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8A, 0xAC, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8A, 0xAD, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8A, 0xAE, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8A, 0xAF, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8B, 0xAA, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8B, 0xAB, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8B, 0xAC, FIL_, 0x01, 0xCC, 0xB8, FIL_,
+               0xE2, 0x8B, 0xAD, FIL_, 0x01, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x82, 0x94, FIL_, 0x01, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x81, 0x8C, FIL_, 0x01, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x81, 0x8E, FIL_, 0x01,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x90, FIL_,
+               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x92,
+               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81,
+               0x94, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x81, 0x96, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x81, 0x98, FIL_, 0x01, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x81, 0x9A, FIL_, 0x01, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x81, 0x9C, FIL_, 0x01, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x81, 0x9E, FIL_, 0x01,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xA0, FIL_,
+               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xA2,
+               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81,
+               0xA5, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x81, 0xA7, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x81, 0xA9, FIL_, 0x02, 0xE3, 0x82, 0x9A,
+               FIL_, 0xE3, 0x81, 0xB1, FIL_, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x81, 0xB0, FIL_, 0x02, 0xE3, 0x82,
+               0x9A, FIL_, 0xE3, 0x81, 0xB4, FIL_, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x81, 0xB3, FIL_, 0x02, 0xE3,
+               0x82, 0x9A, FIL_, 0xE3, 0x81, 0xB7, FIL_, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x81, 0xB6, FIL_, 0x02,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xB9, FIL_,
+               0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xBA, FIL_,
+               0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xBC,
+               FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xBD,
+               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82,
+               0x9E, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x83, 0xB4, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x82, 0xAC, FIL_, 0x01, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x82, 0xAE, FIL_, 0x01, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x82, 0xB0, FIL_, 0x01, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x82, 0xB2, FIL_, 0x01,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xB4, FIL_,
+               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xB6,
+               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82,
+               0xB8, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x82, 0xBA, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x82, 0xBC, FIL_, 0x01, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x82, 0xBE, FIL_, 0x01, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x83, 0x80, FIL_, 0x01, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x83, 0x82, FIL_, 0x01,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x85, FIL_,
+               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x87,
+               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83,
+               0x89, FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x83, 0x90, FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3,
+               0x83, 0x91, FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x83, 0x93, FIL_, 0xE3, 0x82, 0x9A, FIL_,
+               0xE3, 0x83, 0x94, FIL_, 0x02, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x83, 0x96, FIL_, 0xE3, 0x82, 0x9A,
+               FIL_, 0xE3, 0x83, 0x97, FIL_, 0x02, 0xE3, 0x82,
+               0x9A, FIL_, 0xE3, 0x83, 0x9A, FIL_, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x83, 0x99, FIL_, 0x02, 0xE3,
+               0x82, 0x9A, FIL_, 0xE3, 0x83, 0x9D, FIL_, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x83, 0x9C, FIL_, 0x01,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0xB7, FIL_,
+               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0xB8,
+               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83,
+               0xB9, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x83, 0xBA, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x83, 0xBE, FIL_, 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,    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,    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,
+       },
+       {
+               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAE, FIL_,
+               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xA0, FIL_,
+               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAF, FIL_,
+               0x10, 0xCC, 0xA5, FIL_, 0xE1, 0xB8, 0x80, FIL_,
+               0xCC, 0x87, FIL_, 0xC8, 0xA6, FIL_, 0xCC, 0x83,
+               FIL_, 0xC3, 0x83, FIL_, 0xCC, 0x91, FIL_, 0xC8,
+               0x82, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x80, FIL_,
+               0xCC, 0x8A, FIL_, 0xC3, 0x85, FIL_, 0xCC, 0x88,
+               FIL_, 0xC3, 0x84, FIL_, 0xCC, 0x89, FIL_, 0xE1,
+               0xBA, 0xA2, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA,
+               0xA0, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x8D, FIL_,
+               0xCC, 0x80, FIL_, 0xC3, 0x80, FIL_, 0xCC, 0x81,
+               FIL_, 0xC3, 0x81, FIL_, 0xCC, 0x82, FIL_, 0xC3,
+               0x82, FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x84, FIL_,
+               0xCC, 0x86, FIL_, 0xC4, 0x82, FIL_, 0xCC, 0x84,
+               FIL_, 0xC4, 0x80, FIL_, 0x03, 0xCC, 0xB1, FIL_,
+               0xE1, 0xB8, 0x86, FIL_, 0xCC, 0x87, FIL_, 0xE1,
+               0xB8, 0x82, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
+               0x84, FIL_, 0x05, 0xCC, 0xA7, FIL_, 0xC3, 0x87,
+               FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x8C, FIL_, 0xCC,
+               0x81, FIL_, 0xC4, 0x86, FIL_, 0xCC, 0x82, FIL_,
+               0xC4, 0x88, FIL_, 0xCC, 0x87, FIL_, 0xC4, 0x8A,
+               FIL_, 0x06, 0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0x90,
+               FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x8E, FIL_, 0xCC,
+               0xB1, FIL_, 0xE1, 0xB8, 0x8E, FIL_, 0xCC, 0xAD,
+               FIL_, 0xE1, 0xB8, 0x92, FIL_, 0xCC, 0xA3, FIL_,
+               0xE1, 0xB8, 0x8C, FIL_, 0xCC, 0x87, FIL_, 0xE1,
+               0xB8, 0x8A, FIL_, 0x11, 0xCC, 0x84, FIL_, 0xC4,
+               0x92, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x94, FIL_,
+               0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0xB8, FIL_, 0xCC,
+               0x91, FIL_, 0xC8, 0x86, FIL_, 0xCC, 0x82, FIL_,
+               0xC3, 0x8A, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x84,
+               FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x98, FIL_,
+               0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xBA, FIL_, 0xCC,
+               0xA7, FIL_, 0xC8, 0xA8, FIL_, 0xCC, 0x8C, FIL_,
+               0xC4, 0x9A, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x88,
+               FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x98, FIL_, 0xCC,
+               0x83, FIL_, 0xE1, 0xBA, 0xBC, FIL_, 0xCC, 0x87,
+               FIL_, 0xC4, 0x96, FIL_, 0xCC, 0x81, FIL_, 0xC3,
+               0x89, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x8B, FIL_,
+               0xCC, 0xB0, FIL_, 0xE1, 0xB8, 0x9A, FIL_, 0x01,
+               0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9E, FIL_, 0x07,
+               0xCC, 0x8C, FIL_, 0xC7, 0xA6, FIL_, 0xCC, 0x86,
+               FIL_, 0xC4, 0x9E, FIL_, 0xCC, 0x82, FIL_, 0xC4,
+               0x9C, FIL_, 0xCC, 0xA7, FIL_, 0xC4, 0xA2, FIL_,
+               0xCC, 0x84, FIL_, 0xE1, 0xB8, 0xA0, FIL_, 0xCC,
+               0x81, FIL_, 0xC7, 0xB4, FIL_, 0xCC, 0x87, FIL_,
+               0xC4, 0xA0, FIL_, 0x07, 0xCC, 0x87, FIL_, 0xE1,
+               0xB8, 0xA2, FIL_, 0xCC, 0xA7, FIL_, 0xE1, 0xB8,
+               0xA8, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0xA4, FIL_,
+               0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA6, FIL_, 0xCC,
+               0x8C, FIL_, 0xC8, 0x9E, FIL_, 0xCC, 0xAE, FIL_,
+               0xE1, 0xB8, 0xAA, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xB8, 0xA4, FIL_, 0x0F, 0xCC, 0xB0, FIL_, 0xE1,
+               0xB8, 0xAC, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x8F,
+               FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x8C, FIL_, 0xCC,
+               0x89, FIL_, 0xE1, 0xBB, 0x88, FIL_, 0xCC, 0xA3,
+               FIL_, 0xE1, 0xBB, 0x8A, FIL_, 0xCC, 0x91, FIL_,
+               0xC8, 0x8A, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x8F,
+               FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x8E, FIL_, 0xCC,
+               0x81, FIL_, 0xC3, 0x8D, FIL_, 0xCC, 0x83, FIL_,
+               0xC4, 0xA8, FIL_, 0xCC, 0x87, FIL_, 0xC4, 0xB0,
+               FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x88, FIL_, 0xCC,
+               0xA8, FIL_, 0xC4, 0xAE, FIL_, 0xCC, 0x86, FIL_,
+               0xC4, 0xAC, FIL_, 0xCC, 0x84, FIL_, 0xC4, 0xAA,
+               FIL_, 0x01, 0xCC, 0x82, FIL_, 0xC4, 0xB4, FIL_,
+               0x05, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xB0, FIL_,
+               0xCC, 0x8C, FIL_, 0xC7, 0xA8, FIL_, 0xCC, 0xB1,
+               FIL_, 0xE1, 0xB8, 0xB4, FIL_, 0xCC, 0xA7, FIL_,
+               0xC4, 0xB6, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
+               0xB2, FIL_, 0x06, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
+               0xB6, FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0xBD, FIL_,
+               0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0xBC, FIL_, 0xCC,
+               0xB1, FIL_, 0xE1, 0xB8, 0xBA, FIL_, 0xCC, 0xA7,
+               FIL_, 0xC4, 0xBB, FIL_, 0xCC, 0x81, FIL_, 0xC4,
+               0xB9, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xB8,
+               0xBE, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x80,
+               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x82, FIL_,
+               0x09, 0xCC, 0x83, FIL_, 0xC3, 0x91, FIL_, 0xCC,
+               0x81, FIL_, 0xC5, 0x83, FIL_, 0xCC, 0xA7, FIL_,
+               0xC5, 0x85, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0x87,
+               FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x84, FIL_,
+               0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x86, FIL_, 0xCC,
+               0xB1, FIL_, 0xE1, 0xB9, 0x88, FIL_, 0xCC, 0xAD,
+               FIL_, 0xE1, 0xB9, 0x8A, FIL_, 0xCC, 0x80, FIL_,
+               0xC7, 0xB8, FIL_, 0x10, 0xCC, 0x89, FIL_, 0xE1,
+               0xBB, 0x8E, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0x8C,
+               FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x94, FIL_, 0xCC,
+               0x86, FIL_, 0xC5, 0x8E, FIL_, 0xCC, 0x83, FIL_,
+               0xC3, 0x95, FIL_, 0xCC, 0x8B, FIL_, 0xC5, 0x90,
+               FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x96, FIL_, 0xCC,
+               0x9B, FIL_, 0xC6, 0xA0, FIL_, 0xCC, 0x91, FIL_,
+               0xC8, 0x8E, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x91,
+               FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x8C, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xBB, 0x8C, FIL_, 0xCC, 0x80,
+               FIL_, 0xC3, 0x92, FIL_, 0xCC, 0xA8, FIL_, 0xC7,
+               0xAA, FIL_, 0xCC, 0x87, FIL_, 0xC8, 0xAE, FIL_,
+               0xCC, 0x81, FIL_, 0xC3, 0x93, FIL_, 0x02, 0xCC,
+               0x87, FIL_, 0xE1, 0xB9, 0x96, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xB9, 0x94, FIL_, 0x08, 0xCC, 0xA7,
+               FIL_, 0xC5, 0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC5,
+               0x98, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x92, FIL_,
+               0xCC, 0x8F, FIL_, 0xC8, 0x90, FIL_, 0xCC, 0x81,
+               FIL_, 0xC5, 0x94, FIL_, 0xCC, 0x87, FIL_, 0xE1,
+               0xB9, 0x98, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB9,
+               0x9E, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x9A,
+               FIL_, 0x07, 0xCC, 0xA6, FIL_, 0xC8, 0x98, FIL_,
+               0xCC, 0x81, FIL_, 0xC5, 0x9A, FIL_, 0xCC, 0x82,
+               FIL_, 0xC5, 0x9C, FIL_, 0xCC, 0xA7, FIL_, 0xC5,
+               0x9E, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0xA0, FIL_,
+               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA0, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xB9, 0xA2, FIL_, 0x07, 0xCC,
+               0xA6, FIL_, 0xC8, 0x9A, FIL_, 0xCC, 0x87, FIL_,
+               0xE1, 0xB9, 0xAA, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xB9, 0xAC, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB9,
+               0xAE, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB0,
+               FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0xA2, FIL_, 0xCC,
+               0x8C, FIL_, 0xC5, 0xA4, FIL_, 0x13, 0xCC, 0x8A,
+               FIL_, 0xC5, 0xAE, FIL_, 0xCC, 0x88, FIL_, 0xC3,
+               0x9C, FIL_, 0xCC, 0x8B, FIL_, 0xC5, 0xB0, FIL_,
+               0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB6, FIL_, 0xCC,
+               0xA8, FIL_, 0xC5, 0xB2, FIL_, 0xCC, 0x8C, FIL_,
+               0xC7, 0x93, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x99,
+               FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x94, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xBB, 0xA4, FIL_, 0xCC, 0xA4,
+               FIL_, 0xE1, 0xB9, 0xB2, FIL_, 0xCC, 0x81, FIL_,
+               0xC3, 0x9A, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x9B,
+               FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB9, 0xB4, FIL_,
+               0xCC, 0x83, FIL_, 0xC5, 0xA8, FIL_, 0xCC, 0x89,
+               FIL_, 0xE1, 0xBB, 0xA6, FIL_, 0xCC, 0x84, FIL_,
+               0xC5, 0xAA, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x96,
+               FIL_, 0xCC, 0x86, FIL_, 0xC5, 0xAC, FIL_, 0xCC,
+               0x9B, FIL_, 0xC6, 0xAF, FIL_, 0x02, 0xCC, 0xA3,
+               FIL_, 0xE1, 0xB9, 0xBE, FIL_, 0xCC, 0x83, FIL_,
+               0xE1, 0xB9, 0xBC, FIL_, 0x06, 0xCC, 0x88, FIL_,
+               0xE1, 0xBA, 0x84, FIL_, 0xCC, 0x81, FIL_, 0xE1,
+               0xBA, 0x82, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA,
+               0x80, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x88,
+               FIL_, 0xCC, 0x82, FIL_, 0xC5, 0xB4, FIL_, 0xCC,
+               0x87, FIL_, 0xE1, 0xBA, 0x86, FIL_, 0x02, 0xCC,
+               0x88, FIL_, 0xE1, 0xBA, 0x8C, FIL_, 0xCC, 0x87,
+               FIL_, 0xE1, 0xBA, 0x8A, FIL_, 0x09, 0xCC, 0x89,
+               FIL_, 0xE1, 0xBB, 0xB6, FIL_, 0xCC, 0xA3, FIL_,
+               0xE1, 0xBB, 0xB4, FIL_, 0xCC, 0x80, FIL_, 0xE1,
+               0xBB, 0xB2, FIL_, 0xCC, 0x88, FIL_, 0xC5, 0xB8,
+               FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x9D, FIL_, 0xCC,
+               0x83, FIL_, 0xE1, 0xBB, 0xB8, FIL_, 0xCC, 0x87,
+               FIL_, 0xE1, 0xBA, 0x8E, FIL_, 0xCC, 0x84, FIL_,
+               0xC8, 0xB2, FIL_, 0xCC, 0x82, FIL_, 0xC5, 0xB6,
+               FIL_, 0x06, 0xCC, 0x82, FIL_, 0xE1, 0xBA, 0x90,
+               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x92, FIL_,
+               0xCC, 0xB1, FIL_, 0xE1, 0xBA, 0x94, FIL_, 0xCC,
+               0x8C, FIL_, 0xC5, 0xBD, FIL_, 0xCC, 0x87, FIL_,
+               0xC5, 0xBB, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0xB9,
+               FIL_, 0x10, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0xA1,
+               FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x85, FIL_, 0xCC,
+               0x81, FIL_, 0xC3, 0xA1, FIL_, 0xCC, 0x82, FIL_,
+               0xC3, 0xA2, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA,
+               0xA3, FIL_, 0xCC, 0x83, FIL_, 0xC3, 0xA3, FIL_,
+               0xCC, 0x8C, FIL_, 0xC7, 0x8E, FIL_, 0xCC, 0x8A,
+               FIL_, 0xC3, 0xA5, FIL_, 0xCC, 0x88, FIL_, 0xC3,
+               0xA4, FIL_, 0xCC, 0x87, FIL_, 0xC8, 0xA7, FIL_,
+               0xCC, 0x91, FIL_, 0xC8, 0x83, FIL_, 0xCC, 0xA5,
+               FIL_, 0xE1, 0xB8, 0x81, FIL_, 0xCC, 0x84, FIL_,
+               0xC4, 0x81, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x81,
+               FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x83, FIL_, 0xCC,
+               0x80, FIL_, 0xC3, 0xA0, FIL_, 0x03, 0xCC, 0xA3,
+               FIL_, 0xE1, 0xB8, 0x85, FIL_, 0xCC, 0x87, FIL_,
+               0xE1, 0xB8, 0x83, FIL_, 0xCC, 0xB1, FIL_, 0xE1,
+               0xB8, 0x87, FIL_, 0x05, 0xCC, 0x87, FIL_, 0xC4,
+               0x8B, FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x8D, FIL_,
+               0xCC, 0x82, FIL_, 0xC4, 0x89, FIL_, 0xCC, 0x81,
+               FIL_, 0xC4, 0x87, FIL_, 0xCC, 0xA7, FIL_, 0xC3,
+               0xA7, FIL_, 0x06, 0xCC, 0x87, FIL_, 0xE1, 0xB8,
+               0x8B, FIL_, 0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0x91,
+               FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0x8F, FIL_,
+               0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0x8D, FIL_, 0xCC,
+               0x8C, FIL_, 0xC4, 0x8F, FIL_, 0xCC, 0xAD, FIL_,
+               0xE1, 0xB8, 0x93, FIL_, 0x11, 0xCC, 0x80, FIL_,
+               0xC3, 0xA8, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0xA9,
+               FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xAA, FIL_, 0xCC,
+               0x88, FIL_, 0xC3, 0xAB, FIL_, 0xCC, 0x84, FIL_,
+               0xC4, 0x93, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x95,
+               FIL_, 0xCC, 0x87, FIL_, 0xC4, 0x97, FIL_, 0xCC,
+               0xA8, FIL_, 0xC4, 0x99, FIL_, 0xCC, 0x8C, FIL_,
+               0xC4, 0x9B, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x85,
+               FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x87, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xBA, 0xB9, FIL_, 0xCC, 0xA7,
+               FIL_, 0xC8, 0xA9, FIL_, 0xCC, 0x83, FIL_, 0xE1,
+               0xBA, 0xBD, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA,
+               0xBB, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x99,
+               FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB8, 0x9B, FIL_,
+               0x01, 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9F, FIL_,
+               0x07, 0xCC, 0x86, FIL_, 0xC4, 0x9F, FIL_, 0xCC,
+               0x87, FIL_, 0xC4, 0xA1, FIL_, 0xCC, 0x82, FIL_,
+               0xC4, 0x9D, FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xB8,
+               0xA1, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0xA7, FIL_,
+               0xCC, 0xA7, FIL_, 0xC4, 0xA3, FIL_, 0xCC, 0x81,
+               FIL_, 0xC7, 0xB5, FIL_, 0x08, 0xCC, 0xA7, FIL_,
+               0xE1, 0xB8, 0xA9, FIL_, 0xCC, 0xB1, FIL_, 0xE1,
+               0xBA, 0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC8, 0x9F,
+               FIL_, 0xCC, 0xAE, FIL_, 0xE1, 0xB8, 0xAB, FIL_,
+               0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA7, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xB8, 0xA5, FIL_, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB8, 0xA3, FIL_, 0xCC, 0x82, FIL_,
+               0xC4, 0xA5, FIL_, 0x0E, 0xCC, 0x88, FIL_, 0xC3,
+               0xAF, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x89,
+               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0x8B, FIL_,
+               0xCC, 0x82, FIL_, 0xC3, 0xAE, FIL_, 0xCC, 0x81,
+               FIL_, 0xC3, 0xAD, FIL_, 0xCC, 0x80, FIL_, 0xC3,
+               0xAC, FIL_, 0xCC, 0x83, FIL_, 0xC4, 0xA9, FIL_,
+               0xCC, 0x84, FIL_, 0xC4, 0xAB, FIL_, 0xCC, 0x86,
+               FIL_, 0xC4, 0xAD, FIL_, 0xCC, 0xA8, FIL_, 0xC4,
+               0xAF, FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB8, 0xAD,
+               FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x90, FIL_, 0xCC,
+               0x91, FIL_, 0xC8, 0x8B, FIL_, 0xCC, 0x8F, FIL_,
+               0xC8, 0x89, FIL_, 0x02, 0xCC, 0x8C, FIL_, 0xC7,
+               0xB0, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0xB5, FIL_,
+               0x05, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0xB5, FIL_,
+               0xCC, 0xA7, FIL_, 0xC4, 0xB7, FIL_, 0xCC, 0x8C,
+               FIL_, 0xC7, 0xA9, FIL_, 0xCC, 0x81, FIL_, 0xE1,
+               0xB8, 0xB1, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
+               0xB3, FIL_, 0x06, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
+               0xB7, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0xBD,
+               FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0xBB, FIL_,
+               0xCC, 0xA7, FIL_, 0xC4, 0xBC, FIL_, 0xCC, 0x81,
+               FIL_, 0xC4, 0xBA, FIL_, 0xCC, 0x8C, FIL_, 0xC4,
+               0xBE, FIL_, 0x03, 0xCC, 0x87, FIL_, 0xE1, 0xB9,
+               0x81, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x83,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xBF, FIL_,
+               0x09, 0xCC, 0x80, FIL_, 0xC7, 0xB9, FIL_, 0xCC,
+               0xAD, FIL_, 0xE1, 0xB9, 0x8B, FIL_, 0xCC, 0x83,
+               FIL_, 0xC3, 0xB1, FIL_, 0xCC, 0x81, FIL_, 0xC5,
+               0x84, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x87,
+               FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB9, 0x89, FIL_,
+               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x85, FIL_, 0xCC,
+               0xA7, FIL_, 0xC5, 0x86, FIL_, 0xCC, 0x8C, FIL_,
+               0xC5, 0x88, FIL_, 0x10, 0xCC, 0xA3, FIL_, 0xE1,
+               0xBB, 0x8D, FIL_, 0xCC, 0x87, FIL_, 0xC8, 0xAF,
+               FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xB2, FIL_, 0xCC,
+               0x91, FIL_, 0xC8, 0x8F, FIL_, 0xCC, 0x89, FIL_,
+               0xE1, 0xBB, 0x8F, FIL_, 0xCC, 0x88, FIL_, 0xC3,
+               0xB6, FIL_, 0xCC, 0x83, FIL_, 0xC3, 0xB5, FIL_,
+               0xCC, 0x81, FIL_, 0xC3, 0xB3, FIL_, 0xCC, 0x8C,
+               FIL_, 0xC7, 0x92, FIL_, 0xCC, 0xA8, FIL_, 0xC7,
+               0xAB, FIL_, 0xCC, 0x9B, FIL_, 0xC6, 0xA1, FIL_,
+               0xCC, 0x84, FIL_, 0xC5, 0x8D, FIL_, 0xCC, 0x86,
+               FIL_, 0xC5, 0x8F, FIL_, 0xCC, 0x8B, FIL_, 0xC5,
+               0x91, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xB4, FIL_,
+               0xCC, 0x8F, FIL_, 0xC8, 0x8D, FIL_, 0x02, 0xCC,
+               0x87, FIL_, 0xE1, 0xB9, 0x97, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xB9, 0x95, FIL_, 0x08, 0xCC, 0x8C,
+               FIL_, 0xC5, 0x99, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xB9, 0x9B, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0x95,
+               FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x97, FIL_, 0xCC,
+               0xB1, FIL_, 0xE1, 0xB9, 0x9F, FIL_, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0x99, FIL_, 0xCC, 0x91, FIL_,
+               0xC8, 0x93, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x91,
+               FIL_, 0x07, 0xCC, 0xA7, FIL_, 0xC5, 0x9F, FIL_,
+               0xCC, 0x82, FIL_, 0xC5, 0x9D, FIL_, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0xA1, FIL_, 0xCC, 0xA6, FIL_,
+               0xC8, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0x9B,
+               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0xA3, FIL_,
+               0xCC, 0x8C, FIL_, 0xC5, 0xA1, FIL_, 0x08, 0xCC,
+               0xA6, FIL_, 0xC8, 0x9B, FIL_, 0xCC, 0xAD, FIL_,
+               0xE1, 0xB9, 0xB1, FIL_, 0xCC, 0xB1, FIL_, 0xE1,
+               0xB9, 0xAF, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9,
+               0xAD, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xAB,
+               FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0xA5, FIL_, 0xCC,
+               0xA7, FIL_, 0xC5, 0xA3, FIL_, 0xCC, 0x88, FIL_,
+               0xE1, 0xBA, 0x97, FIL_, 0x13, 0xCC, 0x8A, FIL_,
+               0xC5, 0xAF, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x95,
+               FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x94, FIL_, 0xCC,
+               0x80, FIL_, 0xC3, 0xB9, FIL_, 0xCC, 0x9B, FIL_,
+               0xC6, 0xB0, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xBB,
+               FIL_, 0xCC, 0x81, FIL_, 0xC3, 0xBA, FIL_, 0xCC,
+               0x88, FIL_, 0xC3, 0xBC, FIL_, 0xCC, 0x83, FIL_,
+               0xC5, 0xA9, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB,
+               0xA7, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0xAB, FIL_,
+               0xCC, 0x86, FIL_, 0xC5, 0xAD, FIL_, 0xCC, 0xAD,
+               FIL_, 0xE1, 0xB9, 0xB7, FIL_, 0xCC, 0x8B, FIL_,
+               0xC5, 0xB1, FIL_, 0xCC, 0xA8, FIL_, 0xC5, 0xB3,
+               FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x97, FIL_, 0xCC,
+               0xA4, FIL_, 0xE1, 0xB9, 0xB3, FIL_, 0xCC, 0xA3,
+               FIL_, 0xE1, 0xBB, 0xA5, FIL_, 0xCC, 0xB0, FIL_,
+               0xE1, 0xB9, 0xB5, FIL_, 0x02, 0xCC, 0x83, FIL_,
+               0xE1, 0xB9, 0xBD, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
+               0xB9, 0xBF, FIL_, 0x07, 0xCC, 0x8A, FIL_, 0xE1,
+               0xBA, 0x98, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xBA,
+               0x87, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0x83,
+               FIL_, 0xCC, 0x82, FIL_, 0xC5, 0xB5, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBA, 0x81, FIL_, 0xCC, 0xA3,
+               FIL_, 0xE1, 0xBA, 0x89, FIL_, 0xCC, 0x88, FIL_,
+               0xE1, 0xBA, 0x85, FIL_, 0x02, 0xCC, 0x87, FIL_,
+               0xE1, 0xBA, 0x8B, FIL_, 0xCC, 0x88, FIL_, 0xE1,
+               0xBA, 0x8D, FIL_, 0x0A, 0xCC, 0x87, FIL_, 0xE1,
+               0xBA, 0x8F, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB,
+               0xB5, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0xB7,
+               FIL_, 0xCC, 0x8A, FIL_, 0xE1, 0xBA, 0x99, FIL_,
+               0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xB3, FIL_, 0xCC,
+               0x83, FIL_, 0xE1, 0xBB, 0xB9, FIL_, 0xCC, 0x88,
+               FIL_, 0xC3, 0xBF, FIL_, 0xCC, 0x81, FIL_, 0xC3,
+               0xBD, FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xB3, FIL_,
+               0xCC, 0x82, FIL_, 0xC5, 0xB7, FIL_, 0x06, 0xCC,
+               0xB1, FIL_, 0xE1, 0xBA, 0x95, FIL_, 0xCC, 0xA3,
+               FIL_, 0xE1, 0xBA, 0x93, FIL_, 0xCC, 0x82, FIL_,
+               0xE1, 0xBA, 0x91, FIL_, 0xCC, 0x81, FIL_, 0xC5,
+               0xBA, FIL_, 0xCC, 0x87, FIL_, 0xC5, 0xBC, FIL_,
+               0xCC, 0x8C, FIL_, 0xC5, 0xBE, FIL_, 0x03, 0xCC,
+               0x80, FIL_, 0xE1, 0xBF, 0xAD, FIL_, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBF, 0x81, FIL_, 0xCC, 0x81, FIL_,
+               0xCE, 0x85, FIL_, 0x04, 0xCC, 0x83, FIL_, 0xE1,
+               0xBA, 0xAA, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA,
+               0xA4, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA8,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xA6, FIL_,
+               0x01, 0xCC, 0x84, FIL_, 0xC7, 0x9E, FIL_, 0x01,
+               0xCC, 0x81, FIL_, 0xC7, 0xBA, FIL_, 0x02, 0xCC,
+               0x84, FIL_, 0xC7, 0xA2, FIL_, 0xCC, 0x81, FIL_,
+               0xC7, 0xBC, FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1,
+               0xB8, 0x88, FIL_, 0x04, 0xCC, 0x83, FIL_, 0xE1,
+               0xBB, 0x84, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB,
+               0x80, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x82,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xBE, FIL_,
+               0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xAE, FIL_,
+               0x04, 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x90, FIL_,
+               0xCC, 0x80, FIL_, 0xE1, 0xBB, 0x92, FIL_, 0xCC,
+               0x89, FIL_, 0xE1, 0xBB, 0x94, FIL_, 0xCC, 0x83,
+               FIL_, 0xE1, 0xBB, 0x96, FIL_, 0x03, 0xCC, 0x84,
+               FIL_, 0xC8, 0xAC, FIL_, 0xCC, 0x88, FIL_, 0xE1,
+               0xB9, 0x8E, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xB9,
+               0x8C, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAA,
+               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xC7, 0xBE, FIL_,
+               0x04, 0xCC, 0x80, FIL_, 0xC7, 0x9B, FIL_, 0xCC,
+               0x84, FIL_, 0xC7, 0x95, FIL_, 0xCC, 0x8C, FIL_,
+               0xC7, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC7, 0x97,
+               FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xA5,
+               FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBA, 0xAB, FIL_,
+               0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA9, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBA, 0xA7, FIL_, 0x01, 0xCC,
+               0x84, FIL_, 0xC7, 0x9F, FIL_, 0x01, 0xCC, 0x81,
+               FIL_, 0xC7, 0xBB, FIL_, 0x02, 0xCC, 0x81, FIL_,
+               0xC7, 0xBD, FIL_, 0xCC, 0x84, FIL_, 0xC7, 0xA3,
+               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x89,
+               FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x83,
+               FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0x85, FIL_,
+               0xCC, 0x80, FIL_, 0xE1, 0xBB, 0x81, FIL_, 0xCC,
+               0x81, FIL_, 0xE1, 0xBA, 0xBF, FIL_, 0x01, 0xCC,
+               0x81, FIL_, 0xE1, 0xB8, 0xAF, FIL_, 0x04, 0xCC,
+               0x80, FIL_, 0xE1, 0xBB, 0x93, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xBB, 0x91, FIL_, 0xCC, 0x83, FIL_,
+               0xE1, 0xBB, 0x97, FIL_, 0xCC, 0x89, FIL_, 0xE1,
+               0xBB, 0x95, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1,
+               0xB9, 0x8D, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB9,
+               0x8F, FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xAD, FIL_,
+               0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAB, FIL_, 0x01,
+               0xCC, 0x81, FIL_, 0xC7, 0xBF, FIL_, 0x04, 0xCC,
+               0x8C, FIL_, 0xC7, 0x9A, FIL_, 0xCC, 0x84, FIL_,
+               0xC7, 0x96, FIL_, 0xCC, 0x80, FIL_, 0xC7, 0x9C,
+               FIL_, 0xCC, 0x81, FIL_, 0xC7, 0x98, FIL_, 0x04,
+               0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xAE, FIL_, 0xCC,
+               0x83, FIL_, 0xE1, 0xBA, 0xB4, FIL_, 0xCC, 0x89,
+               FIL_, 0xE1, 0xBA, 0xB2, FIL_, 0xCC, 0x80, FIL_,
+               0xE1, 0xBA, 0xB0, FIL_, 0x04, 0xCC, 0x83, FIL_,
+               0xE1, 0xBA, 0xB5, FIL_, 0xCC, 0x80, FIL_, 0xE1,
+               0xBA, 0xB1, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA,
+               0xAF, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xB3,
+               FIL_, 0x02, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x96,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x94, FIL_,
+               0x02, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x95, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x97, FIL_, 0x02,
+               0xCC, 0x80, FIL_, 0xE1, 0xB9, 0x90, FIL_, 0xCC,
+               0x81, FIL_, 0xE1, 0xB9, 0x92, FIL_, 0x02, 0xCC,
+               0x81, FIL_, 0xE1, 0xB9, 0x93, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xB9, 0x91, FIL_, 0x01, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0xA4, FIL_, 0x01, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0xA5, FIL_, 0x01, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0xA6, FIL_, 0x01, 0xCC, 0x87,
+               FIL_, 0xE1, 0xB9, 0xA7, FIL_, 0x01, 0xCC, 0x81,
+               FIL_, 0xE1, 0xB9, 0xB8, FIL_, 0x01, 0xCC, 0x81,
+               FIL_, 0xE1, 0xB9, 0xB9, FIL_, 0x01, 0xCC, 0x88,
+               FIL_, 0xE1, 0xB9, 0xBA, FIL_, 0x01, 0xCC, 0x88,
+               FIL_, 0xE1, 0xB9, 0xBB, FIL_, 0x01, 0xCC, 0x87,
+               FIL_, 0xE1, 0xBA, 0x9B, FIL_, 0x05, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBB, 0x9C, FIL_, 0xCC, 0x89, FIL_,
+               0xE1, 0xBB, 0x9E, FIL_, 0xCC, 0x83, FIL_, 0xE1,
+               0xBB, 0xA0, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB,
+               0x9A, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xA2,
+               FIL_, 0x05, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xA1,
+               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xA3, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x9B, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBB, 0x9D, FIL_, 0xCC, 0x89,
+               FIL_, 0xE1, 0xBB, 0x9F, FIL_, 0x05, 0xCC, 0x81,
+               FIL_, 0xE1, 0xBB, 0xA8, FIL_, 0xCC, 0x80, FIL_,
+               0xE1, 0xBB, 0xAA, FIL_, 0xCC, 0x89, FIL_, 0xE1,
+               0xBB, 0xAC, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB,
+               0xAE, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xB0,
+               FIL_, 0x05, 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xAB,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0xA9, FIL_,
+               0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xAF, FIL_, 0xCC,
+               0xA3, FIL_, 0xE1, 0xBB, 0xB1, FIL_, 0xCC, 0x89,
+               FIL_, 0xE1, 0xBB, 0xAD, FIL_, 0x01, 0xCC, 0x8C,
+               FIL_, 0xC7, 0xAE, FIL_, 0x01, 0xCC, 0x84, FIL_,
+               0xC7, 0xAC, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7,
+               0xAD, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA0,
+               FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA1, FIL_,
+               0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9C, FIL_,
+               0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9D, FIL_,
+               0x01, 0xCC, 0x84, FIL_, 0xC8, 0xB0, FIL_, 0x01,
+               0xCC, 0x84, FIL_, 0xC8, 0xB1, FIL_, 0x01, 0xCC,
+               0x8C, FIL_, 0xC7, 0xAF, FIL_, 0x07, 0xCC, 0x93,
+               FIL_, 0xE1, 0xBC, 0x88, FIL_, 0xCC, 0x81, FIL_,
+               0xCE, 0x86, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBE,
+               0xB8, FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xBE, 0xB9,
+               FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBC, 0x89, FIL_,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xBC, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBE, 0xBA, FIL_, 0x04, 0xCC,
+               0x94, FIL_, 0xE1, 0xBC, 0x99, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBF, 0x88, FIL_, 0xCC, 0x81, FIL_,
+               0xCE, 0x88, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC,
+               0x98, FIL_, 0x05, 0xCD, 0x85, FIL_, 0xE1, 0xBF,
+               0x8C, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x89, FIL_,
+               0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x8A, FIL_, 0xCC,
+               0x93, FIL_, 0xE1, 0xBC, 0xA8, FIL_, 0xCC, 0x94,
+               FIL_, 0xE1, 0xBC, 0xA9, FIL_, 0x07, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBF, 0x9A, FIL_, 0xCC, 0x84, FIL_,
+               0xE1, 0xBF, 0x99, FIL_, 0xCC, 0x93, FIL_, 0xE1,
+               0xBC, 0xB8, FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBC,
+               0xB9, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF, 0x98,
+               FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x8A, FIL_, 0xCC,
+               0x88, FIL_, 0xCE, 0xAA, FIL_, 0x04, 0xCC, 0x81,
+               FIL_, 0xCE, 0x8C, FIL_, 0xCC, 0x94, FIL_, 0xE1,
+               0xBD, 0x89, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD,
+               0x88, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0xB8,
+               FIL_, 0x01, 0xCC, 0x94, FIL_, 0xE1, 0xBF, 0xAC,
+               FIL_, 0x06, 0xCC, 0x94, FIL_, 0xE1, 0xBD, 0x99,
+               FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF, 0xA8, FIL_,
+               0xCC, 0x88, FIL_, 0xCE, 0xAB, FIL_, 0xCC, 0x84,
+               FIL_, 0xE1, 0xBF, 0xA9, FIL_, 0xCC, 0x81, FIL_,
+               0xCE, 0x8E, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF,
+               0xAA, FIL_, 0x05, 0xCC, 0x93, FIL_, 0xE1, 0xBD,
+               0xA8, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xBC,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0xBA, FIL_,
+               0xCC, 0x94, FIL_, 0xE1, 0xBD, 0xA9, FIL_, 0xCC,
+               0x81, FIL_, 0xCE, 0x8F, FIL_, 0x01, 0xCD, 0x85,
+               FIL_, 0xE1, 0xBE, 0xB4, FIL_, 0x01, 0xCD, 0x85,
+               FIL_, 0xE1, 0xBF, 0x84, FIL_, 0x08, 0xCD, 0x85,
+               FIL_, 0xE1, 0xBE, 0xB3, FIL_, 0xCC, 0x84, FIL_,
+               0xE1, 0xBE, 0xB1, FIL_, 0xCC, 0x86, FIL_, 0xE1,
+               0xBE, 0xB0, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD,
+               0xB0, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAC, FIL_,
+               0xCC, 0x94, FIL_, 0xE1, 0xBC, 0x81, FIL_, 0xCC,
+               0x93, FIL_, 0xE1, 0xBC, 0x80, FIL_, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBE, 0xB6, FIL_, 0x04, 0xCC, 0x93,
+               FIL_, 0xE1, 0xBC, 0x90, FIL_, 0xCC, 0x80, FIL_,
+               0xE1, 0xBD, 0xB2, FIL_, 0xCC, 0x94, FIL_, 0xE1,
+               0xBC, 0x91, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAD,
+               FIL_, 0x06, 0xCC, 0x94, FIL_, 0xE1, 0xBC, 0xA1,
+               FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAE, FIL_, 0xCD,
+               0x85, FIL_, 0xE1, 0xBF, 0x83, FIL_, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBF, 0x86, FIL_, 0xCC, 0x93, FIL_,
+               0xE1, 0xBC, 0xA0, FIL_, 0xCC, 0x80, FIL_, 0xE1,
+               0xBD, 0xB4, FIL_, 0x08, 0xCC, 0x88, FIL_, 0xCF,
+               0x8A, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAF, FIL_,
+               0xCC, 0x93, FIL_, 0xE1, 0xBC, 0xB0, FIL_, 0xCC,
+               0x94, FIL_, 0xE1, 0xBC, 0xB1, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBD, 0xB6, FIL_, 0xCC, 0x86, FIL_,
+               0xE1, 0xBF, 0x90, FIL_, 0xCC, 0x84, FIL_, 0xE1,
+               0xBF, 0x91, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF,
+               0x96, FIL_, 0x04, 0xCC, 0x93, FIL_, 0xE1, 0xBD,
+               0x80, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xB8,
+               FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBD, 0x81, FIL_,
+               0xCC, 0x81, FIL_, 0xCF, 0x8C, FIL_, 0x02, 0xCC,
+               0x93, FIL_, 0xE1, 0xBF, 0xA4, FIL_, 0xCC, 0x94,
+               FIL_, 0xE1, 0xBF, 0xA5, FIL_, 0x08, 0xCC, 0x81,
+               FIL_, 0xCF, 0x8D, FIL_, 0xCC, 0x94, FIL_, 0xE1,
+               0xBD, 0x91, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF,
+               0xA6, FIL_, 0xCC, 0x88, FIL_, 0xCF, 0x8B, FIL_,
+               0xCC, 0x84, FIL_, 0xE1, 0xBF, 0xA1, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBD, 0xBA, FIL_, 0xCC, 0x93,
+               FIL_, 0xE1, 0xBD, 0x90, FIL_, 0xCC, 0x86, FIL_,
+               0xE1, 0xBF, 0xA0, FIL_, 0x06, 0xCC, 0x80, FIL_,
+               0xE1, 0xBD, 0xBC, FIL_, 0xCC, 0x94, FIL_, 0xE1,
+               0xBD, 0xA1, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD,
+               0xA0, FIL_, 0xCC, 0x81, FIL_, 0xCF, 0x8E, FIL_,
+               0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB3, FIL_, 0xCD,
+               0x82, FIL_, 0xE1, 0xBF, 0xB6, FIL_, 0x03, 0xCC,
+               0x80, FIL_, 0xE1, 0xBF, 0x92, FIL_, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBF, 0x97, FIL_, 0xCC, 0x81, FIL_,
+               0xCE, 0x90, FIL_, 0x03, 0xCD, 0x82, FIL_, 0xE1,
+               0xBF, 0xA7, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF,
+               0xA2, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xB0, FIL_,
+               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB4, FIL_,
+               0x02, 0xCC, 0x88, FIL_, 0xCF, 0x94, FIL_, 0xCC,
+               0x81, FIL_, 0xCF, 0x93, FIL_, 0x01, 0xCC, 0x88,
+               FIL_, 0xD0, 0x87, FIL_, 0x02, 0xCC, 0x88, FIL_,
+               0xD3, 0x92, FIL_, 0xCC, 0x86, FIL_, 0xD3, 0x90,
+               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD0, 0x83, FIL_,
+               0x03, 0xCC, 0x88, FIL_, 0xD0, 0x81, FIL_, 0xCC,
+               0x80, FIL_, 0xD0, 0x80, FIL_, 0xCC, 0x86, FIL_,
+               0xD3, 0x96, FIL_, 0x02, 0xCC, 0x86, FIL_, 0xD3,
+               0x81, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x9C, FIL_,
+               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9E, FIL_, 0x04,
+               0xCC, 0x84, FIL_, 0xD3, 0xA2, FIL_, 0xCC, 0x88,
+               FIL_, 0xD3, 0xA4, FIL_, 0xCC, 0x86, FIL_, 0xD0,
+               0x99, FIL_, 0xCC, 0x80, FIL_, 0xD0, 0x8D, FIL_,
+               0x01, 0xCC, 0x81, FIL_, 0xD0, 0x8C, FIL_, 0x01,
+               0xCC, 0x88, FIL_, 0xD3, 0xA6, FIL_, 0x04, 0xCC,
+               0x8B, FIL_, 0xD3, 0xB2, FIL_, 0xCC, 0x88, FIL_,
+               0xD3, 0xB0, FIL_, 0xCC, 0x86, FIL_, 0xD0, 0x8E,
+               FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xAE, FIL_, 0x01,
+               0xCC, 0x88, FIL_, 0xD3, 0xB4, FIL_, 0x01, 0xCC,
+               0x88, FIL_, 0xD3, 0xB8, FIL_, 0x01, 0xCC, 0x88,
+               FIL_, 0xD3, 0xAC, FIL_, 0x02, 0xCC, 0x86, FIL_,
+               0xD3, 0x91, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x93,
+               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD1, 0x93, FIL_,
+               0x03, 0xCC, 0x80, FIL_, 0xD1, 0x90, FIL_, 0xCC,
+               0x86, FIL_, 0xD3, 0x97, FIL_, 0xCC, 0x88, FIL_,
+               0xD1, 0x91, FIL_, 0x02, 0xCC, 0x86, FIL_, 0xD3,
+               0x82, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x9D, FIL_,
+               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9F, FIL_, 0x04,
+               0xCC, 0x86, FIL_, 0xD0, 0xB9, FIL_, 0xCC, 0x88,
+               FIL_, 0xD3, 0xA5, FIL_, 0xCC, 0x84, FIL_, 0xD3,
+               0xA3, FIL_, 0xCC, 0x80, FIL_, 0xD1, 0x9D, FIL_,
+               0x01, 0xCC, 0x81, FIL_, 0xD1, 0x9C, FIL_, 0x01,
+               0xCC, 0x88, FIL_, 0xD3, 0xA7, FIL_, 0x04, 0xCC,
+               0x8B, FIL_, 0xD3, 0xB3, FIL_, 0xCC, 0x84, FIL_,
+               0xD3, 0xAF, FIL_, 0xCC, 0x86, FIL_, 0xD1, 0x9E,
+               FIL_, 0xCC, 0x88, FIL_, 0xD3, 0xB1, FIL_, 0x01,
+               0xCC, 0x88, FIL_, 0xD3, 0xB5, FIL_, 0x01, 0xCC,
+               0x88, FIL_, 0xD3, 0xB9, FIL_, 0x01, 0xCC, 0x88,
+               FIL_, 0xD3, 0xAD, FIL_, 0x01, 0xCC, 0x88, FIL_,
+               0xD1, 0x97, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1,
+               0xB6, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1, 0xB7,
+               FIL_, 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9A, FIL_,
+               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9B, FIL_, 0x01,
+               0xCC, 0x88, FIL_, 0xD3, 0xAA, FIL_, 0x01, 0xCC,
+               0x88, FIL_, 0xD3, 0xAB, FIL_, 0x03, 0xD9, 0x94,
+               FIL_, 0xD8, 0xA3, FIL_, 0xD9, 0x95, FIL_, 0xD8,
+               0xA5, FIL_, 0xD9, 0x93, FIL_, 0xD8, 0xA2, FIL_,
+               0x01, 0xD9, 0x94, FIL_, 0xD8, 0xA4, FIL_, 0x01,
+               0xD9, 0x94, FIL_, 0xD8, 0xA6, FIL_, 0x01, 0xD9,
+               0x94, FIL_, 0xDB, 0x82, FIL_, 0x01, 0xD9, 0x94,
+               FIL_, 0xDB, 0x93, FIL_, 0x01, 0xD9, 0x94, FIL_,
+               0xDB, 0x80, FIL_, 0x01, 0xE0, 0xA4, 0xBC, FIL_,
+               0xE0, 0xA4, 0xA9, FIL_, 0x01, 0xE0, 0xA4, 0xBC,
+               FIL_, 0xE0, 0xA4, 0xB1, FIL_, 0x01, 0xE0, 0xA4,
+               0xBC, FIL_, 0xE0, 0xA4, 0xB4, FIL_, 0x02, 0xE0,
+               0xA6, 0xBE, FIL_, 0xE0, 0xA7, 0x8B, FIL_, 0xE0,
+               0xA7, 0x97, FIL_, 0xE0, 0xA7, 0x8C, FIL_, 0x03,
+               0xE0, 0xAD, 0x96, FIL_, 0xE0, 0xAD, 0x88, FIL_,
+               0xE0, 0xAC, 0xBE, FIL_, 0xE0, 0xAD, 0x8B, FIL_,
+               0xE0, 0xAD, 0x97, FIL_, 0xE0, 0xAD, 0x8C, FIL_,
+               0x01, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAE, 0x94,
+               FIL_, 0x02, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAF,
+               0x8C, FIL_, 0xE0, 0xAE, 0xBE, FIL_, 0xE0, 0xAF,
+               0x8A, FIL_, 0x01, 0xE0, 0xAE, 0xBE, FIL_, 0xE0,
+               0xAF, 0x8B, FIL_, 0x01, 0xE0, 0xB1, 0x96, FIL_,
+               0xE0, 0xB1, 0x88, FIL_, 0x01, 0xE0, 0xB3, 0x95,
+               FIL_, 0xE0, 0xB3, 0x80, FIL_, 0x03, 0xE0, 0xB3,
+               0x82, FIL_, 0xE0, 0xB3, 0x8A, FIL_, 0xE0, 0xB3,
+               0x96, FIL_, 0xE0, 0xB3, 0x88, FIL_, 0xE0, 0xB3,
+               0x95, FIL_, 0xE0, 0xB3, 0x87, FIL_, 0x01, 0xE0,
+               0xB3, 0x95, FIL_, 0xE0, 0xB3, 0x8B, FIL_, 0x02,
+               0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8A, FIL_,
+               0xE0, 0xB5, 0x97, FIL_, 0xE0, 0xB5, 0x8C, FIL_,
+               0x01, 0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8B,
+               FIL_, 0x03, 0xE0, 0xB7, 0x9F, FIL_, 0xE0, 0xB7,
+               0x9E, FIL_, 0xE0, 0xB7, 0x8A, FIL_, 0xE0, 0xB7,
+               0x9A, FIL_, 0xE0, 0xB7, 0x8F, FIL_, 0xE0, 0xB7,
+               0x9C, FIL_, 0x01, 0xE0, 0xB7, 0x8A, FIL_, 0xE0,
+               0xB7, 0x9D, FIL_, 0x01, 0xE1, 0x80, 0xAE, FIL_,
+               0xE1, 0x80, 0xA6, FIL_, 0x01, 0xE1, 0xAC, 0xB5,
+               FIL_, 0xE1, 0xAC, 0x86, FIL_, 0x01, 0xE1, 0xAC,
+               0xB5, FIL_, 0xE1, 0xAC, 0x88, FIL_, 0x01, 0xE1,
+               0xAC, 0xB5, FIL_, 0xE1, 0xAC, 0x8A, FIL_, 0x01,
+               0xE1, 0xAC, 0xB5, FIL_, 0xE1, 0xAC, 0x8C, FIL_,
+               0x01, 0xE1, 0xAC, 0xB5, FIL_, 0xE1, 0xAC, 0x8E,
+               FIL_, 0x01, 0xE1, 0xAC, 0xB5, FIL_, 0xE1, 0xAC,
+               0x92, FIL_, 0x01, 0xE1, 0xAC, 0xB5, FIL_, 0xE1,
+               0xAC, 0xBB, FIL_, 0x01, 0xE1, 0xAC, 0xB5, FIL_,
+               0xE1, 0xAC, 0xBD, FIL_, 0x01, 0xE1, 0xAC, 0xB5,
+               FIL_, 0xE1, 0xAD, 0x80, FIL_, 0x01, 0xE1, 0xAC,
+               0xB5, FIL_, 0xE1, 0xAD, 0x81, FIL_, 0x01, 0xE1,
+               0xAC, 0xB5, FIL_, 0xE1, 0xAD, 0x83, FIL_, 0x01,
+               0xCC, 0x84, FIL_, 0xE1, 0xB8, 0xB8, FIL_, 0x01,
+               0xCC, 0x84, FIL_, 0xE1, 0xB8, 0xB9, FIL_, 0x01,
+               0xCC, 0x84, FIL_, 0xE1, 0xB9, 0x9C, FIL_, 0x01,
+               0xCC, 0x84, FIL_, 0xE1, 0xB9, 0x9D, FIL_, 0x01,
+               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA8, FIL_, 0x01,
+               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA9, FIL_, 0x02,
+               0xCC, 0x86, FIL_, 0xE1, 0xBA, 0xB6, FIL_, 0xCC,
+               0x82, FIL_, 0xE1, 0xBA, 0xAC, FIL_, 0x02, 0xCC,
+               0x82, FIL_, 0xE1, 0xBA, 0xAD, FIL_, 0xCC, 0x86,
+               FIL_, 0xE1, 0xBA, 0xB7, FIL_, 0x01, 0xCC, 0x82,
+               FIL_, 0xE1, 0xBB, 0x86, FIL_, 0x01, 0xCC, 0x82,
+               FIL_, 0xE1, 0xBB, 0x87, FIL_, 0x01, 0xCC, 0x82,
+               FIL_, 0xE1, 0xBB, 0x98, FIL_, 0x01, 0xCC, 0x82,
+               FIL_, 0xE1, 0xBB, 0x99, FIL_, 0x04, 0xCD, 0x85,
+               FIL_, 0xE1, 0xBE, 0x80, FIL_, 0xCD, 0x82, FIL_,
+               0xE1, 0xBC, 0x86, FIL_, 0xCC, 0x80, FIL_, 0xE1,
+               0xBC, 0x82, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC,
+               0x84, FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBC,
+               0x87, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x85,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x83, FIL_,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x81, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x82, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x83, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x84, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x85, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x86, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x87, FIL_, 0x04,
+               0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x8C, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBC, 0x8A, FIL_, 0xCD, 0x85,
+               FIL_, 0xE1, 0xBE, 0x88, FIL_, 0xCD, 0x82, FIL_,
+               0xE1, 0xBC, 0x8E, FIL_, 0x04, 0xCC, 0x80, FIL_,
+               0xE1, 0xBC, 0x8B, FIL_, 0xCD, 0x82, FIL_, 0xE1,
+               0xBC, 0x8F, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC,
+               0x8D, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x89,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8A,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8B,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8C,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8D,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8E,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8F,
+               FIL_, 0x02, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x92,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x94, FIL_,
+               0x02, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x93, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x95, FIL_, 0x02,
+               0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x9A, FIL_, 0xCC,
+               0x81, FIL_, 0xE1, 0xBC, 0x9C, FIL_, 0x02, 0xCC,
+               0x80, FIL_, 0xE1, 0xBC, 0x9B, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xBC, 0x9D, FIL_, 0x04, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBC, 0xA2, FIL_, 0xCC, 0x81, FIL_,
+               0xE1, 0xBC, 0xA4, FIL_, 0xCD, 0x82, FIL_, 0xE1,
+               0xBC, 0xA6, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE,
+               0x90, FIL_, 0x04, 0xCD, 0x85, FIL_, 0xE1, 0xBE,
+               0x91, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xA5,
+               FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xA7, FIL_,
+               0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xA3, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x92, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x93, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x94, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x95, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x96, FIL_, 0x01,
+               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x97, FIL_, 0x04,
+               0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xAC, FIL_, 0xCC,
+               0x80, FIL_, 0xE1, 0xBC, 0xAA, FIL_, 0xCD, 0x85,
+               FIL_, 0xE1, 0xBE, 0x98, FIL_, 0xCD, 0x82, FIL_,
+               0xE1, 0xBC, 0xAE, FIL_, 0x04, 0xCD, 0x82, FIL_,
+               0xE1, 0xBC, 0xAF, FIL_, 0xCD, 0x85, FIL_, 0xE1,
+               0xBE, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC,
+               0xAD, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xAB,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9A,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9B,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9C,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9D,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9E,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9F,
+               FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xB4,
+               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xB2, FIL_,
+               0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xB6, FIL_, 0x03,
+               0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xB3, FIL_, 0xCD,
+               0x82, FIL_, 0xE1, 0xBC, 0xB7, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xBC, 0xB5, FIL_, 0x03, 0xCC, 0x81,
+               FIL_, 0xE1, 0xBC, 0xBC, FIL_, 0xCC, 0x80, FIL_,
+               0xE1, 0xBC, 0xBA, FIL_, 0xCD, 0x82, FIL_, 0xE1,
+               0xBC, 0xBE, FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1,
+               0xBC, 0xBB, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC,
+               0xBF, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xBD,
+               FIL_, 0x02, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x82,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x84, FIL_,
+               0x02, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x85, FIL_,
+               0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x83, FIL_, 0x02,
+               0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x8A, FIL_, 0xCC,
+               0x81, FIL_, 0xE1, 0xBD, 0x8C, FIL_, 0x02, 0xCC,
+               0x80, FIL_, 0xE1, 0xBD, 0x8B, FIL_, 0xCC, 0x81,
+               FIL_, 0xE1, 0xBD, 0x8D, FIL_, 0x03, 0xCD, 0x82,
+               FIL_, 0xE1, 0xBD, 0x96, FIL_, 0xCC, 0x80, FIL_,
+               0xE1, 0xBD, 0x92, FIL_, 0xCC, 0x81, FIL_, 0xE1,
+               0xBD, 0x94, FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1,
+               0xBD, 0x93, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD,
+               0x97, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x95,
+               FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x9B,
+               FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0x9F, FIL_,
+               0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x9D, FIL_, 0x04,
+               0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xA6, FIL_, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0xA0, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBD, 0xA2, FIL_, 0xCC, 0x81, FIL_,
+               0xE1, 0xBD, 0xA4, FIL_, 0x04, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0xA1, FIL_, 0xCD, 0x82, FIL_, 0xE1,
+               0xBD, 0xA7, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD,
+               0xA5, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xA3,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA2,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA3,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA4,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA5,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA6,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA7,
+               FIL_, 0x04, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xAA,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0xAC, FIL_,
+               0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xAE, FIL_, 0xCD,
+               0x85, FIL_, 0xE1, 0xBE, 0xA8, FIL_, 0x04, 0xCD,
+               0x82, FIL_, 0xE1, 0xBD, 0xAF, FIL_, 0xCC, 0x80,
+               FIL_, 0xE1, 0xBD, 0xAB, FIL_, 0xCD, 0x85, FIL_,
+               0xE1, 0xBE, 0xA9, FIL_, 0xCC, 0x81, FIL_, 0xE1,
+               0xBD, 0xAD, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
+               0xBE, 0xAA, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
+               0xBE, 0xAB, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
+               0xBE, 0xAC, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
+               0xBE, 0xAD, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
+               0xBE, 0xAE, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
+               0xBE, 0xAF, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
+               0xBE, 0xB2, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
+               0xBF, 0x82, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
+               0xBF, 0xB2, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
+               0xBE, 0xB7, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1,
+               0xBF, 0x8E, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF,
+               0x8D, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0x8F,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0x87,
+               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB7,
+               FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x9D,
+               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBF, 0x9E, FIL_,
+               0xCD, 0x82, FIL_, 0xE1, 0xBF, 0x9F, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x86, 0x9A, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x86, 0x9B, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x86, 0xAE, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x87, 0x8D, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x87, 0x8F, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x87, 0x8E, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x88, 0x84, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x88, 0x89, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x88, 0x8C, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x88, 0xA4, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x88, 0xA6, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x81, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x84, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x87, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x89, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAD, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xA2, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB0, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB1, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB4, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB5, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB8, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB9, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x80, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x81, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA0, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA1, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x84, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x85, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x88, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x89, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA2, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA3, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAC, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAD, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAE, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAF, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAA, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAB, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAC, FIL_, 0x01,
+               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAD, FIL_, 0x01,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0x94, FIL_,
+               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x8C,
+               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81,
+               0x8E, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x81, 0x90, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x81, 0x92, FIL_, 0x01, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x81, 0x94, FIL_, 0x01, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x81, 0x96, FIL_, 0x01, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x81, 0x98, FIL_, 0x01,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x9A, FIL_,
+               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x9C,
+               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81,
+               0x9E, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x81, 0xA0, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x81, 0xA2, FIL_, 0x01, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x81, 0xA5, FIL_, 0x01, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x81, 0xA7, FIL_, 0x01, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x81, 0xA9, FIL_, 0x02,
+               0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xB1, FIL_,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xB0, FIL_,
+               0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xB3,
+               FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xB4,
+               FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81,
+               0xB6, FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81,
+               0xB7, FIL_, 0x02, 0xE3, 0x82, 0x9A, FIL_, 0xE3,
+               0x81, 0xBA, FIL_, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x81, 0xB9, FIL_, 0x02, 0xE3, 0x82, 0x9A, FIL_,
+               0xE3, 0x81, 0xBD, FIL_, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x81, 0xBC, FIL_, 0x01, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x82, 0x9E, FIL_, 0x01, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x83, 0xB4, FIL_, 0x01, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x82, 0xAC, FIL_, 0x01,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xAE, FIL_,
+               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xB0,
+               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82,
+               0xB2, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x82, 0xB4, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x82, 0xB6, FIL_, 0x01, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x82, 0xB8, FIL_, 0x01, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x82, 0xBA, FIL_, 0x01, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x82, 0xBC, FIL_, 0x01,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xBE, FIL_,
+               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x80,
+               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83,
+               0x82, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x83, 0x85, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x83, 0x87, FIL_, 0x01, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x83, 0x89, FIL_, 0x02, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x83, 0x90, FIL_, 0xE3, 0x82,
+               0x9A, FIL_, 0xE3, 0x83, 0x91, FIL_, 0x02, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x83, 0x93, FIL_, 0xE3,
+               0x82, 0x9A, FIL_, 0xE3, 0x83, 0x94, FIL_, 0x02,
+               0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x83, 0x97, FIL_,
+               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x96, FIL_,
+               0x02, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x83, 0x9A,
+               FIL_, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x99,
+               FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83,
+               0x9C, FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x83,
+               0x9D, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
+               0x83, 0xB7, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
+               0xE3, 0x83, 0xB8, FIL_, 0x01, 0xE3, 0x82, 0x99,
+               FIL_, 0xE3, 0x83, 0xB9, FIL_, 0x01, 0xE3, 0x82,
+               0x99, FIL_, 0xE3, 0x83, 0xBA, FIL_, 0x01, 0xE3,
+               0x82, 0x99, FIL_, 0xE3, 0x83, 0xBE, FIL_,
+       },
+};
+
+static const uchar_t u8_decomp_b2_tbl[2][2][256] = {
+       {
+               {
+                       0,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       1,  2,  3,  4,  N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, 5,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, 6,  N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, 7,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+
+       },
+       {
+               {
+                       0,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       1,  2,  3,  4,  N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, 5,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, 6,  N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, 7,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+
+       },
+
+};
+
+static const u8_displacement_t u8_decomp_b3_tbl[2][8][256] = {
+       {
+               {       /* Third byte table 0. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 0, 0 },
+                       { 1, 35 }, { 2, 247 }, { 3, 474 },
+                       { 4, 693 }, { 5, 709 }, { 6, 951 },
+                       { N_, 0 }, { 7, 1139 }, { 8, 1152 },
+                       { N_, 0 }, { 9, 1177 }, { 10, 1199 },
+                       { 11, 1295 }, { 12, 1360 }, { 13, 1405 },
+                       { N_, 0 }, { 14, 1450 }, { N_, 0 },
+                       { N_, 0 }, { 15, 1620 }, { N_, 0 },
+                       { 16, 1624 }, { 17, 1649 }, { N_, 0 },
+                       { 18, 1665 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 1. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 19, 1680 },
+                       { 20, 1701 }, { N_, 0 }, { 21, 1757 },
+                       { 22, 1792 }, { 23, 1806 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 24, 1834 },
+                       { 25, 1869 }, { 26, 1876 }, { N_, 0 },
+                       { 27, 1897 }, { N_, 0 }, { 28, 1904 },
+                       { N_, 0 }, { 29, 1942 }, { N_, 0 },
+                       { 30, 1963 }, { 31, 1994 }, { N_, 0 },
+                       { 32, 2000 }, { 33, 2006 }, { 34, 2018 },
+                       { 35, 2021 }, { 36, 2109 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 2. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 37, 2158 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 0x8000, 2165 }, { 0x8001, 2445 },
+                       { 0x8002, 2741 }, { 0x8003, 3029 }, { 0x8004, 3337 },
+                       { 0x8005, 3725 }, { 0x8006, 4053 }, { 0x8007, 4536 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 3. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 38, 4895 },
+                       { 39, 4964 }, { 40, 4999 }, { N_, 0 },
+                       { 41, 5018 }, { 42, 5098 }, { 43, 5230 },
+                       { 44, 5248 }, { 45, 5266 }, { 46, 5326 },
+                       { 47, 5410 }, { 48, 5470 }, { 49, 5518 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 50, 5526 }, { 51, 5596 },
+                       { 52, 5767 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 53, 5810 }, { 54, 5822 }, { N_, 0 },
+                       { 55, 5830 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 56, 5836 }, { 57, 5839 }, { 58, 5842 },
+                       { 59, 6034 }, { 60, 6226 }, { 61, 6418 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 4. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 62, 6484 },
+                       { 63, 6497 }, { 64, 6672 }, { 65, 6770 },
+                       { 66, 6923 }, { 67, 6968 }, { 68, 7160 },
+                       { N_, 0 }, { 0x8008, 7247 }, { 69, 7597 },
+                       { 70, 7773 }, { 71, 7950 }, { 0x8009, 8142 },
+                       { 0x800A, 8919 }, { 72, 9351 }, { 73, 9522 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 5. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 0x800B, 9743 },
+                       { 0x800C, 9999 }, { 0x800D, 10255 }, { 0x800E, 10511 },
+                       { 74, 10767 }, { 75, 10967 }, { N_, 0 },
+                       { N_, 0 }, { 76, 11139 }, { 77, 11303 },
+                       { 78, 11468 }, { 79, 11576 }, { 0x800F, 11740 },
+                       { 0x8010, 12006 }, { 0x8011, 12280 }, { 0x8012, 12546 },
+                       { 80, 12812 }, { 0x8013, 13060 }, { 0x8014, 13348 },
+                       { 81, 13720 }, { 82, 13898 }, { 83, 13933 },
+                       { 84, 14045 }, { 85, 14197 }, { 86, 14347 },
+                       { 87, 14410 }, { 88, 14540 }, { 89, 14729 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 6. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 90, 14829 }, { 91, 14912 },
+                       { 92, 14969 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 93, 14982 }, { 94, 15046 }, { 95, 15109 },
+                       { 96, 15163 }, { 97, 15225 }, { 98, 15282 },
+                       { 99, 15341 }, { 100, 15405 }, { 101, 15469 },
+                       { 102, 15533 }, { 103, 15597 }, { 104, 15681 },
+                       { 105, 15812 }, { 106, 15942 }, { 107, 16072 },
+                       { 108, 16202 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 7. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 0x8015, 16273 }, { 0x8016, 16536 },
+                       { 0x8017, 16799 }, { 0x8018, 17064 }, { 0x8019, 17329 },
+                       { 0x801A, 17601 }, { 0x801B, 17878 }, { 0x801C, 18147 },
+                       { 109, 18419 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+       },
+       {
+               {       /* Third byte table 0. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 0, 0 },
+                       { 1, 35 }, { 2, 247 }, { 3, 474 },
+                       { 4, 693 }, { 5, 709 }, { 6, 951 },
+                       { N_, 0 }, { 7, 1139 }, { 8, 1152 },
+                       { N_, 0 }, { 9, 1177 }, { 10, 1199 },
+                       { 11, 1295 }, { 12, 1362 }, { 13, 1407 },
+                       { N_, 0 }, { 14, 1452 }, { N_, 0 },
+                       { N_, 0 }, { 15, 1622 }, { N_, 0 },
+                       { 16, 1626 }, { 17, 1651 }, { N_, 0 },
+                       { 18, 1667 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 1. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 19, 1682 },
+                       { 20, 1703 }, { N_, 0 }, { 21, 1759 },
+                       { 22, 1794 }, { 23, 1808 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 24, 1836 },
+                       { 25, 1871 }, { 26, 1878 }, { N_, 0 },
+                       { 27, 1899 }, { N_, 0 }, { 28, 1906 },
+                       { N_, 0 }, { 29, 1944 }, { N_, 0 },
+                       { 30, 1965 }, { 31, 1996 }, { N_, 0 },
+                       { 32, 2002 }, { 33, 2008 }, { 34, 2020 },
+                       { 35, 2023 }, { 36, 2111 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 2. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 37, 2160 },
+                       { N_, 0 }, { N_, 0 }, { 38, 2167 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 39, 2170 }, { 40, 2226 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 41, 2247 }, { 42, 2268 }, { 43, 2340 },
+                       { N_, 0 }, { 0x8000, 2414 }, { 0x8001, 2694 },
+                       { 0x8002, 2990 }, { 0x8003, 3278 }, { 0x8004, 3586 },
+                       { 0x8005, 3974 }, { 0x8006, 4302 }, { 0x8007, 4785 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 3. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 44, 5144 },
+                       { 45, 5213 }, { 46, 5248 }, { N_, 0 },
+                       { 47, 5273 }, { 48, 5358 }, { 49, 5490 },
+                       { 50, 5508 }, { 51, 5526 }, { 52, 5586 },
+                       { 53, 5670 }, { 54, 5730 }, { 55, 5778 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 56, 5786 }, { 57, 5856 },
+                       { 58, 6027 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 59, 6070 }, { 60, 6082 }, { N_, 0 },
+                       { 61, 6090 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 62, 6096 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 63, 6099 }, { 64, 6102 }, { 65, 6105 },
+                       { 66, 6297 }, { 67, 6489 }, { 68, 6681 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 4. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 69, 6747 },
+                       { 70, 6760 }, { 71, 6935 }, { 72, 7033 },
+                       { 73, 7186 }, { 74, 7231 }, { 75, 7423 },
+                       { N_, 0 }, { 0x8008, 7510 }, { 76, 7891 },
+                       { 77, 8103 }, { 78, 8280 }, { 0x8009, 8482 },
+                       { 0x800A, 9259 }, { 79, 9701 }, { 80, 9872 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 5. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 0x800B, 10106 },
+                       { 0x800C, 10362 }, { 0x800D, 10618 }, { 0x800E, 10874 },
+                       { 81, 11130 }, { 82, 11330 }, { 0x800F, 11566 },
+                       { 83, 11822 }, { 84, 11932 }, { 85, 12096 },
+                       { 86, 12261 }, { 87, 12369 }, { 0x8010, 12533 },
+                       { 0x8011, 12799 }, { 0x8012, 13073 }, { 0x8013, 13339 },
+                       { 88, 13605 }, { 0x8014, 13853 }, { 0x8015, 14141 },
+                       { 89, 14513 }, { 90, 14691 }, { 91, 14746 },
+                       { 92, 14860 }, { 93, 15012 }, { 94, 15162 },
+                       { 95, 15225 }, { 96, 15355 }, { 97, 15544 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 6. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 98, 15644 }, { 99, 15727 },
+                       { 100, 15784 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 101, 15797 }, { 102, 15861 }, { 103, 15924 },
+                       { 104, 15978 }, { 105, 16041 }, { 106, 16098 },
+                       { 107, 16157 }, { 108, 16221 }, { 109, 16285 },
+                       { 110, 16349 }, { 111, 16413 }, { 112, 16501 },
+                       { 113, 16632 }, { 114, 16762 }, { 115, 16892 },
+                       { 116, 17022 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+               {       /* Third byte table 7. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 0x8016, 17097 }, { 0x8017, 17360 },
+                       { 0x8018, 17623 }, { 0x8019, 17888 }, { 0x801A, 18153 },
+                       { 0x801B, 18425 }, { 0x801C, 18702 }, { 0x801D, 18971 },
+                       { 117, 19243 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 },
+               },
+       },
+};
+
+static const uchar_t u8_decomp_b4_tbl[2][118][257] = {
+       {
+               {       /* Fourth byte table 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,   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,   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,   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,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   1,   1,   1,   1,   1,   1,
+                       1,   4,   4,   5,   5,   5,   5,   5,
+                       8,   8,   8,   9,   10,  13,  15,  15,
+                       15,  18,  19,  20,  20,  25,  30,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,
+               },
+               {       /* Fourth byte table 1. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  24,
+                       28,  32,  36,  40,  44,  48,  52,  56,
+                       60,  60,  64,  68,  72,  76,  80,  84,
+                       84,  84,  88,  92,  96,  100, 104, 104,
+                       104, 108, 112, 116, 120, 124, 128, 128,
+                       132, 136, 140, 144, 148, 152, 156, 160,
+                       164, 164, 168, 172, 176, 180, 184, 188,
+                       188, 188, 192, 196, 200, 204, 208, 208,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212,
+               },
+               {       /* Fourth byte table 2. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  64,  64,  68,  72,  76,  80,  84,
+                       88,  92,  96,  100, 104, 108, 112, 116,
+                       120, 124, 128, 132, 136, 140, 144, 144,
+                       144, 148, 152, 156, 160, 164, 168, 172,
+                       176, 180, 180, 182, 184, 188, 192, 196,
+                       200, 200, 204, 208, 212, 216, 220, 224,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227,
+               },
+               {       /* Fourth byte table 3. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   3,   7,   11,  15,  19,
+                       23,  27,  30,  30,  30,  34,  38,  42,
+                       46,  50,  54,  54,  54,  58,  62,  66,
+                       70,  74,  78,  82,  86,  90,  94,  98,
+                       102, 106, 110, 114, 118, 122, 126, 126,
+                       126, 130, 134, 138, 142, 146, 150, 154,
+                       158, 162, 166, 170, 174, 178, 182, 186,
+                       190, 194, 198, 202, 206, 210, 214, 218,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219,
+               },
+               {       /* Fourth byte table 4. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       12,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,
+               },
+               {       /* Fourth byte table 5. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   4,   8,   12,
+                       14,  16,  18,  20,  22,  24,  28,  32,
+                       36,  40,  44,  48,  52,  56,  62,  68,
+                       74,  80,  86,  92,  98,  104, 104, 110,
+                       116, 122, 128, 133, 138, 138, 138, 142,
+                       146, 150, 154, 158, 162, 168, 174, 179,
+                       184, 188, 190, 192, 194, 198, 202, 202,
+                       202, 206, 210, 216, 222, 227, 232, 237,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242,
+               },
+               {       /* Fourth byte table 6. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  68,  72,  76,  80,  84,  88,  92,
+                       96,  100, 104, 108, 112, 112, 112, 116,
+                       120, 120, 120, 120, 120, 120, 120, 124,
+                       128, 132, 136, 142, 148, 154, 160, 164,
+                       168, 174, 180, 184, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188,
+               },
+               {       /* Fourth byte table 7. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   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,   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,   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,   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,
+                       0,   1,   3,   4,   5,   7,   9,   11,
+                       12,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,
+               },
+               {       /* Fourth byte table 8. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  18,
+                       18,  20,  21,  22,  23,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,
+               },
+               {       /* Fourth byte table 9. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   6,   9,   14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  17,  17,  17,
+                       17,  17,  17,  20,  20,  20,  20,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,
+               },
+               {       /* Fourth byte table 10. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   3,   14,  19,
+                       22,  27,  32,  37,  37,  42,  42,  47,
+                       52,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  64,  69,  74,  79,  84,
+                       89,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 11. */
+                       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,   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,   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,   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,   5,   10,  15,  20,  25,
+                       25,  27,  29,  31,  41,  51,  53,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  57,  59,  61,  61,  63,  65,  65,
+                       65,  65,  65,  65,  65,  65,  65,  65,
+                       65,  65,  65,  65,  65,  65,  65,  65,
+                       65,  65,  65,  65,  65,  65,  65,  65,
+                       65,  65,  65,  65,  65,  65,  65,  65,
+                       65,  65,  65,  65,  65,  65,  65,  65,
+                       65,  65,  65,  65,  65,  65,  65,  65,
+                       65,  65,  65,  65,  65,  65,  65,  65,
+                       65,  65,  65,  65,  65,  65,  65,  65,
+                       65,  65,  65,  65,  65,  65,  65,  65,
+                       65,
+               },
+               {       /* Fourth byte table 12. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   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,   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,   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,   5,   10,  10,  15,  15,  15,  15,
+                       20,  20,  20,  20,  20,  25,  30,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  40,  40,  40,  40,  40,  40,
+                       40,  40,  40,  40,  40,  40,  40,  40,
+                       40,  40,  40,  40,  40,  40,  40,  40,
+                       40,  40,  40,  40,  40,  40,  40,  40,
+                       40,  40,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,
+               },
+               {       /* Fourth byte table 13. */
+                       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,   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,   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,   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,   5,   10,  10,  15,  15,  15,  15,
+                       20,  20,  20,  20,  20,  25,  30,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  40,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,
+               },
+               {       /* Fourth byte table 14. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   5,   10,  10,  10,  10,  10,
+                       10,  10,  10,  10,  10,  10,  10,  10,
+                       10,  15,  20,  25,  30,  30,  30,  35,
+                       40,  40,  40,  45,  50,  55,  60,  65,
+                       70,  70,  70,  75,  80,  85,  90,  95,
+                       100, 100, 100, 105, 110, 115, 120, 125,
+                       130, 135, 140, 145, 150, 155, 160, 160,
+                       160, 165, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170,
+               },
+               {       /* Fourth byte table 15. */
+                       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,   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,   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,   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,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,
+               },
+               {       /* Fourth byte table 16. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   5,   10,  15,  20,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,
+               },
+               {       /* Fourth byte table 17. */
+                       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,   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,   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,   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,   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,   4,   8,
+                       12,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,
+               },
+               {       /* Fourth byte table 18. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   5,   5,   10,  10,  10,  10,  10,
+                       10,  10,  10,  10,  10,  10,  10,  10,
+                       10,  10,  10,  10,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,
+               },
+               {       /* Fourth byte table 19. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   7,   7,   7,   7,   7,   7,
+                       7,   7,   14,  14,  14,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 20. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   7,   14,  21,  28,  35,  42,  49,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,
+               },
+               {       /* Fourth byte table 21. */
+                       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,   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,   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,   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,   7,   14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  21,  28,  28,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,
+               },
+               {       /* Fourth byte table 22. */
+                       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,   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,   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,   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,   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,   7,   7,   7,   14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,
+               },
+               {       /* Fourth byte table 23. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   7,   14,  21,  21,  21,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,
+               },
+               {       /* Fourth byte table 24. */
+                       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,   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,   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,   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,   7,   7,   7,   14,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  28,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,
+               },
+               {       /* Fourth byte table 25. */
+                       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,   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,   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,   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,   0,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,
+               },
+               {       /* Fourth byte table 26. */
+                       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,   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,   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,   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,   7,   14,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 27. */
+                       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,   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,   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,   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,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,
+               },
+               {       /* Fourth byte table 28. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   7,   7,   7,   7,   7,   7,   7,
+                       14,  21,  21,  28,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,
+               },
+               {       /* Fourth byte table 29. */
+                       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,   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,   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,   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,   7,   14,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 30. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   7,   7,   14,  24,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,
+               },
+               {       /* Fourth byte table 31. */
+                       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,   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,   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,   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,   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,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,
+               },
+               {       /* Fourth byte table 32. */
+                       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,   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,   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,   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,   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,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,
+               },
+               {       /* Fourth byte table 33. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   6,   12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,
+               },
+               {       /* Fourth byte table 34. */
+                       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,   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,   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,   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,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 35. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   14,  14,
+                       14,  14,  14,  21,  21,  21,  21,  21,
+                       28,  28,  28,  28,  28,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  49,  49,  56,  63,
+                       72,  79,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,
+               },
+               {       /* Fourth byte table 36. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  21,  21,
+                       21,  21,  21,  28,  28,  28,  28,  28,
+                       35,  35,  35,  35,  35,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,
+               },
+               {       /* Fourth byte table 37. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,
+               },
+               {       /* Fourth byte table 38. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   6,   12,  13,  14,  15,  16,  17,
+                       18,  19,  20,  21,  21,  21,  21,  21,
+                       21,  21,  24,  24,  24,  24,  24,  24,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  28,  30,  33,
+                       33,  33,  33,  33,  33,  33,  33,  33,
+                       34,  34,  34,  34,  40,  49,  49,  55,
+                       64,  64,  64,  64,  64,  66,  66,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,
+               },
+               {       /* Fourth byte table 39. */
+                       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,   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,   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,   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,
+                       2,   4,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  20,  21,  21,  21,  22,  23,  24,
+                       25,  26,  27,  28,  31,  32,  33,  34,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,
+               },
+               {       /* Fourth byte table 40. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  14,  15,  16,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  17,  17,  17,  17,  17,  17,  17,
+                       17,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,
+               },
+               {       /* Fourth byte table 41. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   7,   10,  10,  13,  16,
+                       18,  18,  21,  22,  23,  24,  25,  26,
+                       28,  29,  30,  31,  32,  32,  33,  35,
+                       35,  35,  36,  37,  38,  39,  40,  40,
+                       40,  42,  45,  47,  47,  48,  48,  51,
+                       51,  52,  52,  54,  58,  59,  60,  60,
+                       61,  62,  63,  63,  64,  65,  67,  69,
+                       71,  73,  74,  74,  74,  74,  76,  78,
+                       80,  80,  80,  80,  80,  80,  80,  80,
+                       80,  80,  80,  80,  80,  80,  80,  80,
+                       80,  80,  80,  80,  80,  80,  80,  80,
+                       80,  80,  80,  80,  80,  80,  80,  80,
+                       80,  80,  80,  80,  80,  80,  80,  80,
+                       80,  80,  80,  80,  80,  80,  80,  80,
+                       80,  80,  80,  80,  80,  80,  80,  80,
+                       80,  80,  80,  80,  80,  80,  80,  80,
+                       80,
+               },
+               {       /* Fourth byte table 42. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   3,   3,   3,   4,   5,
+                       6,   7,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   13,  18,  23,  28,
+                       33,  38,  43,  48,  53,  58,  63,  68,
+                       72,  73,  75,  78,  80,  81,  83,  86,
+                       90,  92,  93,  95,  98,  99,  100, 101,
+                       102, 103, 105, 108, 110, 111, 113, 116,
+                       120, 122, 123, 125, 128, 129, 130, 131,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132,
+               },
+               {       /* Fourth byte table 43. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   6,   12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,
+               },
+               {       /* Fourth byte table 44. */
+                       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,   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,   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,   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,   6,   12,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,
+               },
+               {       /* Fourth byte table 45. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   6,   6,   6,
+                       6,   6,   12,  12,  12,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  24,  24,  30,
+                       30,  30,  30,  30,  30,  36,  45,  45,
+                       51,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,
+               },
+               {       /* Fourth byte table 46. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   6,   6,   6,   12,  12,  12,
+                       18,  18,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  28,  28,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  40,  44,
+                       48,  54,  60,  60,  60,  66,  72,  72,
+                       72,  78,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,
+               },
+               {       /* Fourth byte table 47. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   6,   12,  12,  12,  18,  24,  24,
+                       24,  30,  36,  36,  36,  36,  36,  36,
+                       36,  36,  36,  36,  36,  36,  36,  36,
+                       36,  36,  36,  36,  36,  36,  36,  36,
+                       36,  36,  36,  36,  36,  36,  36,  36,
+                       36,  36,  36,  36,  36,  42,  48,  54,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,
+               },
+               {       /* Fourth byte table 48. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   6,   12,  18,  24,  24,  24,  24,
+                       24,  24,  24,  30,  36,  42,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,
+               },
+               {       /* Fourth byte table 49. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   4,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,
+               },
+               {       /* Fourth byte table 50. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   11,  13,  15,  17,  19,  21,
+                       23,  25,  27,  29,  31,  34,  37,  40,
+                       43,  46,  49,  52,  55,  58,  62,  66,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,
+               },
+               {       /* Fourth byte table 51. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       48,  50,  53,  56,  59,  62,  65,  68,
+                       71,  74,  77,  80,  83,  86,  89,  92,
+                       95,  98,  101, 104, 107, 110, 113, 116,
+                       119, 122, 125, 128, 131, 134, 137, 140,
+                       143, 146, 149, 152, 155, 158, 161, 162,
+                       163, 164, 165, 166, 167, 168, 169, 170,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171,
+               },
+               {       /* Fourth byte table 52. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,
+               },
+               {       /* Fourth byte table 53. */
+                       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,   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,   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,   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,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,
+               },
+               {       /* Fourth byte table 54. */
+                       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,   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,   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,   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,   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,   3,   5,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,
+               },
+               {       /* Fourth byte table 55. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,
+               },
+               {       /* Fourth byte table 56. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 57. */
+                       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,   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,   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,   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,   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,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 58. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 150, 153, 156, 159, 162, 165,
+                       168, 171, 174, 177, 180, 183, 186, 189,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192,
+               },
+               {       /* Fourth byte table 59. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 150, 153, 156, 159, 162, 165,
+                       168, 171, 174, 177, 180, 183, 186, 189,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192,
+               },
+               {       /* Fourth byte table 60. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 150, 153, 156, 159, 162, 165,
+                       168, 171, 174, 177, 180, 183, 186, 189,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192,
+               },
+               {       /* Fourth byte table 61. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,
+               },
+               {       /* Fourth byte table 62. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   4,
+                       4,   7,   10,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,
+               },
+               {       /* Fourth byte table 63. */
+                       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,   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,   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,   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,   7,   7,   14,
+                       14,  21,  21,  28,  28,  35,  35,  42,
+                       42,  49,  49,  56,  56,  63,  63,  70,
+                       70,  77,  77,  84,  84,  84,  91,  91,
+                       98,  98,  105, 105, 105, 105, 105, 105,
+                       105, 112, 119, 119, 126, 133, 133, 140,
+                       147, 147, 154, 161, 161, 168, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175,
+               },
+               {       /* Fourth byte table 64. */
+                       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,   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,   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,   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,   0,   7,   7,   7,
+                       7,   7,   7,   7,   11,  15,  15,  22,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  35,  35,  42,
+                       42,  49,  49,  56,  56,  63,  63,  70,
+                       70,  77,  77,  84,  84,  91,  91,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,
+               },
+               {       /* Fourth byte table 65. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   7,   7,   14,  14,  14,  21,  21,
+                       28,  28,  35,  35,  35,  35,  35,  35,
+                       35,  42,  49,  49,  56,  63,  63,  70,
+                       77,  77,  84,  91,  91,  98,  105, 105,
+                       105, 105, 105, 105, 105, 105, 105, 105,
+                       105, 105, 105, 105, 105, 105, 105, 105,
+                       105, 105, 105, 105, 105, 112, 112, 112,
+                       119, 126, 133, 140, 140, 140, 140, 147,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153,
+               },
+               {       /* Fourth byte table 66. */
+                       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,   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,   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,   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,   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,   3,   6,   9,   12,  15,  18,
+                       21,  24,  27,  30,  33,  36,  39,  42,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,
+               },
+               {       /* Fourth byte table 67. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 150, 153, 156, 159, 162, 165,
+                       168, 171, 174, 177, 180, 183, 186, 189,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192,
+               },
+               {       /* Fourth byte table 68. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       45,  45,  45,  48,  51,  54,  57,  60,
+                       63,  66,  69,  72,  75,  78,  81,  84,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,
+               },
+               {       /* Fourth byte table 69. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   5,   10,  15,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  22,  24,  26,  28,  30,  32,
+                       34,  36,  38,  40,  42,  44,  46,  48,
+                       50,  53,  56,  59,  62,  65,  68,  71,
+                       74,  77,  80,  83,  86,  89,  92,  98,
+                       104, 110, 116, 122, 128, 134, 140, 146,
+                       152, 158, 164, 170, 176, 176, 176, 176,
+                       176, 176, 176, 176, 176, 176, 176, 176,
+                       176, 176, 176, 176, 176, 176, 176, 176,
+                       176, 176, 176, 176, 176, 176, 176, 176,
+                       176, 176, 176, 176, 176, 176, 176, 176,
+                       176, 176, 176, 176, 176, 176, 176, 176,
+                       176, 176, 176, 176, 176, 176, 176, 176,
+                       176, 176, 176, 176, 176, 176, 176, 176,
+                       176, 176, 176, 176, 176, 176, 176, 176,
+                       176,
+               },
+               {       /* Fourth byte table 70. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 149, 151, 153, 155, 157, 159,
+                       161, 163, 165, 167, 169, 171, 173, 175,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177,
+               },
+               {       /* Fourth byte table 71. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  41,  46,  51,  51,  51,  51,
+                       51,  54,  57,  60,  63,  66,  69,  72,
+                       75,  78,  81,  84,  87,  90,  93,  96,
+                       99,  102, 105, 108, 111, 114, 117, 120,
+                       123, 126, 129, 132, 135, 138, 141, 144,
+                       147, 150, 153, 156, 159, 162, 165, 168,
+                       171, 174, 177, 180, 183, 186, 189, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192,
+               },
+               {       /* Fourth byte table 72. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   7,   9,   11,  13,  15,
+                       17,  20,  24,  26,  28,  31,  34,  36,
+                       38,  40,  43,  46,  49,  52,  55,  57,
+                       59,  61,  63,  65,  68,  70,  72,  74,
+                       77,  80,  82,  85,  88,  91,  93,  96,
+                       101, 107, 109, 112, 115, 118, 121, 128,
+                       136, 138, 140, 143, 145, 147, 149, 152,
+                       154, 156, 158, 160, 162, 165, 167, 169,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171,
+               },
+               {       /* Fourth byte table 73. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   10,  12,  14,  16,  22,
+                       25,  27,  29,  31,  33,  35,  37,  39,
+                       41,  43,  45,  48,  50,  52,  55,  58,
+                       60,  64,  67,  69,  71,  73,  75,  75,
+                       75,  79,  83,  87,  91,  95,  99,  103,
+                       107, 111, 116, 121, 126, 131, 136, 141,
+                       146, 151, 156, 161, 166, 171, 176, 181,
+                       186, 191, 196, 201, 206, 211, 216, 221,
+                       221, 221, 221, 221, 221, 221, 221, 221,
+                       221, 221, 221, 221, 221, 221, 221, 221,
+                       221, 221, 221, 221, 221, 221, 221, 221,
+                       221, 221, 221, 221, 221, 221, 221, 221,
+                       221, 221, 221, 221, 221, 221, 221, 221,
+                       221, 221, 221, 221, 221, 221, 221, 221,
+                       221, 221, 221, 221, 221, 221, 221, 221,
+                       221, 221, 221, 221, 221, 221, 221, 221,
+                       221,
+               },
+               {       /* Fourth byte table 74. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  56,
+                       56,  60,  60,  64,  64,  64,  68,  72,
+                       76,  80,  84,  88,  92,  96,  100, 104,
+                       104, 108, 108, 112, 112, 112, 116, 120,
+                       120, 120, 120, 124, 128, 132, 136, 136,
+                       136, 140, 144, 148, 152, 156, 160, 164,
+                       168, 172, 176, 180, 184, 188, 192, 196,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200,
+               },
+               {       /* Fourth byte table 75. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  68,  72,  76,  80,  84,  88,  92,
+                       96,  100, 104, 108, 112, 116, 120, 124,
+                       128, 132, 136, 140, 144, 148, 152, 156,
+                       160, 164, 168, 172, 172, 172, 172, 172,
+                       172, 172, 172, 172, 172, 172, 172, 172,
+                       172, 172, 172, 172, 172, 172, 172, 172,
+                       172, 172, 172, 172, 172, 172, 172, 172,
+                       172, 172, 172, 172, 172, 172, 172, 172,
+                       172, 172, 172, 172, 172, 172, 172, 172,
+                       172, 172, 172, 172, 172, 172, 172, 172,
+                       172, 172, 172, 172, 172, 172, 172, 172,
+                       172, 172, 172, 172, 172, 172, 172, 172,
+                       172, 172, 172, 172, 172, 172, 172, 172,
+                       172, 172, 172, 172, 172, 172, 172, 172,
+                       172,
+               },
+               {       /* Fourth byte table 76. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   9,   12,  14,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  20,  24,  28,  32,
+                       36,  36,  36,  36,  36,  36,  41,  41,
+                       46,  48,  50,  52,  54,  56,  58,  60,
+                       62,  64,  65,  70,  75,  82,  89,  94,
+                       99,  104, 109, 114, 119, 124, 129, 134,
+                       134, 139, 144, 149, 154, 159, 159, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164,
+               },
+               {       /* Fourth byte table 77. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   5,   10,  10,  15,  20,  20,  25,
+                       30,  35,  40,  45,  50,  55,  60,  65,
+                       69,  71,  73,  75,  77,  79,  81,  83,
+                       85,  87,  89,  91,  93,  95,  97,  99,
+                       101, 103, 105, 107, 109, 111, 113, 115,
+                       117, 119, 121, 123, 125, 127, 129, 131,
+                       133, 135, 137, 139, 141, 143, 145, 147,
+                       149, 151, 153, 155, 157, 159, 161, 163,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165,
+               },
+               {       /* Fourth byte table 78. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       48,  50,  52,  54,  56,  58,  60,  62,
+                       64,  66,  68,  70,  72,  76,  80,  82,
+                       84,  86,  88,  90,  92,  94,  96,  98,
+                       100, 104, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108,
+               },
+               {       /* Fourth byte table 79. */
+                       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,   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,   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,   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,   2,   4,   6,   8,
+                       10,  12,  14,  16,  18,  20,  24,  26,
+                       28,  30,  32,  34,  36,  38,  40,  42,
+                       44,  46,  48,  54,  60,  66,  72,  78,
+                       84,  90,  96,  102, 108, 114, 120, 126,
+                       132, 138, 144, 150, 156, 158, 160, 162,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164,
+               },
+               {       /* Fourth byte table 80. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  68,  72,  76,  80,  84,  88,  92,
+                       96,  100, 104, 108, 112, 116, 120, 124,
+                       128, 132, 136, 140, 144, 148, 152, 156,
+                       160, 164, 168, 172, 176, 180, 184, 188,
+                       192, 196, 200, 204, 208, 212, 216, 220,
+                       224, 228, 232, 236, 240, 244, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248,
+               },
+               {       /* Fourth byte table 81. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   6,   12,  18,  24,  30,  36,  42,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  54,  60,  68,  76,  84,  92,  100,
+                       108, 116, 122, 155, 170, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178,
+               },
+               {       /* Fourth byte table 82. */
+                       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,   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,   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,   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,   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,   2,   5,   8,   9,   10,  11,  12,
+                       13,  14,  17,  20,  23,  26,  29,  32,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,
+               },
+               {       /* Fourth byte table 83. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  15,  15,
+                       15,  15,  18,  21,  24,  27,  28,  29,
+                       30,  31,  34,  35,  35,  36,  37,  38,
+                       39,  42,  43,  44,  45,  46,  49,  52,
+                       53,  54,  55,  56,  57,  58,  59,  60,
+                       60,  61,  62,  63,  64,  64,  64,  64,
+                       64,  67,  71,  74,  74,  77,  77,  80,
+                       84,  87,  91,  94,  98,  101, 105, 108,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112,
+               },
+               {       /* Fourth byte table 84. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   6,   10,  14,  18,  22,  26,
+                       30,  34,  38,  42,  46,  50,  52,  54,
+                       56,  58,  60,  62,  64,  66,  68,  70,
+                       72,  74,  76,  78,  80,  82,  84,  86,
+                       88,  90,  92,  94,  96,  98,  100, 102,
+                       104, 106, 108, 110, 112, 114, 116, 118,
+                       120, 122, 124, 126, 128, 130, 132, 134,
+                       136, 138, 140, 142, 144, 146, 148, 150,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152,
+               },
+               {       /* Fourth byte table 85. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       48,  50,  52,  54,  56,  58,  60,  62,
+                       64,  66,  68,  70,  72,  74,  76,  78,
+                       80,  82,  84,  86,  88,  90,  92,  94,
+                       96,  98,  100, 102, 104, 106, 112, 118,
+                       124, 130, 136, 142, 146, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150,
+               },
+               {       /* Fourth byte table 86. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   1,   2,   3,   4,   5,   6,
+                       7,   8,   9,   10,  11,  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,  40,  41,  42,  43,  44,  45,  46,
+                       47,  48,  49,  50,  51,  52,  53,  54,
+                       55,  56,  57,  58,  59,  60,  61,  62,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,
+               },
+               {       /* Fourth byte table 87. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  12,  13,  14,  15,
+                       16,  17,  18,  19,  20,  21,  22,  23,
+                       24,  25,  26,  27,  28,  29,  30,  31,
+                       34,  37,  40,  43,  46,  49,  52,  55,
+                       58,  61,  64,  67,  70,  73,  76,  79,
+                       82,  85,  88,  91,  94,  97,  100, 103,
+                       106, 109, 112, 115, 118, 121, 124, 127,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130,
+               },
+               {       /* Fourth byte table 88. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 150, 153, 156, 159, 162, 165,
+                       168, 171, 174, 177, 180, 183, 186, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189,
+               },
+               {       /* Fourth byte table 89. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   3,   6,   9,   12,  15,
+                       18,  18,  18,  21,  24,  27,  30,  33,
+                       36,  36,  36,  39,  42,  45,  48,  51,
+                       54,  54,  54,  57,  60,  63,  63,  63,
+                       63,  65,  67,  69,  72,  74,  76,  79,
+                       79,  82,  85,  88,  91,  94,  97,  100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100,
+               },
+               {       /* Fourth byte table 90. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   9,
+                       18,  31,  44,  57,  70,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,
+               },
+               {       /* Fourth byte table 91. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   9,   18,  31,  44,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,
+               },
+               {       /* Fourth byte table 92. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,
+               },
+               {       /* Fourth byte table 93. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  51,  52,  53,  54,  55,
+                       56,  57,  58,  59,  60,  61,  62,  63,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 94. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  12,  13,  14,  15,
+                       16,  17,  18,  19,  20,  21,  21,  22,
+                       23,  24,  25,  26,  27,  28,  29,  30,
+                       31,  32,  33,  34,  35,  36,  37,  38,
+                       39,  40,  41,  42,  43,  44,  45,  46,
+                       47,  48,  49,  50,  51,  52,  53,  54,
+                       55,  56,  57,  58,  59,  60,  61,  62,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,
+               },
+               {       /* Fourth byte table 95. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  12,  13,  14,  15,
+                       16,  17,  18,  19,  20,  21,  22,  23,
+                       24,  25,  26,  27,  28,  29,  29,  30,
+                       31,  31,  31,  32,  32,  32,  33,  34,
+                       34,  34,  35,  36,  37,  38,  38,  39,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  50,  51,  51,  52,  53,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,
+               },
+               {       /* Fourth byte table 96. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   1,   2,   3,   3,   4,   5,
+                       6,   7,   8,   9,   10,  11,  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,  40,  41,  42,  43,  44,  45,
+                       46,  47,  48,  49,  50,  51,  52,  53,
+                       54,  55,  56,  57,  58,  59,  60,  61,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,
+               },
+               {       /* Fourth byte table 97. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   6,
+                       7,   8,   9,   10,  10,  10,  11,  12,
+                       13,  14,  15,  16,  17,  18,  18,  19,
+                       20,  21,  22,  23,  24,  25,  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,  53,  53,  54,  55,  56,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,
+               },
+               {       /* Fourth byte table 98. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   5,   6,
+                       6,   6,   6,   7,   8,   9,   10,  11,
+                       12,  13,  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,  40,  41,  42,
+                       43,  44,  45,  46,  47,  48,  49,  50,
+                       51,  52,  53,  54,  55,  56,  57,  58,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,
+               },
+               {       /* Fourth byte table 99. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  51,  52,  53,  54,  55,
+                       56,  57,  58,  59,  60,  61,  62,  63,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 100. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  51,  52,  53,  54,  55,
+                       56,  57,  58,  59,  60,  61,  62,  63,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 101. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  51,  52,  53,  54,  55,
+                       56,  57,  58,  59,  60,  61,  62,  63,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 102. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  51,  52,  53,  54,  55,
+                       56,  57,  58,  59,  60,  61,  62,  63,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 103. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,  36,  36,  36,
+                       36,  38,  40,  42,  44,  46,  48,  50,
+                       52,  54,  56,  58,  60,  62,  64,  66,
+                       68,  70,  72,  74,  76,  78,  80,  82,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,
+               },
+               {       /* Fourth byte table 104. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   5,   7,   9,   11,  13,  15,
+                       17,  19,  21,  23,  25,  27,  29,  31,
+                       33,  35,  37,  39,  41,  43,  45,  47,
+                       49,  51,  53,  55,  58,  60,  62,  64,
+                       66,  68,  70,  72,  74,  76,  78,  80,
+                       82,  84,  86,  88,  90,  92,  94,  96,
+                       98,  100, 102, 104, 106, 108, 110, 112,
+                       114, 116, 118, 120, 123, 125, 127, 129,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131,
+               },
+               {       /* Fourth byte table 105. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  45,  47,
+                       49,  51,  53,  55,  57,  59,  61,  63,
+                       65,  67,  69,  71,  73,  75,  77,  79,
+                       81,  83,  85,  87,  89,  91,  93,  95,
+                       97,  99,  101, 103, 105, 107, 110, 112,
+                       114, 116, 118, 120, 122, 124, 126, 128,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130,
+               },
+               {       /* Fourth byte table 106. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       33,  35,  37,  39,  41,  43,  45,  47,
+                       49,  51,  53,  55,  57,  59,  61,  63,
+                       65,  67,  69,  71,  73,  75,  77,  79,
+                       81,  83,  85,  87,  89,  91,  93,  95,
+                       98,  100, 102, 104, 106, 108, 110, 112,
+                       114, 116, 118, 120, 122, 124, 126, 128,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130,
+               },
+               {       /* Fourth byte table 107. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  21,  23,  25,  27,  29,  31,
+                       33,  35,  37,  39,  41,  43,  45,  47,
+                       49,  51,  53,  55,  57,  59,  61,  63,
+                       65,  67,  69,  71,  73,  75,  77,  79,
+                       81,  83,  86,  88,  90,  92,  94,  96,
+                       98,  100, 102, 104, 106, 108, 110, 112,
+                       114, 116, 118, 120, 122, 124, 126, 128,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130,
+               },
+               {       /* Fourth byte table 108. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   9,   11,  13,  15,
+                       17,  19,  21,  21,  21,  21,  21,  22,
+                       23,  24,  25,  26,  27,  28,  29,  30,
+                       31,  32,  33,  34,  35,  36,  37,  38,
+                       39,  40,  41,  42,  43,  44,  45,  46,
+                       47,  48,  49,  50,  51,  52,  53,  54,
+                       55,  56,  57,  58,  59,  60,  61,  62,
+                       63,  64,  65,  66,  67,  68,  69,  70,
+                       71,  71,  71,  71,  71,  71,  71,  71,
+                       71,  71,  71,  71,  71,  71,  71,  71,
+                       71,  71,  71,  71,  71,  71,  71,  71,
+                       71,  71,  71,  71,  71,  71,  71,  71,
+                       71,  71,  71,  71,  71,  71,  71,  71,
+                       71,  71,  71,  71,  71,  71,  71,  71,
+                       71,  71,  71,  71,  71,  71,  71,  71,
+                       71,  71,  71,  71,  71,  71,  71,  71,
+                       71,
+               },
+               {       /* Fourth byte table 109. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   9,   13,  17,  21,  25,  29,
+                       33,  37,  42,  46,  50,  54,  58,  62,
+                       66,  71,  75,  80,  85,  90,  94,  98,
+                       102, 106, 110, 114, 118, 122, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127,
+               },
+               {       /* Fourth byte table 110. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 111. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 112. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 113. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 114. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 115. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 116. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 117. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+       },
+       {
+               {       /* Fourth byte table 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,   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,   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,   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,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   1,   1,   1,   1,   1,   1,
+                       1,   4,   4,   5,   5,   5,   5,   5,
+                       8,   8,   8,   9,   10,  13,  15,  15,
+                       15,  18,  19,  20,  20,  25,  30,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,
+               },
+               {       /* Fourth byte table 1. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  24,
+                       28,  32,  36,  40,  44,  48,  52,  56,
+                       60,  60,  64,  68,  72,  76,  80,  84,
+                       84,  84,  88,  92,  96,  100, 104, 104,
+                       104, 108, 112, 116, 120, 124, 128, 128,
+                       132, 136, 140, 144, 148, 152, 156, 160,
+                       164, 164, 168, 172, 176, 180, 184, 188,
+                       188, 188, 192, 196, 200, 204, 208, 208,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212,
+               },
+               {       /* Fourth byte table 2. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  64,  64,  68,  72,  76,  80,  84,
+                       88,  92,  96,  100, 104, 108, 112, 116,
+                       120, 124, 128, 132, 136, 140, 144, 144,
+                       144, 148, 152, 156, 160, 164, 168, 172,
+                       176, 180, 180, 182, 184, 188, 192, 196,
+                       200, 200, 204, 208, 212, 216, 220, 224,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227, 227, 227, 227, 227, 227, 227, 227,
+                       227,
+               },
+               {       /* Fourth byte table 3. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   3,   7,   11,  15,  19,
+                       23,  27,  30,  30,  30,  34,  38,  42,
+                       46,  50,  54,  54,  54,  58,  62,  66,
+                       70,  74,  78,  82,  86,  90,  94,  98,
+                       102, 106, 110, 114, 118, 122, 126, 126,
+                       126, 130, 134, 138, 142, 146, 150, 154,
+                       158, 162, 166, 170, 174, 178, 182, 186,
+                       190, 194, 198, 202, 206, 210, 214, 218,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219, 219, 219, 219, 219, 219, 219, 219,
+                       219,
+               },
+               {       /* Fourth byte table 4. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       12,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,
+               },
+               {       /* Fourth byte table 5. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   4,   8,   12,
+                       14,  16,  18,  20,  22,  24,  28,  32,
+                       36,  40,  44,  48,  52,  56,  62,  68,
+                       74,  80,  86,  92,  98,  104, 104, 110,
+                       116, 122, 128, 133, 138, 138, 138, 142,
+                       146, 150, 154, 158, 162, 168, 174, 179,
+                       184, 188, 190, 192, 194, 198, 202, 202,
+                       202, 206, 210, 216, 222, 227, 232, 237,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242, 242, 242, 242, 242, 242, 242, 242,
+                       242,
+               },
+               {       /* Fourth byte table 6. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  68,  72,  76,  80,  84,  88,  92,
+                       96,  100, 104, 108, 112, 112, 112, 116,
+                       120, 120, 120, 120, 120, 120, 120, 124,
+                       128, 132, 136, 142, 148, 154, 160, 164,
+                       168, 174, 180, 184, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188, 188, 188, 188, 188, 188, 188, 188,
+                       188,
+               },
+               {       /* Fourth byte table 7. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   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,   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,   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,   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,
+                       0,   1,   3,   4,   5,   7,   9,   11,
+                       12,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,
+               },
+               {       /* Fourth byte table 8. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  18,
+                       18,  20,  21,  22,  23,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,
+               },
+               {       /* Fourth byte table 9. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   6,   9,   14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  17,  17,  17,
+                       17,  17,  17,  20,  20,  20,  20,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,
+               },
+               {       /* Fourth byte table 10. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   3,   14,  19,
+                       22,  27,  32,  37,  37,  42,  42,  47,
+                       52,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  64,  69,  74,  79,  84,
+                       89,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 11. */
+                       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,   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,   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,   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,   5,   10,  15,  20,  25,
+                       25,  27,  29,  31,  41,  51,  53,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  57,  59,  61,  61,  63,  65,  65,
+                       65,  65,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,  67,  67,  67,  67,  67,  67,  67,
+                       67,
+               },
+               {       /* Fourth byte table 12. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   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,   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,   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,   5,   10,  10,  15,  15,  15,  15,
+                       20,  20,  20,  20,  20,  25,  30,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  40,  40,  40,  40,  40,  40,
+                       40,  40,  40,  40,  40,  40,  40,  40,
+                       40,  40,  40,  40,  40,  40,  40,  40,
+                       40,  40,  40,  40,  40,  40,  40,  40,
+                       40,  40,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,
+               },
+               {       /* Fourth byte table 13. */
+                       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,   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,   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,   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,   5,   10,  10,  15,  15,  15,  15,
+                       20,  20,  20,  20,  20,  25,  30,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  40,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,
+               },
+               {       /* Fourth byte table 14. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   5,   10,  10,  10,  10,  10,
+                       10,  10,  10,  10,  10,  10,  10,  10,
+                       10,  15,  20,  25,  30,  30,  30,  35,
+                       40,  40,  40,  45,  50,  55,  60,  65,
+                       70,  70,  70,  75,  80,  85,  90,  95,
+                       100, 100, 100, 105, 110, 115, 120, 125,
+                       130, 135, 140, 145, 150, 155, 160, 160,
+                       160, 165, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170, 170, 170, 170, 170, 170, 170, 170,
+                       170,
+               },
+               {       /* Fourth byte table 15. */
+                       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,   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,   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,   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,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,   4,   4,   4,   4,   4,   4,   4,
+                       4,
+               },
+               {       /* Fourth byte table 16. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   5,   10,  15,  20,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,
+               },
+               {       /* Fourth byte table 17. */
+                       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,   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,   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,   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,   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,   4,   8,
+                       12,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,
+               },
+               {       /* Fourth byte table 18. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   5,   5,   10,  10,  10,  10,  10,
+                       10,  10,  10,  10,  10,  10,  10,  10,
+                       10,  10,  10,  10,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,
+               },
+               {       /* Fourth byte table 19. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   7,   7,   7,   7,   7,   7,
+                       7,   7,   14,  14,  14,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 20. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   7,   14,  21,  28,  35,  42,  49,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,
+               },
+               {       /* Fourth byte table 21. */
+                       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,   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,   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,   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,   7,   14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  21,  28,  28,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,
+               },
+               {       /* Fourth byte table 22. */
+                       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,   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,   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,   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,   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,   7,   7,   7,   14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,
+               },
+               {       /* Fourth byte table 23. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   7,   14,  21,  21,  21,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,
+               },
+               {       /* Fourth byte table 24. */
+                       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,   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,   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,   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,   7,   7,   7,   14,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  28,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,
+               },
+               {       /* Fourth byte table 25. */
+                       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,   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,   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,   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,   0,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,
+               },
+               {       /* Fourth byte table 26. */
+                       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,   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,   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,   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,   7,   14,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 27. */
+                       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,   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,   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,   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,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,
+               },
+               {       /* Fourth byte table 28. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   7,   7,   7,   7,   7,   7,   7,
+                       14,  21,  21,  28,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,
+               },
+               {       /* Fourth byte table 29. */
+                       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,   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,   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,   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,   7,   14,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 30. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   7,   7,   14,  24,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,  31,  31,  31,  31,  31,  31,  31,
+                       31,
+               },
+               {       /* Fourth byte table 31. */
+                       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,   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,   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,   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,   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,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,
+               },
+               {       /* Fourth byte table 32. */
+                       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,   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,   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,   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,   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,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,
+               },
+               {       /* Fourth byte table 33. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   6,   12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,
+               },
+               {       /* Fourth byte table 34. */
+                       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,   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,   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,   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,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 35. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   14,  14,
+                       14,  14,  14,  21,  21,  21,  21,  21,
+                       28,  28,  28,  28,  28,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  49,  49,  56,  63,
+                       72,  79,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,
+               },
+               {       /* Fourth byte table 36. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  21,  21,
+                       21,  21,  21,  28,  28,  28,  28,  28,
+                       35,  35,  35,  35,  35,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,  49,  49,  49,  49,  49,  49,  49,
+                       49,
+               },
+               {       /* Fourth byte table 37. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,   7,   7,   7,   7,   7,   7,   7,
+                       7,
+               },
+               {       /* Fourth byte table 38. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   0,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 39. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   7,
+                       7,   14,  14,  21,  21,  28,  28,  35,
+                       35,  35,  35,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  49,  49,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,
+               },
+               {       /* Fourth byte table 40. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   7,   14,  14,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 41. */
+                       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,   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,   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,   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,   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,   1,   3,   4,
+                       4,   5,   6,   8,   9,   10,  11,  12,
+                       13,  14,  15,  16,  16,  17,  19,  20,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 42. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   6,   8,   11,
+                       12,  13,  14,  16,  18,  20,  21,  21,
+                       22,  23,  25,  26,  28,  31,  34,  35,
+                       36,  37,  40,  42,  43,  46,  48,  50,
+                       52,  54,  56,  57,  58,  59,  60,  62,
+                       64,  66,  68,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,
+               },
+               {       /* Fourth byte table 43. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   2,   3,   5,   7,
+                       9,   10,  12,  14,  16,  18,  20,  22,
+                       25,  27,  29,  32,  34,  36,  38,  40,
+                       42,  44,  46,  48,  50,  52,  54,  56,
+                       58,  61,  63,  65,  66,  68,  70,  72,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,
+               },
+               {       /* Fourth byte table 44. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   6,   12,  13,  14,  15,  16,  17,
+                       18,  19,  20,  21,  21,  21,  21,  21,
+                       21,  21,  24,  24,  24,  24,  24,  24,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  28,  30,  33,
+                       33,  33,  33,  33,  33,  33,  33,  33,
+                       34,  34,  34,  34,  40,  49,  49,  55,
+                       64,  64,  64,  64,  64,  66,  66,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,  69,  69,  69,  69,  69,  69,  69,
+                       69,
+               },
+               {       /* Fourth byte table 45. */
+                       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,   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,   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,   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,
+                       2,   4,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  19,  19,
+                       19,  20,  21,  21,  21,  22,  23,  24,
+                       25,  26,  27,  28,  31,  32,  33,  34,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,  35,  35,  35,  35,  35,  35,  35,
+                       35,
+               },
+               {       /* Fourth byte table 46. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  14,  15,  16,  17,
+                       17,  18,  19,  20,  21,  23,  23,  23,
+                       23,  23,  23,  23,  23,  23,  23,  23,
+                       23,  23,  23,  23,  23,  23,  23,  23,
+                       23,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,  25,  25,  25,  25,  25,  25,  25,
+                       25,
+               },
+               {       /* Fourth byte table 47. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   7,   10,  10,  13,  16,
+                       18,  18,  21,  22,  23,  24,  25,  26,
+                       28,  29,  30,  31,  32,  32,  33,  35,
+                       35,  35,  36,  37,  38,  39,  40,  40,
+                       40,  42,  45,  47,  47,  48,  48,  51,
+                       51,  52,  52,  54,  58,  59,  60,  60,
+                       61,  62,  63,  63,  64,  65,  67,  69,
+                       71,  73,  74,  74,  77,  79,  81,  83,
+                       85,  85,  85,  85,  85,  85,  85,  85,
+                       85,  85,  85,  85,  85,  85,  85,  85,
+                       85,  85,  85,  85,  85,  85,  85,  85,
+                       85,  85,  85,  85,  85,  85,  85,  85,
+                       85,  85,  85,  85,  85,  85,  85,  85,
+                       85,  85,  85,  85,  85,  85,  85,  85,
+                       85,  85,  85,  85,  85,  85,  85,  85,
+                       85,  85,  85,  85,  85,  85,  85,  85,
+                       85,
+               },
+               {       /* Fourth byte table 48. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   3,   3,   3,   4,   5,
+                       6,   7,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   13,  18,  23,  28,
+                       33,  38,  43,  48,  53,  58,  63,  68,
+                       72,  73,  75,  78,  80,  81,  83,  86,
+                       90,  92,  93,  95,  98,  99,  100, 101,
+                       102, 103, 105, 108, 110, 111, 113, 116,
+                       120, 122, 123, 125, 128, 129, 130, 131,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132, 132, 132, 132, 132, 132, 132, 132,
+                       132,
+               },
+               {       /* Fourth byte table 49. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   6,   12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,
+               },
+               {       /* Fourth byte table 50. */
+                       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,   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,   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,   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,   6,   12,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,
+               },
+               {       /* Fourth byte table 51. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   6,   6,   6,
+                       6,   6,   12,  12,  12,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  24,  24,  30,
+                       30,  30,  30,  30,  30,  36,  45,  45,
+                       51,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,
+               },
+               {       /* Fourth byte table 52. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   6,   6,   6,   12,  12,  12,
+                       18,  18,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  28,  28,  34,  34,  34,  34,  34,
+                       34,  34,  34,  34,  34,  34,  40,  44,
+                       48,  54,  60,  60,  60,  66,  72,  72,
+                       72,  78,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,
+               },
+               {       /* Fourth byte table 53. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   6,   12,  12,  12,  18,  24,  24,
+                       24,  30,  36,  36,  36,  36,  36,  36,
+                       36,  36,  36,  36,  36,  36,  36,  36,
+                       36,  36,  36,  36,  36,  36,  36,  36,
+                       36,  36,  36,  36,  36,  36,  36,  36,
+                       36,  36,  36,  36,  36,  42,  48,  54,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,
+               },
+               {       /* Fourth byte table 54. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   6,   12,  18,  24,  24,  24,  24,
+                       24,  24,  24,  30,  36,  42,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,
+               },
+               {       /* Fourth byte table 55. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   4,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,
+               },
+               {       /* Fourth byte table 56. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   11,  13,  15,  17,  19,  21,
+                       23,  25,  27,  29,  31,  34,  37,  40,
+                       43,  46,  49,  52,  55,  58,  62,  66,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,
+               },
+               {       /* Fourth byte table 57. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       48,  50,  53,  56,  59,  62,  65,  68,
+                       71,  74,  77,  80,  83,  86,  89,  92,
+                       95,  98,  101, 104, 107, 110, 113, 116,
+                       119, 122, 125, 128, 131, 134, 137, 140,
+                       143, 146, 149, 152, 155, 158, 161, 162,
+                       163, 164, 165, 166, 167, 168, 169, 170,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171,
+               },
+               {       /* Fourth byte table 58. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,  43,  43,  43,  43,  43,  43,  43,
+                       43,
+               },
+               {       /* Fourth byte table 59. */
+                       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,   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,   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,   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,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,
+               },
+               {       /* Fourth byte table 60. */
+                       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,   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,   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,   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,   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,   3,   5,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,
+               },
+               {       /* Fourth byte table 61. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,   6,   6,   6,   6,   6,   6,   6,
+                       6,
+               },
+               {       /* Fourth byte table 62. */
+                       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,   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,   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,   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,   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,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 63. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 64. */
+                       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,   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,   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,   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,   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,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 65. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 150, 153, 156, 159, 162, 165,
+                       168, 171, 174, 177, 180, 183, 186, 189,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192,
+               },
+               {       /* Fourth byte table 66. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 150, 153, 156, 159, 162, 165,
+                       168, 171, 174, 177, 180, 183, 186, 189,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192,
+               },
+               {       /* Fourth byte table 67. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 150, 153, 156, 159, 162, 165,
+                       168, 171, 174, 177, 180, 183, 186, 189,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192,
+               },
+               {       /* Fourth byte table 68. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,
+               },
+               {       /* Fourth byte table 69. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   1,
+                       1,   1,   1,   1,   1,   1,   1,   4,
+                       4,   7,   10,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,
+               },
+               {       /* Fourth byte table 70. */
+                       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,   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,   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,   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,   7,   7,   14,
+                       14,  21,  21,  28,  28,  35,  35,  42,
+                       42,  49,  49,  56,  56,  63,  63,  70,
+                       70,  77,  77,  84,  84,  84,  91,  91,
+                       98,  98,  105, 105, 105, 105, 105, 105,
+                       105, 112, 119, 119, 126, 133, 133, 140,
+                       147, 147, 154, 161, 161, 168, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175, 175, 175, 175, 175, 175, 175, 175,
+                       175,
+               },
+               {       /* Fourth byte table 71. */
+                       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,   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,   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,   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,   0,   7,   7,   7,
+                       7,   7,   7,   7,   11,  15,  15,  22,
+                       28,  28,  28,  28,  28,  28,  28,  28,
+                       28,  28,  28,  28,  28,  35,  35,  42,
+                       42,  49,  49,  56,  56,  63,  63,  70,
+                       70,  77,  77,  84,  84,  91,  91,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,  98,  98,  98,  98,  98,  98,  98,
+                       98,
+               },
+               {       /* Fourth byte table 72. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   7,   7,   14,  14,  14,  21,  21,
+                       28,  28,  35,  35,  35,  35,  35,  35,
+                       35,  42,  49,  49,  56,  63,  63,  70,
+                       77,  77,  84,  91,  91,  98,  105, 105,
+                       105, 105, 105, 105, 105, 105, 105, 105,
+                       105, 105, 105, 105, 105, 105, 105, 105,
+                       105, 105, 105, 105, 105, 112, 112, 112,
+                       119, 126, 133, 140, 140, 140, 140, 147,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153, 153, 153, 153, 153, 153, 153, 153,
+                       153,
+               },
+               {       /* Fourth byte table 73. */
+                       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,   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,   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,   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,   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,   3,   6,   9,   12,  15,  18,
+                       21,  24,  27,  30,  33,  36,  39,  42,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,  45,  45,  45,  45,  45,  45,  45,
+                       45,
+               },
+               {       /* Fourth byte table 74. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 150, 153, 156, 159, 162, 165,
+                       168, 171, 174, 177, 180, 183, 186, 189,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192, 192, 192, 192, 192, 192, 192, 192,
+                       192,
+               },
+               {       /* Fourth byte table 75. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       45,  45,  45,  48,  51,  54,  57,  60,
+                       63,  66,  69,  72,  75,  78,  81,  84,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,
+               },
+               {       /* Fourth byte table 76. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   5,   10,  15,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  23,  25,  27,  29,  31,  33,  35,
+                       37,  39,  41,  43,  45,  47,  49,  51,
+                       53,  56,  59,  62,  65,  68,  71,  74,
+                       77,  80,  83,  86,  89,  92,  95,  101,
+                       107, 113, 119, 125, 131, 137, 143, 149,
+                       155, 161, 167, 173, 179, 194, 206, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212, 212, 212, 212, 212, 212, 212, 212,
+                       212,
+               },
+               {       /* Fourth byte table 77. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 149, 151, 153, 155, 157, 159,
+                       161, 163, 165, 167, 169, 171, 173, 175,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177, 177, 177, 177, 177, 177, 177, 177,
+                       177,
+               },
+               {       /* Fourth byte table 78. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  41,  46,  51,  53,  56,  58,
+                       61,  64,  67,  70,  73,  76,  79,  82,
+                       85,  88,  91,  94,  97,  100, 103, 106,
+                       109, 112, 115, 118, 121, 124, 127, 130,
+                       133, 136, 139, 142, 145, 148, 151, 154,
+                       157, 160, 163, 166, 169, 172, 175, 178,
+                       181, 184, 187, 190, 193, 196, 199, 202,
+                       202, 202, 202, 202, 202, 202, 202, 202,
+                       202, 202, 202, 202, 202, 202, 202, 202,
+                       202, 202, 202, 202, 202, 202, 202, 202,
+                       202, 202, 202, 202, 202, 202, 202, 202,
+                       202, 202, 202, 202, 202, 202, 202, 202,
+                       202, 202, 202, 202, 202, 202, 202, 202,
+                       202, 202, 202, 202, 202, 202, 202, 202,
+                       202, 202, 202, 202, 202, 202, 202, 202,
+                       202,
+               },
+               {       /* Fourth byte table 79. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   7,   9,   11,  13,  15,
+                       17,  20,  24,  26,  28,  31,  34,  36,
+                       38,  40,  43,  46,  49,  52,  55,  57,
+                       59,  61,  63,  65,  68,  70,  72,  74,
+                       77,  80,  82,  85,  88,  91,  93,  96,
+                       101, 107, 109, 112, 115, 118, 121, 128,
+                       136, 138, 140, 143, 145, 147, 149, 152,
+                       154, 156, 158, 160, 162, 165, 167, 169,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171, 171, 171, 171, 171, 171, 171, 171,
+                       171,
+               },
+               {       /* Fourth byte table 80. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   10,  12,  14,  16,  22,
+                       25,  27,  29,  31,  33,  35,  37,  39,
+                       41,  43,  45,  48,  50,  52,  55,  58,
+                       60,  64,  67,  69,  71,  73,  75,  80,
+                       85,  89,  93,  97,  101, 105, 109, 113,
+                       117, 121, 126, 131, 136, 141, 146, 151,
+                       156, 161, 166, 171, 176, 181, 186, 191,
+                       196, 201, 206, 211, 216, 221, 226, 231,
+                       234, 234, 234, 234, 234, 234, 234, 234,
+                       234, 234, 234, 234, 234, 234, 234, 234,
+                       234, 234, 234, 234, 234, 234, 234, 234,
+                       234, 234, 234, 234, 234, 234, 234, 234,
+                       234, 234, 234, 234, 234, 234, 234, 234,
+                       234, 234, 234, 234, 234, 234, 234, 234,
+                       234, 234, 234, 234, 234, 234, 234, 234,
+                       234, 234, 234, 234, 234, 234, 234, 234,
+                       234,
+               },
+               {       /* Fourth byte table 81. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  56,
+                       56,  60,  60,  64,  64,  64,  68,  72,
+                       76,  80,  84,  88,  92,  96,  100, 104,
+                       104, 108, 108, 112, 112, 112, 116, 120,
+                       120, 120, 120, 124, 128, 132, 136, 136,
+                       136, 140, 144, 148, 152, 156, 160, 164,
+                       168, 172, 176, 180, 184, 188, 192, 196,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200, 200, 200, 200, 200, 200, 200, 200,
+                       200,
+               },
+               {       /* Fourth byte table 82. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  68,  72,  76,  80,  84,  88,  92,
+                       96,  100, 104, 108, 112, 116, 120, 124,
+                       128, 132, 136, 140, 144, 148, 152, 156,
+                       160, 164, 168, 172, 172, 172, 172, 172,
+                       172, 176, 180, 184, 188, 192, 196, 200,
+                       204, 208, 212, 216, 220, 224, 228, 232,
+                       236, 236, 236, 236, 236, 236, 236, 236,
+                       236, 236, 236, 236, 236, 236, 236, 236,
+                       236, 236, 236, 236, 236, 236, 236, 236,
+                       236, 236, 236, 236, 236, 236, 236, 236,
+                       236, 236, 236, 236, 236, 236, 236, 236,
+                       236, 236, 236, 236, 236, 236, 236, 236,
+                       236, 236, 236, 236, 236, 236, 236, 236,
+                       236, 236, 236, 236, 236, 236, 236, 236,
+                       236,
+               },
+               {       /* Fourth byte table 83. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       65,  70,  75,  79,  83,  87,  92,  97,
+                       102, 106, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110, 110, 110, 110, 110, 110, 110, 110,
+                       110,
+               },
+               {       /* Fourth byte table 84. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   9,   12,  14,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  20,  24,  28,  32,
+                       36,  36,  36,  36,  36,  36,  41,  41,
+                       46,  48,  50,  52,  54,  56,  58,  60,
+                       62,  64,  65,  70,  75,  82,  89,  94,
+                       99,  104, 109, 114, 119, 124, 129, 134,
+                       134, 139, 144, 149, 154, 159, 159, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164,
+               },
+               {       /* Fourth byte table 85. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   5,   10,  10,  15,  20,  20,  25,
+                       30,  35,  40,  45,  50,  55,  60,  65,
+                       69,  71,  73,  75,  77,  79,  81,  83,
+                       85,  87,  89,  91,  93,  95,  97,  99,
+                       101, 103, 105, 107, 109, 111, 113, 115,
+                       117, 119, 121, 123, 125, 127, 129, 131,
+                       133, 135, 137, 139, 141, 143, 145, 147,
+                       149, 151, 153, 155, 157, 159, 161, 163,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165, 165, 165, 165, 165, 165, 165, 165,
+                       165,
+               },
+               {       /* Fourth byte table 86. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       48,  50,  52,  54,  56,  58,  60,  62,
+                       64,  66,  68,  70,  72,  76,  80,  82,
+                       84,  86,  88,  90,  92,  94,  96,  98,
+                       100, 104, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108, 108, 108, 108, 108, 108, 108, 108,
+                       108,
+               },
+               {       /* Fourth byte table 87. */
+                       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,   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,   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,   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,   2,   4,   6,   8,
+                       10,  12,  14,  16,  18,  20,  24,  26,
+                       28,  30,  32,  34,  36,  38,  40,  42,
+                       44,  46,  48,  54,  60,  66,  72,  78,
+                       84,  90,  96,  102, 108, 114, 120, 126,
+                       132, 138, 144, 150, 156, 158, 160, 162,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164, 164, 164, 164, 164, 164, 164, 164,
+                       164,
+               },
+               {       /* Fourth byte table 88. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  68,  72,  76,  80,  84,  88,  92,
+                       96,  100, 104, 108, 112, 116, 120, 124,
+                       128, 132, 136, 140, 144, 148, 152, 156,
+                       160, 164, 168, 172, 176, 180, 184, 188,
+                       192, 196, 200, 204, 208, 212, 216, 220,
+                       224, 228, 232, 236, 240, 244, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248, 248, 248, 248, 248, 248, 248, 248,
+                       248,
+               },
+               {       /* Fourth byte table 89. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   6,   12,  18,  24,  30,  36,  42,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  54,  60,  68,  76,  84,  92,  100,
+                       108, 116, 122, 155, 170, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178, 178, 178, 178, 178, 178, 178, 178,
+                       178,
+               },
+               {       /* Fourth byte table 90. */
+                       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,   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,   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,   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,   1,   4,   7,   8,   9,   10,  11,
+                       14,  17,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  22,  25,  28,  29,  30,  31,  32,
+                       33,  34,  37,  40,  43,  46,  49,  52,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,  55,  55,  55,  55,  55,  55,  55,
+                       55,
+               },
+               {       /* Fourth byte table 91. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  15,  15,
+                       16,  17,  20,  23,  26,  29,  30,  31,
+                       32,  33,  36,  37,  37,  38,  39,  40,
+                       41,  44,  45,  46,  47,  48,  51,  54,
+                       55,  56,  57,  58,  59,  60,  61,  62,
+                       62,  63,  64,  65,  66,  66,  66,  66,
+                       66,  69,  73,  76,  76,  79,  79,  82,
+                       86,  89,  93,  96,  100, 103, 107, 110,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114,
+               },
+               {       /* Fourth byte table 92. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   6,   10,  14,  18,  22,  26,
+                       30,  34,  38,  42,  46,  50,  52,  54,
+                       56,  58,  60,  62,  64,  66,  68,  70,
+                       72,  74,  76,  78,  80,  82,  84,  86,
+                       88,  90,  92,  94,  96,  98,  100, 102,
+                       104, 106, 108, 110, 112, 114, 116, 118,
+                       120, 122, 124, 126, 128, 130, 132, 134,
+                       136, 138, 140, 142, 144, 146, 148, 150,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152,
+               },
+               {       /* Fourth byte table 93. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       48,  50,  52,  54,  56,  58,  60,  62,
+                       64,  66,  68,  70,  72,  74,  76,  78,
+                       80,  82,  84,  86,  88,  90,  92,  94,
+                       96,  98,  100, 102, 104, 106, 112, 118,
+                       124, 130, 136, 142, 146, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150, 150, 150, 150, 150, 150, 150, 150,
+                       150,
+               },
+               {       /* Fourth byte table 94. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   1,   2,   3,   4,   5,   6,
+                       7,   8,   9,   10,  11,  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,  40,  41,  42,  43,  44,  45,  46,
+                       47,  48,  49,  50,  51,  52,  53,  54,
+                       55,  56,  57,  58,  59,  60,  61,  62,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,
+               },
+               {       /* Fourth byte table 95. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  12,  13,  14,  15,
+                       16,  17,  18,  19,  20,  21,  22,  23,
+                       24,  25,  26,  27,  28,  29,  30,  31,
+                       34,  37,  40,  43,  46,  49,  52,  55,
+                       58,  61,  64,  67,  70,  73,  76,  79,
+                       82,  85,  88,  91,  94,  97,  100, 103,
+                       106, 109, 112, 115, 118, 121, 124, 127,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130,
+               },
+               {       /* Fourth byte table 96. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       144, 147, 150, 153, 156, 159, 162, 165,
+                       168, 171, 174, 177, 180, 183, 186, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189, 189, 189, 189, 189, 189, 189, 189,
+                       189,
+               },
+               {       /* Fourth byte table 97. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   3,   6,   9,   12,  15,
+                       18,  18,  18,  21,  24,  27,  30,  33,
+                       36,  36,  36,  39,  42,  45,  48,  51,
+                       54,  54,  54,  57,  60,  63,  63,  63,
+                       63,  65,  67,  69,  72,  74,  76,  79,
+                       79,  82,  85,  88,  91,  94,  97,  100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100, 100, 100, 100, 100, 100, 100, 100,
+                       100,
+               },
+               {       /* Fourth byte table 98. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   9,
+                       18,  31,  44,  57,  70,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,
+               },
+               {       /* Fourth byte table 99. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   9,   18,  31,  44,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,
+               },
+               {       /* Fourth byte table 100. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,  13,  13,  13,  13,  13,  13,  13,
+                       13,
+               },
+               {       /* Fourth byte table 101. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  51,  52,  53,  54,  55,
+                       56,  57,  58,  59,  60,  61,  62,  63,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 102. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  12,  13,  14,  15,
+                       16,  17,  18,  19,  20,  21,  21,  22,
+                       23,  24,  25,  26,  27,  28,  29,  30,
+                       31,  32,  33,  34,  35,  36,  37,  38,
+                       39,  40,  41,  42,  43,  44,  45,  46,
+                       47,  48,  49,  50,  51,  52,  53,  54,
+                       55,  56,  57,  58,  59,  60,  61,  62,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,
+               },
+               {       /* Fourth byte table 103. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  12,  13,  14,  15,
+                       16,  17,  18,  19,  20,  21,  22,  23,
+                       24,  25,  26,  27,  28,  29,  29,  30,
+                       31,  31,  31,  32,  32,  32,  33,  34,
+                       34,  34,  35,  36,  37,  38,  38,  39,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  50,  51,  51,  52,  53,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,
+               },
+               {       /* Fourth byte table 104. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   4,   5,   6,
+                       7,   8,   9,   10,  11,  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,  40,  41,  42,  43,  44,  45,  46,
+                       47,  48,  49,  50,  51,  52,  53,  54,
+                       55,  56,  57,  58,  59,  60,  61,  62,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,
+               },
+               {       /* Fourth byte table 105. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   6,
+                       7,   8,   9,   10,  10,  10,  11,  12,
+                       13,  14,  15,  16,  17,  18,  18,  19,
+                       20,  21,  22,  23,  24,  25,  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,  53,  53,  54,  55,  56,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,
+               },
+               {       /* Fourth byte table 106. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   5,   6,
+                       6,   6,   6,   7,   8,   9,   10,  11,
+                       12,  13,  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,  40,  41,  42,
+                       43,  44,  45,  46,  47,  48,  49,  50,
+                       51,  52,  53,  54,  55,  56,  57,  58,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,  59,  59,  59,  59,  59,  59,  59,
+                       59,
+               },
+               {       /* Fourth byte table 107. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  51,  52,  53,  54,  55,
+                       56,  57,  58,  59,  60,  61,  62,  63,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 108. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  51,  52,  53,  54,  55,
+                       56,  57,  58,  59,  60,  61,  62,  63,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 109. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  51,  52,  53,  54,  55,
+                       56,  57,  58,  59,  60,  61,  62,  63,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 110. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,
+                       40,  41,  42,  43,  44,  45,  46,  47,
+                       48,  49,  50,  51,  52,  53,  54,  55,
+                       56,  57,  58,  59,  60,  61,  62,  63,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 111. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   1,   2,   3,   4,   5,   6,   7,
+                       8,   9,   10,  11,  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,  38,  40,  40,
+                       40,  42,  44,  46,  48,  50,  52,  54,
+                       56,  58,  60,  62,  64,  66,  68,  70,
+                       72,  74,  76,  78,  80,  82,  84,  86,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,  88,  88,  88,  88,  88,  88,  88,
+                       88,
+               },
+               {       /* Fourth byte table 112. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   5,   7,   9,   11,  13,  15,
+                       17,  19,  21,  23,  25,  27,  29,  31,
+                       33,  35,  37,  39,  41,  43,  45,  47,
+                       49,  51,  53,  55,  58,  60,  62,  64,
+                       66,  68,  70,  72,  74,  76,  78,  80,
+                       82,  84,  86,  88,  90,  92,  94,  96,
+                       98,  100, 102, 104, 106, 108, 110, 112,
+                       114, 116, 118, 120, 123, 125, 127, 129,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131, 131, 131, 131, 131, 131, 131, 131,
+                       131,
+               },
+               {       /* Fourth byte table 113. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  45,  47,
+                       49,  51,  53,  55,  57,  59,  61,  63,
+                       65,  67,  69,  71,  73,  75,  77,  79,
+                       81,  83,  85,  87,  89,  91,  93,  95,
+                       97,  99,  101, 103, 105, 107, 110, 112,
+                       114, 116, 118, 120, 122, 124, 126, 128,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130,
+               },
+               {       /* Fourth byte table 114. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       33,  35,  37,  39,  41,  43,  45,  47,
+                       49,  51,  53,  55,  57,  59,  61,  63,
+                       65,  67,  69,  71,  73,  75,  77,  79,
+                       81,  83,  85,  87,  89,  91,  93,  95,
+                       98,  100, 102, 104, 106, 108, 110, 112,
+                       114, 116, 118, 120, 122, 124, 126, 128,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130,
+               },
+               {       /* Fourth byte table 115. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  21,  23,  25,  27,  29,  31,
+                       33,  35,  37,  39,  41,  43,  45,  47,
+                       49,  51,  53,  55,  57,  59,  61,  63,
+                       65,  67,  69,  71,  73,  75,  77,  79,
+                       81,  83,  86,  88,  90,  92,  94,  96,
+                       98,  100, 102, 104, 106, 108, 110, 112,
+                       114, 116, 118, 120, 122, 124, 126, 128,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130, 130, 130, 130, 130, 130, 130, 130,
+                       130,
+               },
+               {       /* Fourth byte table 116. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   9,   11,  13,  15,
+                       17,  19,  21,  23,  25,  25,  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,  53,  54,  55,  56,  57,  58,
+                       59,  60,  61,  62,  63,  64,  65,  66,
+                       67,  68,  69,  70,  71,  72,  73,  74,
+                       75,  75,  75,  75,  75,  75,  75,  75,
+                       75,  75,  75,  75,  75,  75,  75,  75,
+                       75,  75,  75,  75,  75,  75,  75,  75,
+                       75,  75,  75,  75,  75,  75,  75,  75,
+                       75,  75,  75,  75,  75,  75,  75,  75,
+                       75,  75,  75,  75,  75,  75,  75,  75,
+                       75,  75,  75,  75,  75,  75,  75,  75,
+                       75,  75,  75,  75,  75,  75,  75,  75,
+                       75,
+               },
+               {       /* Fourth byte table 117. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   9,   13,  17,  21,  25,  29,
+                       33,  37,  42,  46,  50,  54,  58,  62,
+                       66,  71,  75,  80,  85,  90,  94,  98,
+                       102, 106, 110, 114, 118, 122, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127, 127, 127, 127, 127, 127, 127, 127,
+                       127,
+               },
+       },
+};
+
+static const uint16_t u8_decomp_b4_16bit_tbl[2][30][257] = {
+       {
+               {       /* Fourth byte 16-bit table 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,    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,    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,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   38,   44,   48,   52,   56,   60,   64,
+                       68,   72,   76,   80,   84,   90,   96,   102,
+                       108,  112,  116,  120,  124,  130,  136,  140,
+                       144,  148,  152,  156,  160,  164,  168,  172,
+                       176,  180,  184,  188,  192,  196,  200,  206,
+                       212,  216,  220,  224,  228,  232,  236,  240,
+                       244,  250,  256,  260,  264,  268,  272,  276,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,
+               },
+               {       /* Fourth byte 16-bit table 1. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   54,   60,   66,
+                       72,   78,   84,   90,   96,   100,  104,  108,
+                       112,  116,  120,  124,  128,  134,  140,  144,
+                       148,  152,  156,  160,  164,  170,  176,  182,
+                       188,  194,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  262,  268,  274,  280,  284,  288,  292,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,
+               },
+               {       /* Fourth byte 16-bit table 2. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  107,  116,  116,  116,  116,
+                       116,  120,  124,  128,  132,  138,  144,  150,
+                       156,  162,  168,  174,  180,  186,  192,  198,
+                       204,  210,  216,  222,  228,  234,  240,  246,
+                       252,  256,  260,  264,  268,  272,  276,  282,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,
+               },
+               {       /* Fourth byte 16-bit table 3. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    6,    12,   18,   24,   30,   36,   42,
+                       48,   52,   56,   60,   64,   68,   72,   76,
+                       80,   86,   92,   98,   104,  110,  116,  122,
+                       128,  134,  140,  146,  152,  158,  164,  170,
+                       176,  182,  188,  194,  200,  204,  208,  212,
+                       216,  222,  228,  234,  240,  246,  252,  258,
+                       264,  270,  276,  280,  284,  288,  292,  296,
+                       300,  304,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,
+               },
+               {       /* Fourth byte 16-bit table 4. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    5,    10,   17,   24,   31,   38,   45,
+                       52,   57,   62,   69,   76,   83,   90,   97,
+                       104,  109,  114,  121,  128,  135,  142,  142,
+                       142,  147,  152,  159,  166,  173,  180,  180,
+                       180,  185,  190,  197,  204,  211,  218,  225,
+                       232,  237,  242,  249,  256,  263,  270,  277,
+                       284,  289,  294,  301,  308,  315,  322,  329,
+                       336,  341,  346,  353,  360,  367,  374,  381,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,
+               },
+               {       /* Fourth byte 16-bit table 5. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    5,    10,   17,   24,   31,   38,   38,
+                       38,   43,   48,   55,   62,   69,   76,   76,
+                       76,   81,   86,   93,   100,  107,  114,  121,
+                       128,  128,  133,  133,  140,  140,  147,  147,
+                       154,  159,  164,  171,  178,  185,  192,  199,
+                       206,  211,  216,  223,  230,  237,  244,  251,
+                       258,  263,  268,  273,  278,  283,  288,  293,
+                       298,  303,  308,  313,  318,  323,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,
+               },
+               {       /* Fourth byte 16-bit table 6. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    7,    14,   23,   32,   41,   50,   59,
+                       68,   75,   82,   91,   100,  109,  118,  127,
+                       136,  143,  150,  159,  168,  177,  186,  195,
+                       204,  211,  218,  227,  236,  245,  254,  263,
+                       272,  279,  286,  295,  304,  313,  322,  331,
+                       340,  347,  354,  363,  372,  381,  390,  399,
+                       408,  413,  418,  425,  430,  437,  437,  442,
+                       449,  454,  459,  464,  469,  474,  477,  480,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,
+               },
+               {       /* Fourth byte 16-bit table 7. */
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    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,    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,    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,    3,    14,   21,   26,   33,   33,   38,
+                       45,   50,   55,   60,   65,   70,   82,   94,
+                       106,  111,  116,  123,  130,  130,  130,  135,
+                       142,  147,  152,  157,  162,  162,  174,  186,
+                       198,  203,  208,  215,  222,  227,  232,  237,
+                       244,  249,  254,  259,  264,  269,  280,  291,
+                       293,  293,  293,  300,  305,  312,  312,  317,
+                       324,  329,  334,  339,  344,  349,  356,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,
+               },
+               {       /* Fourth byte 16-bit table 8. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    5,    10,   15,   20,   25,   30,   35,
+                       40,   45,   50,   55,   60,   65,   70,   78,
+                       86,   94,   102,  110,  118,  126,  134,  142,
+                       150,  158,  166,  174,  182,  190,  190,  190,
+                       190,  195,  200,  205,  210,  215,  220,  225,
+                       230,  235,  240,  245,  250,  255,  260,  265,
+                       270,  275,  280,  285,  290,  295,  300,  305,
+                       310,  315,  320,  325,  330,  335,  340,  345,
+                       350,  350,  350,  350,  350,  350,  350,  350,
+                       350,  350,  350,  350,  350,  350,  350,  350,
+                       350,  350,  350,  350,  350,  350,  350,  350,
+                       350,  350,  350,  350,  350,  350,  350,  350,
+                       350,  350,  350,  350,  350,  350,  350,  350,
+                       350,  350,  350,  350,  350,  350,  350,  350,
+                       350,  350,  350,  350,  350,  350,  350,  350,
+                       350,  350,  350,  350,  350,  350,  350,  350,
+                       350,
+               },
+               {       /* Fourth byte 16-bit table 9. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    15,   27,   42,   51,   66,   75,   84,
+                       102,  114,  123,  132,  141,  153,  165,  177,
+                       189,  201,  213,  225,  243,  249,  267,  285,
+                       300,  312,  330,  348,  360,  369,  378,  390,
+                       402,  417,  432,  441,  450,  462,  471,  480,
+                       486,  492,  501,  510,  528,  540,  555,  573,
+                       585,  594,  603,  621,  633,  651,  660,  675,
+                       684,  696,  705,  717,  732,  744,  759,  771,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,
+               },
+               {       /* Fourth byte 16-bit table 10. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    15,   24,   33,   45,   54,   63,   72,
+                       87,   99,   105,  123,  132,  147,  159,  171,
+                       180,  189,  201,  207,  219,  234,  240,  258,
+                       267,  271,  275,  279,  283,  287,  291,  295,
+                       299,  303,  307,  312,  317,  322,  327,  332,
+                       337,  342,  347,  352,  357,  362,  367,  372,
+                       377,  382,  385,  387,  389,  392,  394,  396,
+                       396,  396,  396,  396,  402,  408,  414,  420,
+                       432,  432,  432,  432,  432,  432,  432,  432,
+                       432,  432,  432,  432,  432,  432,  432,  432,
+                       432,  432,  432,  432,  432,  432,  432,  432,
+                       432,  432,  432,  432,  432,  432,  432,  432,
+                       432,  432,  432,  432,  432,  432,  432,  432,
+                       432,  432,  432,  432,  432,  432,  432,  432,
+                       432,  432,  432,  432,  432,  432,  432,  432,
+                       432,  432,  432,  432,  432,  432,  432,  432,
+                       432,
+               },
+               {       /* Fourth byte 16-bit table 11. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       128,  132,  136,  140,  144,  148,  152,  156,
+                       160,  164,  168,  172,  176,  180,  184,  188,
+                       192,  196,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,
+               },
+               {       /* Fourth byte 16-bit table 12. */
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    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,    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,    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,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       128,  132,  136,  140,  144,  148,  152,  156,
+                       160,  164,  168,  172,  176,  180,  184,  188,
+                       192,  196,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,
+               },
+               {       /* Fourth byte 16-bit table 13. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       128,  132,  136,  140,  144,  148,  152,  156,
+                       160,  164,  168,  172,  176,  180,  184,  188,
+                       192,  196,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,
+               },
+               {       /* Fourth byte 16-bit table 14. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       128,  132,  136,  140,  144,  148,  152,  156,
+                       160,  164,  168,  172,  176,  180,  184,  188,
+                       192,  196,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,
+               },
+               {       /* Fourth byte 16-bit table 15. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    6,    12,   18,   24,   30,   34,   38,
+                       42,   46,   50,   54,   58,   62,   66,   70,
+                       74,   78,   82,   86,   90,   94,   98,   102,
+                       106,  110,  114,  118,  122,  126,  130,  134,
+                       138,  142,  146,  150,  154,  158,  162,  166,
+                       170,  174,  178,  182,  186,  190,  194,  198,
+                       202,  206,  210,  214,  218,  222,  226,  230,
+                       234,  238,  242,  246,  250,  254,  258,  262,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,
+               },
+               {       /* Fourth byte 16-bit table 16. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  125,
+                       130,  135,  140,  145,  150,  156,  162,  168,
+                       174,  180,  186,  190,  194,  198,  202,  206,
+                       210,  214,  218,  222,  226,  230,  234,  238,
+                       242,  246,  250,  254,  258,  262,  266,  270,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,
+               },
+               {       /* Fourth byte 16-bit table 17. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       98,   104,  110,  116,  122,  126,  130,  134,
+                       138,  142,  146,  150,  154,  158,  162,  166,
+                       170,  174,  178,  182,  186,  190,  194,  198,
+                       202,  206,  210,  214,  218,  222,  226,  230,
+                       234,  238,  242,  246,  250,  254,  258,  262,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,
+               },
+               {       /* Fourth byte 16-bit table 18. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       130,  136,  140,  144,  148,  152,  156,  160,
+                       164,  168,  172,  176,  180,  184,  188,  192,
+                       196,  200,  204,  210,  216,  222,  226,  230,
+                       234,  238,  242,  246,  250,  254,  258,  262,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,
+               },
+               {       /* Fourth byte 16-bit table 19. */
+                       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,    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,    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,    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,    6,    12,   18,   24,   30,   36,   42,
+                       48,   54,   60,   66,   72,   78,   84,   90,
+                       96,   102,  108,  114,  120,  126,  132,  138,
+                       144,  150,  156,  162,  168,  174,  180,  186,
+                       192,  198,  204,  210,  216,  222,  228,  234,
+                       240,  246,  252,  258,  264,  270,  276,  282,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,
+               },
+               {       /* Fourth byte 16-bit table 20. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    6,    12,   18,   24,   30,   36,   42,
+                       48,   54,   60,   66,   72,   78,   84,   90,
+                       96,   96,   96,   102,  108,  114,  120,  126,
+                       132,  138,  144,  150,  156,  162,  168,  174,
+                       180,  186,  192,  198,  204,  210,  216,  222,
+                       228,  234,  240,  246,  252,  258,  264,  270,
+                       276,  282,  288,  294,  300,  306,  312,  318,
+                       324,  330,  336,  342,  348,  354,  360,  366,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,
+               },
+               {       /* Fourth byte 16-bit table 21. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   17,   21,   25,   29,
+                       33,   37,   41,   45,   49,   53,   58,   62,
+                       66,   70,   74,   79,   83,   87,   91,   96,
+                       100,  104,  108,  112,  116,  121,  125,  129,
+                       133,  137,  141,  145,  149,  153,  157,  161,
+                       165,  169,  173,  177,  181,  185,  189,  193,
+                       197,  201,  205,  209,  213,  218,  222,  226,
+                       230,  235,  239,  243,  247,  251,  255,  259,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,
+               },
+               {       /* Fourth byte 16-bit table 22. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  105,  109,  113,  117,  121,  125,
+                       129,  134,  139,  143,  147,  151,  155,  159,
+                       163,  167,  171,  175,  179,  184,  188,  192,
+                       196,  200,  205,  209,  213,  217,  221,  225,
+                       229,  233,  237,  241,  246,  250,  255,  259,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,
+               },
+               {       /* Fourth byte 16-bit table 23. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   41,   45,   49,   53,   57,   61,
+                       66,   70,   75,   80,   84,   88,   92,   96,
+                       101,  106,  110,  114,  118,  122,  126,  130,
+                       134,  138,  142,  146,  150,  155,  159,  163,
+                       167,  171,  175,  179,  183,  187,  191,  195,
+                       199,  203,  207,  211,  215,  219,  223,  227,
+                       231,  236,  240,  244,  248,  252,  256,  261,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,
+               },
+               {       /* Fourth byte 16-bit table 24. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   45,   49,   53,   57,   61,
+                       65,   69,   73,   77,   81,   85,   89,   93,
+                       97,   101,  105,  109,  113,  117,  122,  126,
+                       130,  134,  138,  142,  147,  151,  155,  159,
+                       163,  167,  171,  175,  179,  184,  188,  192,
+                       196,  201,  205,  209,  213,  217,  221,  225,
+                       230,  235,  240,  244,  249,  253,  257,  261,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,
+               },
+               {       /* Fourth byte 16-bit table 25. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   29,
+                       33,   37,   41,   45,   49,   53,   58,   62,
+                       66,   71,   76,   80,   84,   88,   92,   96,
+                       100,  104,  108,  112,  117,  121,  126,  130,
+                       135,  139,  143,  147,  152,  156,  160,  165,
+                       170,  174,  178,  182,  186,  190,  194,  198,
+                       202,  206,  210,  214,  218,  222,  227,  231,
+                       236,  240,  245,  249,  254,  259,  264,  268,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,
+               },
+               {       /* Fourth byte 16-bit table 26. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    9,    14,   19,   24,   28,   32,
+                       36,   40,   44,   48,   52,   56,   61,   65,
+                       69,   73,   77,   82,   86,   91,   96,   100,
+                       104,  108,  112,  116,  120,  125,  130,  135,
+                       139,  143,  148,  152,  156,  160,  165,  169,
+                       173,  177,  181,  185,  190,  194,  198,  202,
+                       206,  210,  214,  219,  224,  228,  233,  237,
+                       242,  246,  250,  254,  259,  264,  268,  273,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,
+               },
+               {       /* Fourth byte 16-bit table 27. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    5,    9,    13,   17,   21,   25,   29,
+                       34,   39,   44,   49,   53,   57,   61,   65,
+                       69,   73,   77,   81,   85,   89,   93,   97,
+                       102,  106,  110,  114,  118,  122,  126,  130,
+                       134,  138,  142,  146,  150,  155,  160,  165,
+                       169,  173,  177,  181,  186,  190,  195,  199,
+                       203,  208,  213,  217,  221,  225,  229,  233,
+                       237,  241,  245,  249,  253,  257,  261,  265,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,
+               },
+               {       /* Fourth byte 16-bit table 28. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   25,   29,
+                       33,   37,   41,   45,   50,   55,   59,   63,
+                       67,   71,   75,   79,   84,   88,   92,   96,
+                       100,  105,  110,  114,  118,  122,  127,  131,
+                       135,  140,  145,  149,  153,  157,  162,  166,
+                       170,  174,  178,  182,  186,  190,  195,  199,
+                       203,  207,  212,  216,  220,  224,  228,  233,
+                       238,  242,  246,  250,  255,  259,  264,  268,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,
+               },
+               {       /* Fourth byte 16-bit table 29. */
+                       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,    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,    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,    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,    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,    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,    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,
+               },
+       },
+       {
+               {       /* Fourth byte 16-bit table 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,    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,    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,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   38,   44,   48,   52,   56,   60,   64,
+                       68,   72,   76,   80,   84,   90,   96,   102,
+                       108,  112,  116,  120,  124,  130,  136,  140,
+                       144,  148,  152,  156,  160,  164,  168,  172,
+                       176,  180,  184,  188,  192,  196,  200,  206,
+                       212,  216,  220,  224,  228,  232,  236,  240,
+                       244,  250,  256,  260,  264,  268,  272,  276,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,  280,  280,  280,  280,  280,  280,  280,
+                       280,
+               },
+               {       /* Fourth byte 16-bit table 1. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   54,   60,   66,
+                       72,   78,   84,   90,   96,   100,  104,  108,
+                       112,  116,  120,  124,  128,  134,  140,  144,
+                       148,  152,  156,  160,  164,  170,  176,  182,
+                       188,  194,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  262,  268,  274,  280,  284,  288,  292,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,  296,  296,  296,  296,  296,  296,  296,
+                       296,
+               },
+               {       /* Fourth byte 16-bit table 2. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  107,  116,  116,  116,  116,
+                       116,  120,  124,  128,  132,  138,  144,  150,
+                       156,  162,  168,  174,  180,  186,  192,  198,
+                       204,  210,  216,  222,  228,  234,  240,  246,
+                       252,  256,  260,  264,  268,  272,  276,  282,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,
+               },
+               {       /* Fourth byte 16-bit table 3. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    6,    12,   18,   24,   30,   36,   42,
+                       48,   52,   56,   60,   64,   68,   72,   76,
+                       80,   86,   92,   98,   104,  110,  116,  122,
+                       128,  134,  140,  146,  152,  158,  164,  170,
+                       176,  182,  188,  194,  200,  204,  208,  212,
+                       216,  222,  228,  234,  240,  246,  252,  258,
+                       264,  270,  276,  280,  284,  288,  292,  296,
+                       300,  304,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,  308,  308,  308,  308,  308,  308,  308,
+                       308,
+               },
+               {       /* Fourth byte 16-bit table 4. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    5,    10,   17,   24,   31,   38,   45,
+                       52,   57,   62,   69,   76,   83,   90,   97,
+                       104,  109,  114,  121,  128,  135,  142,  142,
+                       142,  147,  152,  159,  166,  173,  180,  180,
+                       180,  185,  190,  197,  204,  211,  218,  225,
+                       232,  237,  242,  249,  256,  263,  270,  277,
+                       284,  289,  294,  301,  308,  315,  322,  329,
+                       336,  341,  346,  353,  360,  367,  374,  381,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,  388,  388,  388,  388,  388,  388,  388,
+                       388,
+               },
+               {       /* Fourth byte 16-bit table 5. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    5,    10,   17,   24,   31,   38,   38,
+                       38,   43,   48,   55,   62,   69,   76,   76,
+                       76,   81,   86,   93,   100,  107,  114,  121,
+                       128,  128,  133,  133,  140,  140,  147,  147,
+                       154,  159,  164,  171,  178,  185,  192,  199,
+                       206,  211,  216,  223,  230,  237,  244,  251,
+                       258,  263,  268,  273,  278,  283,  288,  293,
+                       298,  303,  308,  313,  318,  323,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,  328,  328,  328,  328,  328,  328,  328,
+                       328,
+               },
+               {       /* Fourth byte 16-bit table 6. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    7,    14,   23,   32,   41,   50,   59,
+                       68,   75,   82,   91,   100,  109,  118,  127,
+                       136,  143,  150,  159,  168,  177,  186,  195,
+                       204,  211,  218,  227,  236,  245,  254,  263,
+                       272,  279,  286,  295,  304,  313,  322,  331,
+                       340,  347,  354,  363,  372,  381,  390,  399,
+                       408,  413,  418,  425,  430,  437,  437,  442,
+                       449,  454,  459,  464,  469,  474,  477,  480,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,  483,  483,  483,  483,  483,  483,  483,
+                       483,
+               },
+               {       /* Fourth byte 16-bit table 7. */
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    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,    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,    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,    3,    14,   21,   26,   33,   33,   38,
+                       45,   50,   55,   60,   65,   70,   82,   94,
+                       106,  111,  116,  123,  130,  130,  130,  135,
+                       142,  147,  152,  157,  162,  162,  174,  186,
+                       198,  203,  208,  215,  222,  227,  232,  237,
+                       244,  249,  254,  259,  264,  269,  280,  291,
+                       293,  293,  293,  300,  305,  312,  312,  317,
+                       324,  329,  334,  339,  344,  349,  356,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,  359,  359,  359,  359,  359,  359,  359,
+                       359,
+               },
+               {       /* Fourth byte 16-bit table 8. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    5,    10,   15,   20,   25,   30,   35,
+                       40,   45,   50,   55,   60,   65,   70,   78,
+                       86,   94,   102,  110,  118,  126,  134,  142,
+                       150,  158,  166,  174,  182,  190,  207,  221,
+                       221,  226,  231,  236,  241,  246,  251,  256,
+                       261,  266,  271,  276,  281,  286,  291,  296,
+                       301,  306,  311,  316,  321,  326,  331,  336,
+                       341,  346,  351,  356,  361,  366,  371,  376,
+                       381,  381,  381,  381,  381,  381,  381,  381,
+                       381,  381,  381,  381,  381,  381,  381,  381,
+                       381,  381,  381,  381,  381,  381,  381,  381,
+                       381,  381,  381,  381,  381,  381,  381,  381,
+                       381,  381,  381,  381,  381,  381,  381,  381,
+                       381,  381,  381,  381,  381,  381,  381,  381,
+                       381,  381,  381,  381,  381,  381,  381,  381,
+                       381,  381,  381,  381,  381,  381,  381,  381,
+                       381,
+               },
+               {       /* Fourth byte 16-bit table 9. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    15,   27,   42,   51,   66,   75,   84,
+                       102,  114,  123,  132,  141,  153,  165,  177,
+                       189,  201,  213,  225,  243,  249,  267,  285,
+                       300,  312,  330,  348,  360,  369,  378,  390,
+                       402,  417,  432,  441,  450,  462,  471,  480,
+                       486,  492,  501,  510,  528,  540,  555,  573,
+                       585,  594,  603,  621,  633,  651,  660,  675,
+                       684,  696,  705,  717,  732,  744,  759,  771,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,  777,  777,  777,  777,  777,  777,  777,
+                       777,
+               },
+               {       /* Fourth byte 16-bit table 10. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    15,   24,   33,   45,   54,   63,   72,
+                       87,   99,   105,  123,  132,  147,  159,  171,
+                       180,  189,  201,  207,  219,  234,  240,  258,
+                       267,  271,  275,  279,  283,  287,  291,  295,
+                       299,  303,  307,  312,  317,  322,  327,  332,
+                       337,  342,  347,  352,  357,  362,  367,  372,
+                       377,  382,  385,  387,  389,  392,  394,  396,
+                       398,  401,  404,  406,  412,  418,  424,  430,
+                       442,  442,  442,  442,  442,  442,  442,  442,
+                       442,  442,  442,  442,  442,  442,  442,  442,
+                       442,  442,  442,  442,  442,  442,  442,  442,
+                       442,  442,  442,  442,  442,  442,  442,  442,
+                       442,  442,  442,  442,  442,  442,  442,  442,
+                       442,  442,  442,  442,  442,  442,  442,  442,
+                       442,  442,  442,  442,  442,  442,  442,  442,
+                       442,  442,  442,  442,  442,  442,  442,  442,
+                       442,
+               },
+               {       /* Fourth byte 16-bit table 11. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       128,  132,  136,  140,  144,  148,  152,  156,
+                       160,  164,  168,  172,  176,  180,  184,  188,
+                       192,  196,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,
+               },
+               {       /* Fourth byte 16-bit table 12. */
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    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,    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,    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,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       128,  132,  136,  140,  144,  148,  152,  156,
+                       160,  164,  168,  172,  176,  180,  184,  188,
+                       192,  196,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,
+               },
+               {       /* Fourth byte 16-bit table 13. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       128,  132,  136,  140,  144,  148,  152,  156,
+                       160,  164,  168,  172,  176,  180,  184,  188,
+                       192,  196,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,
+               },
+               {       /* Fourth byte 16-bit table 14. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       128,  132,  136,  140,  144,  148,  152,  156,
+                       160,  164,  168,  172,  176,  180,  184,  188,
+                       192,  196,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,
+               },
+               {       /* Fourth byte 16-bit table 15. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       128,  132,  136,  140,  144,  148,  152,  156,
+                       160,  164,  168,  172,  176,  180,  184,  188,
+                       192,  196,  200,  204,  208,  212,  216,  220,
+                       224,  228,  232,  236,  240,  244,  248,  252,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,  256,  256,  256,  256,  256,  256,  256,
+                       256,
+               },
+               {       /* Fourth byte 16-bit table 16. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    6,    12,   18,   24,   30,   34,   38,
+                       42,   46,   50,   54,   58,   62,   66,   70,
+                       74,   78,   82,   86,   90,   94,   98,   102,
+                       106,  110,  114,  118,  122,  126,  130,  134,
+                       138,  142,  146,  150,  154,  158,  162,  166,
+                       170,  174,  178,  182,  186,  190,  194,  198,
+                       202,  206,  210,  214,  218,  222,  226,  230,
+                       234,  238,  242,  246,  250,  254,  258,  262,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,
+               },
+               {       /* Fourth byte 16-bit table 17. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  125,
+                       130,  135,  140,  145,  150,  156,  162,  168,
+                       174,  180,  186,  190,  194,  198,  202,  206,
+                       210,  214,  218,  222,  226,  230,  234,  238,
+                       242,  246,  250,  254,  258,  262,  266,  270,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,  274,  274,  274,  274,  274,  274,  274,
+                       274,
+               },
+               {       /* Fourth byte 16-bit table 18. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       98,   104,  110,  116,  122,  126,  130,  134,
+                       138,  142,  146,  150,  154,  158,  162,  166,
+                       170,  174,  178,  182,  186,  190,  194,  198,
+                       202,  206,  210,  214,  218,  222,  226,  230,
+                       234,  238,  242,  246,  250,  254,  258,  262,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,
+               },
+               {       /* Fourth byte 16-bit table 19. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  104,  108,  112,  116,  120,  124,
+                       130,  136,  140,  144,  148,  152,  156,  160,
+                       164,  168,  172,  176,  180,  184,  188,  192,
+                       196,  200,  204,  210,  216,  222,  226,  230,
+                       234,  238,  242,  246,  250,  254,  258,  262,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,  266,  266,  266,  266,  266,  266,  266,
+                       266,
+               },
+               {       /* Fourth byte 16-bit table 20. */
+                       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,    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,    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,    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,    6,    12,   18,   24,   30,   36,   42,
+                       48,   54,   60,   66,   72,   78,   84,   90,
+                       96,   102,  108,  114,  120,  126,  132,  138,
+                       144,  150,  156,  162,  168,  174,  180,  186,
+                       192,  198,  204,  210,  216,  222,  228,  234,
+                       240,  246,  252,  258,  264,  270,  276,  282,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,  288,  288,  288,  288,  288,  288,  288,
+                       288,
+               },
+               {       /* Fourth byte 16-bit table 21. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    6,    12,   18,   24,   30,   36,   42,
+                       48,   54,   60,   66,   72,   78,   84,   90,
+                       96,   96,   96,   102,  108,  114,  120,  126,
+                       132,  138,  144,  150,  156,  162,  168,  174,
+                       180,  186,  192,  198,  204,  210,  216,  222,
+                       228,  234,  240,  246,  252,  258,  264,  270,
+                       276,  282,  288,  294,  300,  306,  312,  318,
+                       324,  330,  336,  342,  348,  354,  360,  366,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,  372,  372,  372,  372,  372,  372,  372,
+                       372,
+               },
+               {       /* Fourth byte 16-bit table 22. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   17,   21,   25,   29,
+                       33,   37,   41,   45,   49,   53,   58,   62,
+                       66,   70,   74,   79,   83,   87,   91,   96,
+                       100,  104,  108,  112,  116,  121,  125,  129,
+                       133,  137,  141,  145,  149,  153,  157,  161,
+                       165,  169,  173,  177,  181,  185,  189,  193,
+                       197,  201,  205,  209,  213,  218,  222,  226,
+                       230,  235,  239,  243,  247,  251,  255,  259,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,
+               },
+               {       /* Fourth byte 16-bit table 23. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   44,   48,   52,   56,   60,
+                       64,   68,   72,   76,   80,   84,   88,   92,
+                       96,   100,  105,  109,  113,  117,  121,  125,
+                       129,  134,  139,  143,  147,  151,  155,  159,
+                       163,  167,  171,  175,  179,  184,  188,  192,
+                       196,  200,  205,  209,  213,  217,  221,  225,
+                       229,  233,  237,  241,  246,  250,  255,  259,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,  263,  263,  263,  263,  263,  263,  263,
+                       263,
+               },
+               {       /* Fourth byte 16-bit table 24. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   41,   45,   49,   53,   57,   61,
+                       66,   70,   75,   80,   84,   88,   92,   96,
+                       101,  106,  110,  114,  118,  122,  126,  130,
+                       134,  138,  142,  146,  150,  155,  159,  163,
+                       167,  171,  175,  179,  183,  187,  191,  195,
+                       199,  203,  207,  211,  215,  219,  223,  227,
+                       231,  236,  240,  244,  248,  252,  256,  261,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,
+               },
+               {       /* Fourth byte 16-bit table 25. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   28,
+                       32,   36,   40,   45,   49,   53,   57,   61,
+                       65,   69,   73,   77,   81,   85,   89,   93,
+                       97,   101,  105,  109,  113,  117,  122,  126,
+                       130,  134,  138,  142,  147,  151,  155,  159,
+                       163,  167,  171,  175,  179,  184,  188,  192,
+                       196,  201,  205,  209,  213,  217,  221,  225,
+                       230,  235,  240,  244,  249,  253,  257,  261,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,  265,  265,  265,  265,  265,  265,  265,
+                       265,
+               },
+               {       /* Fourth byte 16-bit table 26. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   24,   29,
+                       33,   37,   41,   45,   49,   53,   58,   62,
+                       66,   71,   76,   80,   84,   88,   92,   96,
+                       100,  104,  108,  112,  117,  121,  126,  130,
+                       135,  139,  143,  147,  152,  156,  160,  165,
+                       170,  174,  178,  182,  186,  190,  194,  198,
+                       202,  206,  210,  214,  218,  222,  227,  231,
+                       236,  240,  245,  249,  254,  259,  264,  268,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,
+               },
+               {       /* Fourth byte 16-bit table 27. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    9,    14,   19,   24,   28,   32,
+                       36,   40,   44,   48,   52,   56,   61,   65,
+                       69,   73,   77,   82,   86,   91,   96,   100,
+                       104,  108,  112,  116,  120,  125,  130,  135,
+                       139,  143,  148,  152,  156,  160,  165,  169,
+                       173,  177,  181,  185,  190,  194,  198,  202,
+                       206,  210,  214,  219,  224,  228,  233,  237,
+                       242,  246,  250,  254,  259,  264,  268,  273,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,  277,  277,  277,  277,  277,  277,  277,
+                       277,
+               },
+               {       /* Fourth byte 16-bit table 28. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    5,    9,    13,   17,   21,   25,   29,
+                       34,   39,   44,   49,   53,   57,   61,   65,
+                       69,   73,   77,   81,   85,   89,   93,   97,
+                       102,  106,  110,  114,  118,  122,  126,  130,
+                       134,  138,  142,  146,  150,  155,  160,  165,
+                       169,  173,  177,  181,  186,  190,  195,  199,
+                       203,  208,  213,  217,  221,  225,  229,  233,
+                       237,  241,  245,  249,  253,  257,  261,  265,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,  269,  269,  269,  269,  269,  269,  269,
+                       269,
+               },
+               {       /* Fourth byte 16-bit table 29. */
+                       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,    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,    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,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    0,    0,    0,    0,    0,    0,    0,
+                       0,    4,    8,    12,   16,   20,   25,   29,
+                       33,   37,   41,   45,   50,   55,   59,   63,
+                       67,   71,   75,   79,   84,   88,   92,   96,
+                       100,  105,  110,  114,  118,  122,  127,  131,
+                       135,  140,  145,  149,  153,  157,  162,  166,
+                       170,  174,  178,  182,  186,  190,  195,  199,
+                       203,  207,  212,  216,  220,  224,  228,  233,
+                       238,  242,  246,  250,  255,  259,  264,  268,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,  272,  272,  272,  272,  272,  272,  272,
+                       272,
+               },
+       },
+};
+
+static const uchar_t u8_decomp_final_tbl[2][19370] = {
+       {
+               0x20, 0x20, 0xCC, 0x88, 0x61, 0x20, 0xCC, 0x84,
+               0x32, 0x33, 0x20, 0xCC, 0x81, 0xCE, 0xBC, 0x20,
+               0xCC, 0xA7, 0x31, 0x6F, 0x31, 0xE2, 0x81, 0x84,
+               0x34, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x33, 0xE2,
+               0x81, 0x84, 0x34, 0xF6, 0x41, 0xCC, 0x80, 0xF6,
+               0x41, 0xCC, 0x81, 0xF6, 0x41, 0xCC, 0x82, 0xF6,
+               0x41, 0xCC, 0x83, 0xF6, 0x41, 0xCC, 0x88, 0xF6,
+               0x41, 0xCC, 0x8A, 0xF6, 0x43, 0xCC, 0xA7, 0xF6,
+               0x45, 0xCC, 0x80, 0xF6, 0x45, 0xCC, 0x81, 0xF6,
+               0x45, 0xCC, 0x82, 0xF6, 0x45, 0xCC, 0x88, 0xF6,
+               0x49, 0xCC, 0x80, 0xF6, 0x49, 0xCC, 0x81, 0xF6,
+               0x49, 0xCC, 0x82, 0xF6, 0x49, 0xCC, 0x88, 0xF6,
+               0x4E, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x80, 0xF6,
+               0x4F, 0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xF6,
+               0x4F, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x88, 0xF6,
+               0x55, 0xCC, 0x80, 0xF6, 0x55, 0xCC, 0x81, 0xF6,
+               0x55, 0xCC, 0x82, 0xF6, 0x55, 0xCC, 0x88, 0xF6,
+               0x59, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x80, 0xF6,
+               0x61, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x82, 0xF6,
+               0x61, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x88, 0xF6,
+               0x61, 0xCC, 0x8A, 0xF6, 0x63, 0xCC, 0xA7, 0xF6,
+               0x65, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x81, 0xF6,
+               0x65, 0xCC, 0x82, 0xF6, 0x65, 0xCC, 0x88, 0xF6,
+               0x69, 0xCC, 0x80, 0xF6, 0x69, 0xCC, 0x81, 0xF6,
+               0x69, 0xCC, 0x82, 0xF6, 0x69, 0xCC, 0x88, 0xF6,
+               0x6E, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x80, 0xF6,
+               0x6F, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82, 0xF6,
+               0x6F, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x88, 0xF6,
+               0x75, 0xCC, 0x80, 0xF6, 0x75, 0xCC, 0x81, 0xF6,
+               0x75, 0xCC, 0x82, 0xF6, 0x75, 0xCC, 0x88, 0xF6,
+               0x79, 0xCC, 0x81, 0xF6, 0x79, 0xCC, 0x88, 0xF6,
+               0x41, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x84, 0xF6,
+               0x41, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0x86, 0xF6,
+               0x41, 0xCC, 0xA8, 0xF6, 0x61, 0xCC, 0xA8, 0xF6,
+               0x43, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0x81, 0xF6,
+               0x43, 0xCC, 0x82, 0xF6, 0x63, 0xCC, 0x82, 0xF6,
+               0x43, 0xCC, 0x87, 0xF6, 0x63, 0xCC, 0x87, 0xF6,
+               0x43, 0xCC, 0x8C, 0xF6, 0x63, 0xCC, 0x8C, 0xF6,
+               0x44, 0xCC, 0x8C, 0xF6, 0x64, 0xCC, 0x8C, 0xF6,
+               0x45, 0xCC, 0x84, 0xF6, 0x65, 0xCC, 0x84, 0xF6,
+               0x45, 0xCC, 0x86, 0xF6, 0x65, 0xCC, 0x86, 0xF6,
+               0x45, 0xCC, 0x87, 0xF6, 0x65, 0xCC, 0x87, 0xF6,
+               0x45, 0xCC, 0xA8, 0xF6, 0x65, 0xCC, 0xA8, 0xF6,
+               0x45, 0xCC, 0x8C, 0xF6, 0x65, 0xCC, 0x8C, 0xF6,
+               0x47, 0xCC, 0x82, 0xF6, 0x67, 0xCC, 0x82, 0xF6,
+               0x47, 0xCC, 0x86, 0xF6, 0x67, 0xCC, 0x86, 0xF6,
+               0x47, 0xCC, 0x87, 0xF6, 0x67, 0xCC, 0x87, 0xF6,
+               0x47, 0xCC, 0xA7, 0xF6, 0x67, 0xCC, 0xA7, 0xF6,
+               0x48, 0xCC, 0x82, 0xF6, 0x68, 0xCC, 0x82, 0xF6,
+               0x49, 0xCC, 0x83, 0xF6, 0x69, 0xCC, 0x83, 0xF6,
+               0x49, 0xCC, 0x84, 0xF6, 0x69, 0xCC, 0x84, 0xF6,
+               0x49, 0xCC, 0x86, 0xF6, 0x69, 0xCC, 0x86, 0xF6,
+               0x49, 0xCC, 0xA8, 0xF6, 0x69, 0xCC, 0xA8, 0xF6,
+               0x49, 0xCC, 0x87, 0x49, 0x4A, 0x69, 0x6A, 0xF6,
+               0x4A, 0xCC, 0x82, 0xF6, 0x6A, 0xCC, 0x82, 0xF6,
+               0x4B, 0xCC, 0xA7, 0xF6, 0x6B, 0xCC, 0xA7, 0xF6,
+               0x4C, 0xCC, 0x81, 0xF6, 0x6C, 0xCC, 0x81, 0xF6,
+               0x4C, 0xCC, 0xA7, 0xF6, 0x6C, 0xCC, 0xA7, 0xF6,
+               0x4C, 0xCC, 0x8C, 0xF6, 0x6C, 0xCC, 0x8C, 0x4C,
+               0xC2, 0xB7, 0x6C, 0xC2, 0xB7, 0xF6, 0x4E, 0xCC,
+               0x81, 0xF6, 0x6E, 0xCC, 0x81, 0xF6, 0x4E, 0xCC,
+               0xA7, 0xF6, 0x6E, 0xCC, 0xA7, 0xF6, 0x4E, 0xCC,
+               0x8C, 0xF6, 0x6E, 0xCC, 0x8C, 0xCA, 0xBC, 0x6E,
+               0xF6, 0x4F, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, 0x84,
+               0xF6, 0x4F, 0xCC, 0x86, 0xF6, 0x6F, 0xCC, 0x86,
+               0xF6, 0x4F, 0xCC, 0x8B, 0xF6, 0x6F, 0xCC, 0x8B,
+               0xF6, 0x52, 0xCC, 0x81, 0xF6, 0x72, 0xCC, 0x81,
+               0xF6, 0x52, 0xCC, 0xA7, 0xF6, 0x72, 0xCC, 0xA7,
+               0xF6, 0x52, 0xCC, 0x8C, 0xF6, 0x72, 0xCC, 0x8C,
+               0xF6, 0x53, 0xCC, 0x81, 0xF6, 0x73, 0xCC, 0x81,
+               0xF6, 0x53, 0xCC, 0x82, 0xF6, 0x73, 0xCC, 0x82,
+               0xF6, 0x53, 0xCC, 0xA7, 0xF6, 0x73, 0xCC, 0xA7,
+               0xF6, 0x53, 0xCC, 0x8C, 0xF6, 0x73, 0xCC, 0x8C,
+               0xF6, 0x54, 0xCC, 0xA7, 0xF6, 0x74, 0xCC, 0xA7,
+               0xF6, 0x54, 0xCC, 0x8C, 0xF6, 0x74, 0xCC, 0x8C,
+               0xF6, 0x55, 0xCC, 0x83, 0xF6, 0x75, 0xCC, 0x83,
+               0xF6, 0x55, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x84,
+               0xF6, 0x55, 0xCC, 0x86, 0xF6, 0x75, 0xCC, 0x86,
+               0xF6, 0x55, 0xCC, 0x8A, 0xF6, 0x75, 0xCC, 0x8A,
+               0xF6, 0x55, 0xCC, 0x8B, 0xF6, 0x75, 0xCC, 0x8B,
+               0xF6, 0x55, 0xCC, 0xA8, 0xF6, 0x75, 0xCC, 0xA8,
+               0xF6, 0x57, 0xCC, 0x82, 0xF6, 0x77, 0xCC, 0x82,
+               0xF6, 0x59, 0xCC, 0x82, 0xF6, 0x79, 0xCC, 0x82,
+               0xF6, 0x59, 0xCC, 0x88, 0xF6, 0x5A, 0xCC, 0x81,
+               0xF6, 0x7A, 0xCC, 0x81, 0xF6, 0x5A, 0xCC, 0x87,
+               0xF6, 0x7A, 0xCC, 0x87, 0xF6, 0x5A, 0xCC, 0x8C,
+               0xF6, 0x7A, 0xCC, 0x8C, 0x73, 0xF6, 0x4F, 0xCC,
+               0x9B, 0xF6, 0x6F, 0xCC, 0x9B, 0xF6, 0x55, 0xCC,
+               0x9B, 0xF6, 0x75, 0xCC, 0x9B, 0x44, 0x5A, 0xCC,
+               0x8C, 0x44, 0x7A, 0xCC, 0x8C, 0x64, 0x7A, 0xCC,
+               0x8C, 0x4C, 0x4A, 0x4C, 0x6A, 0x6C, 0x6A, 0x4E,
+               0x4A, 0x4E, 0x6A, 0x6E, 0x6A, 0xF6, 0x41, 0xCC,
+               0x8C, 0xF6, 0x61, 0xCC, 0x8C, 0xF6, 0x49, 0xCC,
+               0x8C, 0xF6, 0x69, 0xCC, 0x8C, 0xF6, 0x4F, 0xCC,
+               0x8C, 0xF6, 0x6F, 0xCC, 0x8C, 0xF6, 0x55, 0xCC,
+               0x8C, 0xF6, 0x75, 0xCC, 0x8C, 0xF6, 0x55, 0xCC,
+               0x88, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x88, 0xCC,
+               0x84, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
+               0x75, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x55, 0xCC,
+               0x88, 0xCC, 0x8C, 0xF6, 0x75, 0xCC, 0x88, 0xCC,
+               0x8C, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xF6,
+               0x75, 0xCC, 0x88, 0xCC, 0x80, 0xF6, 0x41, 0xCC,
+               0x88, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x88, 0xCC,
+               0x84, 0xF6, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xF6,
+               0x61, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0xC3, 0x86,
+               0xCC, 0x84, 0xF6, 0xC3, 0xA6, 0xCC, 0x84, 0xF6,
+               0x47, 0xCC, 0x8C, 0xF6, 0x67, 0xCC, 0x8C, 0xF6,
+               0x4B, 0xCC, 0x8C, 0xF6, 0x6B, 0xCC, 0x8C, 0xF6,
+               0x4F, 0xCC, 0xA8, 0xF6, 0x6F, 0xCC, 0xA8, 0xF6,
+               0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
+               0xA8, 0xCC, 0x84, 0xF6, 0xC6, 0xB7, 0xCC, 0x8C,
+               0xF6, 0xCA, 0x92, 0xCC, 0x8C, 0xF6, 0x6A, 0xCC,
+               0x8C, 0x44, 0x5A, 0x44, 0x7A, 0x64, 0x7A, 0xF6,
+               0x47, 0xCC, 0x81, 0xF6, 0x67, 0xCC, 0x81, 0xF6,
+               0x4E, 0xCC, 0x80, 0xF6, 0x6E, 0xCC, 0x80, 0xF6,
+               0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xF6, 0x61, 0xCC,
+               0x8A, 0xCC, 0x81, 0xF6, 0xC3, 0x86, 0xCC, 0x81,
+               0xF6, 0xC3, 0xA6, 0xCC, 0x81, 0xF6, 0xC3, 0x98,
+               0xCC, 0x81, 0xF6, 0xC3, 0xB8, 0xCC, 0x81, 0xF6,
+               0x41, 0xCC, 0x8F, 0xF6, 0x61, 0xCC, 0x8F, 0xF6,
+               0x41, 0xCC, 0x91, 0xF6, 0x61, 0xCC, 0x91, 0xF6,
+               0x45, 0xCC, 0x8F, 0xF6, 0x65, 0xCC, 0x8F, 0xF6,
+               0x45, 0xCC, 0x91, 0xF6, 0x65, 0xCC, 0x91, 0xF6,
+               0x49, 0xCC, 0x8F, 0xF6, 0x69, 0xCC, 0x8F, 0xF6,
+               0x49, 0xCC, 0x91, 0xF6, 0x69, 0xCC, 0x91, 0xF6,
+               0x4F, 0xCC, 0x8F, 0xF6, 0x6F, 0xCC, 0x8F, 0xF6,
+               0x4F, 0xCC, 0x91, 0xF6, 0x6F, 0xCC, 0x91, 0xF6,
+               0x52, 0xCC, 0x8F, 0xF6, 0x72, 0xCC, 0x8F, 0xF6,
+               0x52, 0xCC, 0x91, 0xF6, 0x72, 0xCC, 0x91, 0xF6,
+               0x55, 0xCC, 0x8F, 0xF6, 0x75, 0xCC, 0x8F, 0xF6,
+               0x55, 0xCC, 0x91, 0xF6, 0x75, 0xCC, 0x91, 0xF6,
+               0x53, 0xCC, 0xA6, 0xF6, 0x73, 0xCC, 0xA6, 0xF6,
+               0x54, 0xCC, 0xA6, 0xF6, 0x74, 0xCC, 0xA6, 0xF6,
+               0x48, 0xCC, 0x8C, 0xF6, 0x68, 0xCC, 0x8C, 0xF6,
+               0x41, 0xCC, 0x87, 0xF6, 0x61, 0xCC, 0x87, 0xF6,
+               0x45, 0xCC, 0xA7, 0xF6, 0x65, 0xCC, 0xA7, 0xF6,
+               0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
+               0x88, 0xCC, 0x84, 0xF6, 0x4F, 0xCC, 0x83, 0xCC,
+               0x84, 0xF6, 0x6F, 0xCC, 0x83, 0xCC, 0x84, 0xF6,
+               0x4F, 0xCC, 0x87, 0xF6, 0x6F, 0xCC, 0x87, 0xF6,
+               0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
+               0x87, 0xCC, 0x84, 0xF6, 0x59, 0xCC, 0x84, 0xF6,
+               0x79, 0xCC, 0x84, 0x68, 0xC9, 0xA6, 0x6A, 0x72,
+               0xC9, 0xB9, 0xC9, 0xBB, 0xCA, 0x81, 0x77, 0x79,
+               0x20, 0xCC, 0x86, 0x20, 0xCC, 0x87, 0x20, 0xCC,
+               0x8A, 0x20, 0xCC, 0xA8, 0x20, 0xCC, 0x83, 0x20,
+               0xCC, 0x8B, 0xC9, 0xA3, 0x6C, 0x73, 0x78, 0xCA,
+               0x95, 0xF6, 0xCC, 0x80, 0xF6, 0xCC, 0x81, 0xF6,
+               0xCC, 0x93, 0xF6, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
+               0xCA, 0xB9, 0x20, 0xCD, 0x85, 0xF6, 0x3B, 0x20,
+               0xCC, 0x81, 0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81,
+               0x20, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0xCE, 0x91,
+               0xCC, 0x81, 0xF6, 0xC2, 0xB7, 0xF6, 0xCE, 0x95,
+               0xCC, 0x81, 0xF6, 0xCE, 0x97, 0xCC, 0x81, 0xF6,
+               0xCE, 0x99, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC,
+               0x81, 0xF6, 0xCE, 0xA5, 0xCC, 0x81, 0xF6, 0xCE,
+               0xA9, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x88,
+               0xCC, 0x81, 0xF6, 0xCE, 0x99, 0xCC, 0x88, 0xF6,
+               0xCE, 0xA5, 0xCC, 0x88, 0xF6, 0xCE, 0xB1, 0xCC,
+               0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x81, 0xF6, 0xCE,
+               0xB7, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x81,
+               0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
+               0xCE, 0xB9, 0xCC, 0x88, 0xF6, 0xCF, 0x85, 0xCC,
+               0x88, 0xF6, 0xCE, 0xBF, 0xCC, 0x81, 0xF6, 0xCF,
+               0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC, 0x81,
+               0xCE, 0xB2, 0xCE, 0xB8, 0xCE, 0xA5, 0xF5, 0x05,
+               0xCF, 0x92, 0xCC, 0x81, 0xCE, 0xA5, 0xCC, 0x81,
+               0xF5, 0x05, 0xCF, 0x92, 0xCC, 0x88, 0xCE, 0xA5,
+               0xCC, 0x88, 0xCF, 0x86, 0xCF, 0x80, 0xCE, 0xBA,
+               0xCF, 0x81, 0xCF, 0x82, 0xCE, 0x98, 0xCE, 0xB5,
+               0xF6, 0xD0, 0x95, 0xCC, 0x80, 0xF6, 0xD0, 0x95,
+               0xCC, 0x88, 0xF6, 0xD0, 0x93, 0xCC, 0x81, 0xF6,
+               0xD0, 0x86, 0xCC, 0x88, 0xF6, 0xD0, 0x9A, 0xCC,
+               0x81, 0xF6, 0xD0, 0x98, 0xCC, 0x80, 0xF6, 0xD0,
+               0xA3, 0xCC, 0x86, 0xF6, 0xD0, 0x98, 0xCC, 0x86,
+               0xF6, 0xD0, 0xB8, 0xCC, 0x86, 0xF6, 0xD0, 0xB5,
+               0xCC, 0x80, 0xF6, 0xD0, 0xB5, 0xCC, 0x88, 0xF6,
+               0xD0, 0xB3, 0xCC, 0x81, 0xF6, 0xD1, 0x96, 0xCC,
+               0x88, 0xF6, 0xD0, 0xBA, 0xCC, 0x81, 0xF6, 0xD0,
+               0xB8, 0xCC, 0x80, 0xF6, 0xD1, 0x83, 0xCC, 0x86,
+               0xF6, 0xD1, 0xB4, 0xCC, 0x8F, 0xF6, 0xD1, 0xB5,
+               0xCC, 0x8F, 0xF6, 0xD0, 0x96, 0xCC, 0x86, 0xF6,
+               0xD0, 0xB6, 0xCC, 0x86, 0xF6, 0xD0, 0x90, 0xCC,
+               0x86, 0xF6, 0xD0, 0xB0, 0xCC, 0x86, 0xF6, 0xD0,
+               0x90, 0xCC, 0x88, 0xF6, 0xD0, 0xB0, 0xCC, 0x88,
+               0xF6, 0xD0, 0x95, 0xCC, 0x86, 0xF6, 0xD0, 0xB5,
+               0xCC, 0x86, 0xF6, 0xD3, 0x98, 0xCC, 0x88, 0xF6,
+               0xD3, 0x99, 0xCC, 0x88, 0xF6, 0xD0, 0x96, 0xCC,
+               0x88, 0xF6, 0xD0, 0xB6, 0xCC, 0x88, 0xF6, 0xD0,
+               0x97, 0xCC, 0x88, 0xF6, 0xD0, 0xB7, 0xCC, 0x88,
+               0xF6, 0xD0, 0x98, 0xCC, 0x84, 0xF6, 0xD0, 0xB8,
+               0xCC, 0x84, 0xF6, 0xD0, 0x98, 0xCC, 0x88, 0xF6,
+               0xD0, 0xB8, 0xCC, 0x88, 0xF6, 0xD0, 0x9E, 0xCC,
+               0x88, 0xF6, 0xD0, 0xBE, 0xCC, 0x88, 0xF6, 0xD3,
+               0xA8, 0xCC, 0x88, 0xF6, 0xD3, 0xA9, 0xCC, 0x88,
+               0xF6, 0xD0, 0xAD, 0xCC, 0x88, 0xF6, 0xD1, 0x8D,
+               0xCC, 0x88, 0xF6, 0xD0, 0xA3, 0xCC, 0x84, 0xF6,
+               0xD1, 0x83, 0xCC, 0x84, 0xF6, 0xD0, 0xA3, 0xCC,
+               0x88, 0xF6, 0xD1, 0x83, 0xCC, 0x88, 0xF6, 0xD0,
+               0xA3, 0xCC, 0x8B, 0xF6, 0xD1, 0x83, 0xCC, 0x8B,
+               0xF6, 0xD0, 0xA7, 0xCC, 0x88, 0xF6, 0xD1, 0x87,
+               0xCC, 0x88, 0xF6, 0xD0, 0xAB, 0xCC, 0x88, 0xF6,
+               0xD1, 0x8B, 0xCC, 0x88, 0xD5, 0xA5, 0xD6, 0x82,
+               0xF6, 0xD8, 0xA7, 0xD9, 0x93, 0xF6, 0xD8, 0xA7,
+               0xD9, 0x94, 0xF6, 0xD9, 0x88, 0xD9, 0x94, 0xF6,
+               0xD8, 0xA7, 0xD9, 0x95, 0xF6, 0xD9, 0x8A, 0xD9,
+               0x94, 0xD8, 0xA7, 0xD9, 0xB4, 0xD9, 0x88, 0xD9,
+               0xB4, 0xDB, 0x87, 0xD9, 0xB4, 0xD9, 0x8A, 0xD9,
+               0xB4, 0xF6, 0xDB, 0x95, 0xD9, 0x94, 0xF6, 0xDB,
+               0x81, 0xD9, 0x94, 0xF6, 0xDB, 0x92, 0xD9, 0x94,
+               0xF6, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0xF6,
+               0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0,
+               0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4,
+               0x95, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x96,
+               0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x97, 0xE0,
+               0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x9C, 0xE0, 0xA4,
+               0xBC, 0xF6, 0xE0, 0xA4, 0xA1, 0xE0, 0xA4, 0xBC,
+               0xF6, 0xE0, 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0xF6,
+               0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0,
+               0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA7,
+               0x87, 0xE0, 0xA6, 0xBE, 0xF6, 0xE0, 0xA7, 0x87,
+               0xE0, 0xA7, 0x97, 0xF6, 0xE0, 0xA6, 0xA1, 0xE0,
+               0xA6, 0xBC, 0xF6, 0xE0, 0xA6, 0xA2, 0xE0, 0xA6,
+               0xBC, 0xF6, 0xE0, 0xA6, 0xAF, 0xE0, 0xA6, 0xBC,
+               0xF6, 0xE0, 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0xF6,
+               0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0,
+               0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8,
+               0x97, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8, 0x9C,
+               0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8, 0xAB, 0xE0,
+               0xA8, 0xBC, 0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAD,
+               0x96, 0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE,
+               0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0xF6,
+               0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0xF6, 0xE0,
+               0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0xF6, 0xE0, 0xAE,
+               0x92, 0xE0, 0xAF, 0x97, 0xF6, 0xE0, 0xAF, 0x86,
+               0xE0, 0xAE, 0xBE, 0xF6, 0xE0, 0xAF, 0x87, 0xE0,
+               0xAE, 0xBE, 0xF6, 0xE0, 0xAF, 0x86, 0xE0, 0xAF,
+               0x97, 0xF6, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96,
+               0xF6, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0xF6,
+               0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0xF6, 0xE0,
+               0xB3, 0x86, 0xE0, 0xB3, 0x96, 0xF6, 0xE0, 0xB3,
+               0x86, 0xE0, 0xB3, 0x82, 0xF6, 0xE0, 0xB3, 0x86,
+               0xE0, 0xB3, 0x82, 0xE0, 0xB3, 0x95, 0xF6, 0xE0,
+               0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0xF6, 0xE0, 0xB5,
+               0x87, 0xE0, 0xB4, 0xBE, 0xF6, 0xE0, 0xB5, 0x86,
+               0xE0, 0xB5, 0x97, 0xF6, 0xE0, 0xB7, 0x99, 0xE0,
+               0xB7, 0x8A, 0xF6, 0xE0, 0xB7, 0x99, 0xE0, 0xB7,
+               0x8F, 0xF6, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F,
+               0xE0, 0xB7, 0x8A, 0xF6, 0xE0, 0xB7, 0x99, 0xE0,
+               0xB7, 0x9F, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,
+               0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0xE0, 0xBA,
+               0xAB, 0xE0, 0xBA, 0x99, 0xE0, 0xBA, 0xAB, 0xE0,
+               0xBA, 0xA1, 0xE0, 0xBC, 0x8B, 0xF6, 0xE0, 0xBD,
+               0x82, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x8C,
+               0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x91, 0xE0,
+               0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x96, 0xE0, 0xBE,
+               0xB7, 0xF6, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7,
+               0xF6, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0xF6,
+               0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0xF6, 0xE0,
+               0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xF6, 0xE0, 0xBE,
+               0xB2, 0xE0, 0xBE, 0x80, 0xE0, 0xBE, 0xB2, 0xE0,
+               0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0, 0xBE,
+               0xB3, 0xE0, 0xBE, 0x80, 0xE0, 0xBE, 0xB3, 0xE0,
+               0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0, 0xBD,
+               0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0, 0xBE, 0x92,
+               0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0x9C, 0xE0,
+               0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xA1, 0xE0, 0xBE,
+               0xB7, 0xF6, 0xE0, 0xBE, 0xA6, 0xE0, 0xBE, 0xB7,
+               0xF6, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, 0xB7, 0xF6,
+               0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0xF6, 0xE1,
+               0x80, 0xA5, 0xE1, 0x80, 0xAE, 0xF6, 0x41, 0xCC,
+               0xA5, 0xF6, 0x61, 0xCC, 0xA5, 0xF6, 0x42, 0xCC,
+               0x87, 0xF6, 0x62, 0xCC, 0x87, 0xF6, 0x42, 0xCC,
+               0xA3, 0xF6, 0x62, 0xCC, 0xA3, 0xF6, 0x42, 0xCC,
+               0xB1, 0xF6, 0x62, 0xCC, 0xB1, 0xF6, 0x43, 0xCC,
+               0xA7, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0xA7, 0xCC,
+               0x81, 0xF6, 0x44, 0xCC, 0x87, 0xF6, 0x64, 0xCC,
+               0x87, 0xF6, 0x44, 0xCC, 0xA3, 0xF6, 0x64, 0xCC,
+               0xA3, 0xF6, 0x44, 0xCC, 0xB1, 0xF6, 0x64, 0xCC,
+               0xB1, 0xF6, 0x44, 0xCC, 0xA7, 0xF6, 0x64, 0xCC,
+               0xA7, 0xF6, 0x44, 0xCC, 0xAD, 0xF6, 0x64, 0xCC,
+               0xAD, 0xF6, 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xF6,
+               0x65, 0xCC, 0x84, 0xCC, 0x80, 0xF6, 0x45, 0xCC,
+               0x84, 0xCC, 0x81, 0xF6, 0x65, 0xCC, 0x84, 0xCC,
+               0x81, 0xF6, 0x45, 0xCC, 0xAD, 0xF6, 0x65, 0xCC,
+               0xAD, 0xF6, 0x45, 0xCC, 0xB0, 0xF6, 0x65, 0xCC,
+               0xB0, 0xF6, 0x45, 0xCC, 0xA7, 0xCC, 0x86, 0xF6,
+               0x65, 0xCC, 0xA7, 0xCC, 0x86, 0xF6, 0x46, 0xCC,
+               0x87, 0xF6, 0x66, 0xCC, 0x87, 0xF6, 0x47, 0xCC,
+               0x84, 0xF6, 0x67, 0xCC, 0x84, 0xF6, 0x48, 0xCC,
+               0x87, 0xF6, 0x68, 0xCC, 0x87, 0xF6, 0x48, 0xCC,
+               0xA3, 0xF6, 0x68, 0xCC, 0xA3, 0xF6, 0x48, 0xCC,
+               0x88, 0xF6, 0x68, 0xCC, 0x88, 0xF6, 0x48, 0xCC,
+               0xA7, 0xF6, 0x68, 0xCC, 0xA7, 0xF6, 0x48, 0xCC,
+               0xAE, 0xF6, 0x68, 0xCC, 0xAE, 0xF6, 0x49, 0xCC,
+               0xB0, 0xF6, 0x69, 0xCC, 0xB0, 0xF6, 0x49, 0xCC,
+               0x88, 0xCC, 0x81, 0xF6, 0x69, 0xCC, 0x88, 0xCC,
+               0x81, 0xF6, 0x4B, 0xCC, 0x81, 0xF6, 0x6B, 0xCC,
+               0x81, 0xF6, 0x4B, 0xCC, 0xA3, 0xF6, 0x6B, 0xCC,
+               0xA3, 0xF6, 0x4B, 0xCC, 0xB1, 0xF6, 0x6B, 0xCC,
+               0xB1, 0xF6, 0x4C, 0xCC, 0xA3, 0xF6, 0x6C, 0xCC,
+               0xA3, 0xF6, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, 0xF6,
+               0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xF6, 0x4C, 0xCC,
+               0xB1, 0xF6, 0x6C, 0xCC, 0xB1, 0xF6, 0x4C, 0xCC,
+               0xAD, 0xF6, 0x6C, 0xCC, 0xAD, 0xF6, 0x4D, 0xCC,
+               0x81, 0xF6, 0x6D, 0xCC, 0x81, 0xF6, 0x4D, 0xCC,
+               0x87, 0xF6, 0x6D, 0xCC, 0x87, 0xF6, 0x4D, 0xCC,
+               0xA3, 0xF6, 0x6D, 0xCC, 0xA3, 0xF6, 0x4E, 0xCC,
+               0x87, 0xF6, 0x6E, 0xCC, 0x87, 0xF6, 0x4E, 0xCC,
+               0xA3, 0xF6, 0x6E, 0xCC, 0xA3, 0xF6, 0x4E, 0xCC,
+               0xB1, 0xF6, 0x6E, 0xCC, 0xB1, 0xF6, 0x4E, 0xCC,
+               0xAD, 0xF6, 0x6E, 0xCC, 0xAD, 0xF6, 0x4F, 0xCC,
+               0x83, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x83, 0xCC,
+               0x81, 0xF6, 0x4F, 0xCC, 0x83, 0xCC, 0x88, 0xF6,
+               0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xF6, 0x4F, 0xCC,
+               0x84, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x84, 0xCC,
+               0x80, 0xF6, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xF6,
+               0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xF6, 0x50, 0xCC,
+               0x81, 0xF6, 0x70, 0xCC, 0x81, 0xF6, 0x50, 0xCC,
+               0x87, 0xF6, 0x70, 0xCC, 0x87, 0xF6, 0x52, 0xCC,
+               0x87, 0xF6, 0x72, 0xCC, 0x87, 0xF6, 0x52, 0xCC,
+               0xA3, 0xF6, 0x72, 0xCC, 0xA3, 0xF6, 0x52, 0xCC,
+               0xA3, 0xCC, 0x84, 0xF6, 0x72, 0xCC, 0xA3, 0xCC,
+               0x84, 0xF6, 0x52, 0xCC, 0xB1, 0xF6, 0x72, 0xCC,
+               0xB1, 0xF6, 0x53, 0xCC, 0x87, 0xF6, 0x73, 0xCC,
+               0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xF6, 0x73, 0xCC,
+               0xA3, 0xF6, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xF6,
+               0x73, 0xCC, 0x81, 0xCC, 0x87, 0xF6, 0x53, 0xCC,
+               0x8C, 0xCC, 0x87, 0xF6, 0x73, 0xCC, 0x8C, 0xCC,
+               0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xCC, 0x87, 0xF6,
+               0x73, 0xCC, 0xA3, 0xCC, 0x87, 0xF6, 0x54, 0xCC,
+               0x87, 0xF6, 0x74, 0xCC, 0x87, 0xF6, 0x54, 0xCC,
+               0xA3, 0xF6, 0x74, 0xCC, 0xA3, 0xF6, 0x54, 0xCC,
+               0xB1, 0xF6, 0x74, 0xCC, 0xB1, 0xF6, 0x54, 0xCC,
+               0xAD, 0xF6, 0x74, 0xCC, 0xAD, 0xF6, 0x55, 0xCC,
+               0xA4, 0xF6, 0x75, 0xCC, 0xA4, 0xF6, 0x55, 0xCC,
+               0xB0, 0xF6, 0x75, 0xCC, 0xB0, 0xF6, 0x55, 0xCC,
+               0xAD, 0xF6, 0x75, 0xCC, 0xAD, 0xF6, 0x55, 0xCC,
+               0x83, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x83, 0xCC,
+               0x81, 0xF6, 0x55, 0xCC, 0x84, 0xCC, 0x88, 0xF6,
+               0x75, 0xCC, 0x84, 0xCC, 0x88, 0xF6, 0x56, 0xCC,
+               0x83, 0xF6, 0x76, 0xCC, 0x83, 0xF6, 0x56, 0xCC,
+               0xA3, 0xF6, 0x76, 0xCC, 0xA3, 0xF6, 0x57, 0xCC,
+               0x80, 0xF6, 0x77, 0xCC, 0x80, 0xF6, 0x57, 0xCC,
+               0x81, 0xF6, 0x77, 0xCC, 0x81, 0xF6, 0x57, 0xCC,
+               0x88, 0xF6, 0x77, 0xCC, 0x88, 0xF6, 0x57, 0xCC,
+               0x87, 0xF6, 0x77, 0xCC, 0x87, 0xF6, 0x57, 0xCC,
+               0xA3, 0xF6, 0x77, 0xCC, 0xA3, 0xF6, 0x58, 0xCC,
+               0x87, 0xF6, 0x78, 0xCC, 0x87, 0xF6, 0x58, 0xCC,
+               0x88, 0xF6, 0x78, 0xCC, 0x88, 0xF6, 0x59, 0xCC,
+               0x87, 0xF6, 0x79, 0xCC, 0x87, 0xF6, 0x5A, 0xCC,
+               0x82, 0xF6, 0x7A, 0xCC, 0x82, 0xF6, 0x5A, 0xCC,
+               0xA3, 0xF6, 0x7A, 0xCC, 0xA3, 0xF6, 0x5A, 0xCC,
+               0xB1, 0xF6, 0x7A, 0xCC, 0xB1, 0xF6, 0x68, 0xCC,
+               0xB1, 0xF6, 0x74, 0xCC, 0x88, 0xF6, 0x77, 0xCC,
+               0x8A, 0xF6, 0x79, 0xCC, 0x8A, 0x61, 0xCA, 0xBE,
+               0xF5, 0x05, 0xC5, 0xBF, 0xCC, 0x87, 0x73, 0xCC,
+               0x87, 0xF6, 0x41, 0xCC, 0xA3, 0xF6, 0x61, 0xCC,
+               0xA3, 0xF6, 0x41, 0xCC, 0x89, 0xF6, 0x61, 0xCC,
+               0x89, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xF6,
+               0x61, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x41, 0xCC,
+               0x82, 0xCC, 0x80, 0xF6, 0x61, 0xCC, 0x82, 0xCC,
+               0x80, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xF6,
+               0x61, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x41, 0xCC,
+               0x82, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x82, 0xCC,
+               0x83, 0xF6, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xF6,
+               0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x41, 0xCC,
+               0x86, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x86, 0xCC,
+               0x81, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x80, 0xF6,
+               0x61, 0xCC, 0x86, 0xCC, 0x80, 0xF6, 0x41, 0xCC,
+               0x86, 0xCC, 0x89, 0xF6, 0x61, 0xCC, 0x86, 0xCC,
+               0x89, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x83, 0xF6,
+               0x61, 0xCC, 0x86, 0xCC, 0x83, 0xF6, 0x41, 0xCC,
+               0xA3, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0xA3, 0xCC,
+               0x86, 0xF6, 0x45, 0xCC, 0xA3, 0xF6, 0x65, 0xCC,
+               0xA3, 0xF6, 0x45, 0xCC, 0x89, 0xF6, 0x65, 0xCC,
+               0x89, 0xF6, 0x45, 0xCC, 0x83, 0xF6, 0x65, 0xCC,
+               0x83, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x81, 0xF6,
+               0x65, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x45, 0xCC,
+               0x82, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x82, 0xCC,
+               0x80, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xF6,
+               0x65, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x45, 0xCC,
+               0x82, 0xCC, 0x83, 0xF6, 0x65, 0xCC, 0x82, 0xCC,
+               0x83, 0xF6, 0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xF6,
+               0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x49, 0xCC,
+               0x89, 0xF6, 0x69, 0xCC, 0x89, 0xF6, 0x49, 0xCC,
+               0xA3, 0xF6, 0x69, 0xCC, 0xA3, 0xF6, 0x4F, 0xCC,
+               0xA3, 0xF6, 0x6F, 0xCC, 0xA3, 0xF6, 0x4F, 0xCC,
+               0x89, 0xF6, 0x6F, 0xCC, 0x89, 0xF6, 0x4F, 0xCC,
+               0x82, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82, 0xCC,
+               0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xF6,
+               0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x4F, 0xCC,
+               0x82, 0xCC, 0x89, 0xF6, 0x6F, 0xCC, 0x82, 0xCC,
+               0x89, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xF6,
+               0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x4F, 0xCC,
+               0xA3, 0xCC, 0x82, 0xF6, 0x6F, 0xCC, 0xA3, 0xCC,
+               0x82, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xF6,
+               0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xF6, 0x4F, 0xCC,
+               0x9B, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x9B, 0xCC,
+               0x80, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x89, 0xF6,
+               0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xF6, 0x4F, 0xCC,
+               0x9B, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x9B, 0xCC,
+               0x83, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, 0xF6,
+               0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xF6, 0x55, 0xCC,
+               0xA3, 0xF6, 0x75, 0xCC, 0xA3, 0xF6, 0x55, 0xCC,
+               0x89, 0xF6, 0x75, 0xCC, 0x89, 0xF6, 0x55, 0xCC,
+               0x9B, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x9B, 0xCC,
+               0x81, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xF6,
+               0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xF6, 0x55, 0xCC,
+               0x9B, 0xCC, 0x89, 0xF6, 0x75, 0xCC, 0x9B, 0xCC,
+               0x89, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x83, 0xF6,
+               0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xF6, 0x55, 0xCC,
+               0x9B, 0xCC, 0xA3, 0xF6, 0x75, 0xCC, 0x9B, 0xCC,
+               0xA3, 0xF6, 0x59, 0xCC, 0x80, 0xF6, 0x79, 0xCC,
+               0x80, 0xF6, 0x59, 0xCC, 0xA3, 0xF6, 0x79, 0xCC,
+               0xA3, 0xF6, 0x59, 0xCC, 0x89, 0xF6, 0x79, 0xCC,
+               0x89, 0xF6, 0x59, 0xCC, 0x83, 0xF6, 0x79, 0xCC,
+               0x83, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xF6, 0xCE,
+               0xB1, 0xCC, 0x94, 0xF6, 0xCE, 0xB1, 0xCC, 0x93,
+               0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,
+               0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81,
+               0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xF6,
+               0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCE,
+               0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0x91,
+               0xCC, 0x93, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xF6,
+               0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE,
+               0x91, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0x91,
+               0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCC,
+               0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCC, 0x93,
+               0xCD, 0x82, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCD,
+               0x82, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xF6, 0xCE,
+               0xB5, 0xCC, 0x94, 0xF6, 0xCE, 0xB5, 0xCC, 0x93,
+               0xCC, 0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x94, 0xCC,
+               0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81,
+               0xF6, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xF6,
+               0xCE, 0x95, 0xCC, 0x93, 0xF6, 0xCE, 0x95, 0xCC,
+               0x94, 0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80,
+               0xF6, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xF6,
+               0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE,
+               0x95, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB7,
+               0xCC, 0x93, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xF6,
+               0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE,
+               0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xB7,
+               0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC,
+               0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC, 0x93,
+               0xCD, 0x82, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,
+               0x82, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xF6, 0xCE,
+               0x97, 0xCC, 0x94, 0xF6, 0xCE, 0x97, 0xCC, 0x93,
+               0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC,
+               0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81,
+               0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xF6,
+               0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCE,
+               0x97, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xB9,
+               0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0xCC, 0x94, 0xF6,
+               0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE,
+               0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xB9,
+               0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC,
+               0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x93,
+               0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x94, 0xCD,
+               0x82, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xF6, 0xCE,
+               0x99, 0xCC, 0x94, 0xF6, 0xCE, 0x99, 0xCC, 0x93,
+               0xCC, 0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x94, 0xCC,
+               0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81,
+               0xF6, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xF6,
+               0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCE,
+               0x99, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xBF,
+               0xCC, 0x93, 0xF6, 0xCE, 0xBF, 0xCC, 0x94, 0xF6,
+               0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE,
+               0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xBF,
+               0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xBF, 0xCC,
+               0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, 0x93,
+               0xF6, 0xCE, 0x9F, 0xCC, 0x94, 0xF6, 0xCE, 0x9F,
+               0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC,
+               0x94, 0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC, 0x93,
+               0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, 0x94, 0xCC,
+               0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xF6, 0xCF,
+               0x85, 0xCC, 0x94, 0xF6, 0xCF, 0x85, 0xCC, 0x93,
+               0xCC, 0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x94, 0xCC,
+               0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81,
+               0xF6, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xF6,
+               0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCF,
+               0x85, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xA5,
+               0xCC, 0x94, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCC,
+               0x80, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81,
+               0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xF6,
+               0xCF, 0x89, 0xCC, 0x93, 0xF6, 0xCF, 0x89, 0xCC,
+               0x94, 0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80,
+               0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xF6,
+               0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCF,
+               0x89, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCF, 0x89,
+               0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCF, 0x89, 0xCC,
+               0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xA9, 0xCC, 0x93,
+               0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xF6, 0xCE, 0xA9,
+               0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC,
+               0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC, 0x93,
+               0xCC, 0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC,
+               0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82,
+               0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xF6,
+               0xCE, 0xB1, 0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC,
+               0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x80, 0xF6, 0xCE,
+               0xB5, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC, 0x80,
+               0xF6, 0xCE, 0xB7, 0xCC, 0x81, 0xF6, 0xCE, 0xB9,
+               0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC, 0x81, 0xF6,
+               0xCE, 0xBF, 0xCC, 0x80, 0xF6, 0xCE, 0xBF, 0xCC,
+               0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x80, 0xF6, 0xCF,
+               0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC, 0x80,
+               0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xF6, 0xCE, 0xB1,
+               0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC,
+               0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC, 0x93,
+               0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC,
+               0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB1,
+               0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE,
+               0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
+               0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
+               0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
+               0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85,
+               0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xF6,
+               0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
+               0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
+               0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81,
+               0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCC,
+               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93,
+               0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC,
+               0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xB7,
+               0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC,
+               0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x93,
+               0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC,
+               0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7,
+               0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE,
+               0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
+               0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
+               0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
+               0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85,
+               0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xF6,
+               0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
+               0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
+               0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81,
+               0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC,
+               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93,
+               0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC,
+               0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCF, 0x89,
+               0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC,
+               0x94, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x93,
+               0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC,
+               0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89,
+               0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCF,
+               0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
+               0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
+               0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
+               0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85,
+               0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xF6,
+               0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
+               0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
+               0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81,
+               0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC,
+               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93,
+               0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC,
+               0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xB1,
+               0xCC, 0x86, 0xF6, 0xCE, 0xB1, 0xCC, 0x84, 0xF6,
+               0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE,
+               0xB1, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC, 0x81,
+               0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCD, 0x82, 0xF6,
+               0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE,
+               0x91, 0xCC, 0x86, 0xF6, 0xCE, 0x91, 0xCC, 0x84,
+               0xF6, 0xCE, 0x91, 0xCC, 0x80, 0xF6, 0xCE, 0x91,
+               0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCD, 0x85, 0x20,
+               0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0x20, 0xCC, 0x93,
+               0x20, 0xCD, 0x82, 0xF5, 0x05, 0xC2, 0xA8, 0xCD,
+               0x82, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE,
+               0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7,
+               0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x81, 0xCD,
+               0x85, 0xF6, 0xCE, 0xB7, 0xCD, 0x82, 0xF6, 0xCE,
+               0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x95,
+               0xCC, 0x80, 0xF6, 0xCE, 0x95, 0xCC, 0x81, 0xF6,
+               0xCE, 0x97, 0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC,
+               0x81, 0xF6, 0xCE, 0x97, 0xCD, 0x85, 0xF5, 0x06,
+               0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0x20, 0xCC, 0x93,
+               0xCC, 0x80, 0xF5, 0x06, 0xE1, 0xBE, 0xBF, 0xCC,
+               0x81, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xF5, 0x06,
+               0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0x20, 0xCC, 0x93,
+               0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x86, 0xF6,
+               0xCE, 0xB9, 0xCC, 0x84, 0xF6, 0xCE, 0xB9, 0xCC,
+               0x88, 0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC, 0x88,
+               0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCD, 0x82, 0xF6,
+               0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE,
+               0x99, 0xCC, 0x86, 0xF6, 0xCE, 0x99, 0xCC, 0x84,
+               0xF6, 0xCE, 0x99, 0xCC, 0x80, 0xF6, 0xCE, 0x99,
+               0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE, 0xCC,
+               0x80, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xF5, 0x06,
+               0xE1, 0xBF, 0xBE, 0xCC, 0x81, 0x20, 0xCC, 0x94,
+               0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE, 0xCD,
+               0x82, 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCF,
+               0x85, 0xCC, 0x86, 0xF6, 0xCF, 0x85, 0xCC, 0x84,
+               0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xF6,
+               0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0xCF,
+               0x81, 0xCC, 0x93, 0xF6, 0xCF, 0x81, 0xCC, 0x94,
+               0xF6, 0xCF, 0x85, 0xCD, 0x82, 0xF6, 0xCF, 0x85,
+               0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE, 0xA5, 0xCC,
+               0x86, 0xF6, 0xCE, 0xA5, 0xCC, 0x84, 0xF6, 0xCE,
+               0xA5, 0xCC, 0x80, 0xF6, 0xCE, 0xA5, 0xCC, 0x81,
+               0xF6, 0xCE, 0xA1, 0xCC, 0x94, 0xF5, 0x05, 0xC2,
+               0xA8, 0xCC, 0x80, 0x20, 0xCC, 0x88, 0xCC, 0x80,
+               0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81, 0x20, 0xCC,
+               0x88, 0xCC, 0x81, 0xF6, 0x60, 0xF6, 0xCF, 0x89,
+               0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCD,
+               0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85,
+               0xF6, 0xCF, 0x89, 0xCD, 0x82, 0xF6, 0xCF, 0x89,
+               0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x9F, 0xCC,
+               0x80, 0xF6, 0xCE, 0x9F, 0xCC, 0x81, 0xF6, 0xCE,
+               0xA9, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC, 0x81,
+               0xF6, 0xCE, 0xA9, 0xCD, 0x85, 0xF5, 0x03, 0xC2,
+               0xB4, 0x20, 0xCC, 0x81, 0x20, 0xCC, 0x94, 0xF5,
+               0x04, 0xE2, 0x80, 0x82, 0x20, 0xF5, 0x04, 0xE2,
+               0x80, 0x83, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+               0x20, 0x20, 0x20, 0x20, 0xE2, 0x80, 0x90, 0x20,
+               0xCC, 0xB3, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
+               0x20, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2,
+               0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
+               0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80,
+               0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x21,
+               0x21, 0x20, 0xCC, 0x85, 0x3F, 0x3F, 0x3F, 0x21,
+               0x21, 0x3F, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
+               0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x20, 0x30,
+               0x69, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2B,
+               0xE2, 0x88, 0x92, 0x3D, 0x28, 0x29, 0x6E, 0x30,
+               0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
+               0x39, 0x2B, 0xE2, 0x88, 0x92, 0x3D, 0x28, 0x29,
+               0x52, 0x73, 0x61, 0x2F, 0x63, 0x61, 0x2F, 0x73,
+               0x43, 0xC2, 0xB0, 0x43, 0x63, 0x2F, 0x6F, 0x63,
+               0x2F, 0x75, 0xC6, 0x90, 0xC2, 0xB0, 0x46, 0x67,
+               0x48, 0x48, 0x48, 0x68, 0xC4, 0xA7, 0x49, 0x49,
+               0x4C, 0x6C, 0x4E, 0x4E, 0x6F, 0x50, 0x51, 0x52,
+               0x52, 0x52, 0x53, 0x4D, 0x54, 0x45, 0x4C, 0x54,
+               0x4D, 0x5A, 0xF6, 0xCE, 0xA9, 0x5A, 0xF6, 0x4B,
+               0xF6, 0x41, 0xCC, 0x8A, 0x42, 0x43, 0x65, 0x45,
+               0x46, 0x4D, 0x6F, 0xD7, 0x90, 0xD7, 0x91, 0xD7,
+               0x92, 0xD7, 0x93, 0x69, 0xCE, 0xB3, 0xCE, 0x93,
+               0xCE, 0xA0, 0xE2, 0x88, 0x91, 0x44, 0x64, 0x65,
+               0x69, 0x6A, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x32,
+               0xE2, 0x81, 0x84, 0x33, 0x31, 0xE2, 0x81, 0x84,
+               0x35, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x33, 0xE2,
+               0x81, 0x84, 0x35, 0x34, 0xE2, 0x81, 0x84, 0x35,
+               0x31, 0xE2, 0x81, 0x84, 0x36, 0x35, 0xE2, 0x81,
+               0x84, 0x36, 0x31, 0xE2, 0x81, 0x84, 0x38, 0x33,
+               0xE2, 0x81, 0x84, 0x38, 0x35, 0xE2, 0x81, 0x84,
+               0x38, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x31, 0xE2,
+               0x81, 0x84, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
+               0x49, 0x56, 0x56, 0x56, 0x49, 0x56, 0x49, 0x49,
+               0x56, 0x49, 0x49, 0x49, 0x49, 0x58, 0x58, 0x58,
+               0x49, 0x58, 0x49, 0x49, 0x4C, 0x43, 0x44, 0x4D,
+               0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x76,
+               0x76, 0x76, 0x69, 0x76, 0x69, 0x69, 0x76, 0x69,
+               0x69, 0x69, 0x69, 0x78, 0x78, 0x78, 0x69, 0x78,
+               0x69, 0x69, 0x6C, 0x63, 0x64, 0x6D, 0xF6, 0xE2,
+               0x86, 0x90, 0xCC, 0xB8, 0xF6, 0xE2, 0x86, 0x92,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x86, 0x94, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x87, 0x94, 0xCC, 0xB8, 0xF6, 0xE2, 0x87, 0x92,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0x83, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x88, 0x88, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x88, 0x8B, 0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0xA3,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0xA5, 0xCC, 0xB8,
+               0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
+               0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2,
+               0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE,
+               0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xF6, 0xE2,
+               0x88, 0xBC, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x83,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x85, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x89, 0x88, 0xCC, 0xB8, 0xF6, 0x3D,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xA1, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, 0xF6, 0x3C,
+               0xCC, 0xB8, 0xF6, 0x3E, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x89, 0xA4, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xA5,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB2, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x89, 0xB6, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB7,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x8A, 0x82, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x83,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x86, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x8A, 0x87, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x8A, 0xA2, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xA8,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x89, 0xBC, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBD,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x8A, 0xB2, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB3,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0xF6, 0xE3,
+               0x80, 0x88, 0xF6, 0xE3, 0x80, 0x89, 0x31, 0x32,
+               0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x31,
+               0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31,
+               0x34, 0x31, 0x35, 0x31, 0x36, 0x31, 0x37, 0x31,
+               0x38, 0x31, 0x39, 0x32, 0x30, 0x28, 0x31, 0x29,
+               0x28, 0x32, 0x29, 0x28, 0x33, 0x29, 0x28, 0x34,
+               0x29, 0x28, 0x35, 0x29, 0x28, 0x36, 0x29, 0x28,
+               0x37, 0x29, 0x28, 0x38, 0x29, 0x28, 0x39, 0x29,
+               0x28, 0x31, 0x30, 0x29, 0x28, 0x31, 0x31, 0x29,
+               0x28, 0x31, 0x32, 0x29, 0x28, 0x31, 0x33, 0x29,
+               0x28, 0x31, 0x34, 0x29, 0x28, 0x31, 0x35, 0x29,
+               0x28, 0x31, 0x36, 0x29, 0x28, 0x31, 0x37, 0x29,
+               0x28, 0x31, 0x38, 0x29, 0x28, 0x31, 0x39, 0x29,
+               0x28, 0x32, 0x30, 0x29, 0x31, 0x2E, 0x32, 0x2E,
+               0x33, 0x2E, 0x34, 0x2E, 0x35, 0x2E, 0x36, 0x2E,
+               0x37, 0x2E, 0x38, 0x2E, 0x39, 0x2E, 0x31, 0x30,
+               0x2E, 0x31, 0x31, 0x2E, 0x31, 0x32, 0x2E, 0x31,
+               0x33, 0x2E, 0x31, 0x34, 0x2E, 0x31, 0x35, 0x2E,
+               0x31, 0x36, 0x2E, 0x31, 0x37, 0x2E, 0x31, 0x38,
+               0x2E, 0x31, 0x39, 0x2E, 0x32, 0x30, 0x2E, 0x28,
+               0x61, 0x29, 0x28, 0x62, 0x29, 0x28, 0x63, 0x29,
+               0x28, 0x64, 0x29, 0x28, 0x65, 0x29, 0x28, 0x66,
+               0x29, 0x28, 0x67, 0x29, 0x28, 0x68, 0x29, 0x28,
+               0x69, 0x29, 0x28, 0x6A, 0x29, 0x28, 0x6B, 0x29,
+               0x28, 0x6C, 0x29, 0x28, 0x6D, 0x29, 0x28, 0x6E,
+               0x29, 0x28, 0x6F, 0x29, 0x28, 0x70, 0x29, 0x28,
+               0x71, 0x29, 0x28, 0x72, 0x29, 0x28, 0x73, 0x29,
+               0x28, 0x74, 0x29, 0x28, 0x75, 0x29, 0x28, 0x76,
+               0x29, 0x28, 0x77, 0x29, 0x28, 0x78, 0x29, 0x28,
+               0x79, 0x29, 0x28, 0x7A, 0x29, 0x41, 0x42, 0x43,
+               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
+               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
+               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x30, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
+               0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x3A, 0x3A,
+               0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0xF6, 0xE2,
+               0xAB, 0x9D, 0xCC, 0xB8, 0xE6, 0xAF, 0x8D, 0xE9,
+               0xBE, 0x9F, 0xE4, 0xB8, 0x80, 0xE4, 0xB8, 0xA8,
+               0xE4, 0xB8, 0xB6, 0xE4, 0xB8, 0xBF, 0xE4, 0xB9,
+               0x99, 0xE4, 0xBA, 0x85, 0xE4, 0xBA, 0x8C, 0xE4,
+               0xBA, 0xA0, 0xE4, 0xBA, 0xBA, 0xE5, 0x84, 0xBF,
+               0xE5, 0x85, 0xA5, 0xE5, 0x85, 0xAB, 0xE5, 0x86,
+               0x82, 0xE5, 0x86, 0x96, 0xE5, 0x86, 0xAB, 0xE5,
+               0x87, 0xA0, 0xE5, 0x87, 0xB5, 0xE5, 0x88, 0x80,
+               0xE5, 0x8A, 0x9B, 0xE5, 0x8B, 0xB9, 0xE5, 0x8C,
+               0x95, 0xE5, 0x8C, 0x9A, 0xE5, 0x8C, 0xB8, 0xE5,
+               0x8D, 0x81, 0xE5, 0x8D, 0x9C, 0xE5, 0x8D, 0xA9,
+               0xE5, 0x8E, 0x82, 0xE5, 0x8E, 0xB6, 0xE5, 0x8F,
+               0x88, 0xE5, 0x8F, 0xA3, 0xE5, 0x9B, 0x97, 0xE5,
+               0x9C, 0x9F, 0xE5, 0xA3, 0xAB, 0xE5, 0xA4, 0x82,
+               0xE5, 0xA4, 0x8A, 0xE5, 0xA4, 0x95, 0xE5, 0xA4,
+               0xA7, 0xE5, 0xA5, 0xB3, 0xE5, 0xAD, 0x90, 0xE5,
+               0xAE, 0x80, 0xE5, 0xAF, 0xB8, 0xE5, 0xB0, 0x8F,
+               0xE5, 0xB0, 0xA2, 0xE5, 0xB0, 0xB8, 0xE5, 0xB1,
+               0xAE, 0xE5, 0xB1, 0xB1, 0xE5, 0xB7, 0x9B, 0xE5,
+               0xB7, 0xA5, 0xE5, 0xB7, 0xB1, 0xE5, 0xB7, 0xBE,
+               0xE5, 0xB9, 0xB2, 0xE5, 0xB9, 0xBA, 0xE5, 0xB9,
+               0xBF, 0xE5, 0xBB, 0xB4, 0xE5, 0xBB, 0xBE, 0xE5,
+               0xBC, 0x8B, 0xE5, 0xBC, 0x93, 0xE5, 0xBD, 0x90,
+               0xE5, 0xBD, 0xA1, 0xE5, 0xBD, 0xB3, 0xE5, 0xBF,
+               0x83, 0xE6, 0x88, 0x88, 0xE6, 0x88, 0xB6, 0xE6,
+               0x89, 0x8B, 0xE6, 0x94, 0xAF, 0xE6, 0x94, 0xB4,
+               0xE6, 0x96, 0x87, 0xE6, 0x96, 0x97, 0xE6, 0x96,
+               0xA4, 0xE6, 0x96, 0xB9, 0xE6, 0x97, 0xA0, 0xE6,
+               0x97, 0xA5, 0xE6, 0x9B, 0xB0, 0xE6, 0x9C, 0x88,
+               0xE6, 0x9C, 0xA8, 0xE6, 0xAC, 0xA0, 0xE6, 0xAD,
+               0xA2, 0xE6, 0xAD, 0xB9, 0xE6, 0xAE, 0xB3, 0xE6,
+               0xAF, 0x8B, 0xE6, 0xAF, 0x94, 0xE6, 0xAF, 0x9B,
+               0xE6, 0xB0, 0x8F, 0xE6, 0xB0, 0x94, 0xE6, 0xB0,
+               0xB4, 0xE7, 0x81, 0xAB, 0xE7, 0x88, 0xAA, 0xE7,
+               0x88, 0xB6, 0xE7, 0x88, 0xBB, 0xE7, 0x88, 0xBF,
+               0xE7, 0x89, 0x87, 0xE7, 0x89, 0x99, 0xE7, 0x89,
+               0x9B, 0xE7, 0x8A, 0xAC, 0xE7, 0x8E, 0x84, 0xE7,
+               0x8E, 0x89, 0xE7, 0x93, 0x9C, 0xE7, 0x93, 0xA6,
+               0xE7, 0x94, 0x98, 0xE7, 0x94, 0x9F, 0xE7, 0x94,
+               0xA8, 0xE7, 0x94, 0xB0, 0xE7, 0x96, 0x8B, 0xE7,
+               0x96, 0x92, 0xE7, 0x99, 0xB6, 0xE7, 0x99, 0xBD,
+               0xE7, 0x9A, 0xAE, 0xE7, 0x9A, 0xBF, 0xE7, 0x9B,
+               0xAE, 0xE7, 0x9F, 0x9B, 0xE7, 0x9F, 0xA2, 0xE7,
+               0x9F, 0xB3, 0xE7, 0xA4, 0xBA, 0xE7, 0xA6, 0xB8,
+               0xE7, 0xA6, 0xBE, 0xE7, 0xA9, 0xB4, 0xE7, 0xAB,
+               0x8B, 0xE7, 0xAB, 0xB9, 0xE7, 0xB1, 0xB3, 0xE7,
+               0xB3, 0xB8, 0xE7, 0xBC, 0xB6, 0xE7, 0xBD, 0x91,
+               0xE7, 0xBE, 0x8A, 0xE7, 0xBE, 0xBD, 0xE8, 0x80,
+               0x81, 0xE8, 0x80, 0x8C, 0xE8, 0x80, 0x92, 0xE8,
+               0x80, 0xB3, 0xE8, 0x81, 0xBF, 0xE8, 0x82, 0x89,
+               0xE8, 0x87, 0xA3, 0xE8, 0x87, 0xAA, 0xE8, 0x87,
+               0xB3, 0xE8, 0x87, 0xBC, 0xE8, 0x88, 0x8C, 0xE8,
+               0x88, 0x9B, 0xE8, 0x88, 0x9F, 0xE8, 0x89, 0xAE,
+               0xE8, 0x89, 0xB2, 0xE8, 0x89, 0xB8, 0xE8, 0x99,
+               0x8D, 0xE8, 0x99, 0xAB, 0xE8, 0xA1, 0x80, 0xE8,
+               0xA1, 0x8C, 0xE8, 0xA1, 0xA3, 0xE8, 0xA5, 0xBE,
+               0xE8, 0xA6, 0x8B, 0xE8, 0xA7, 0x92, 0xE8, 0xA8,
+               0x80, 0xE8, 0xB0, 0xB7, 0xE8, 0xB1, 0x86, 0xE8,
+               0xB1, 0x95, 0xE8, 0xB1, 0xB8, 0xE8, 0xB2, 0x9D,
+               0xE8, 0xB5, 0xA4, 0xE8, 0xB5, 0xB0, 0xE8, 0xB6,
+               0xB3, 0xE8, 0xBA, 0xAB, 0xE8, 0xBB, 0x8A, 0xE8,
+               0xBE, 0x9B, 0xE8, 0xBE, 0xB0, 0xE8, 0xBE, 0xB5,
+               0xE9, 0x82, 0x91, 0xE9, 0x85, 0x89, 0xE9, 0x87,
+               0x86, 0xE9, 0x87, 0x8C, 0xE9, 0x87, 0x91, 0xE9,
+               0x95, 0xB7, 0xE9, 0x96, 0x80, 0xE9, 0x98, 0x9C,
+               0xE9, 0x9A, 0xB6, 0xE9, 0x9A, 0xB9, 0xE9, 0x9B,
+               0xA8, 0xE9, 0x9D, 0x91, 0xE9, 0x9D, 0x9E, 0xE9,
+               0x9D, 0xA2, 0xE9, 0x9D, 0xA9, 0xE9, 0x9F, 0x8B,
+               0xE9, 0x9F, 0xAD, 0xE9, 0x9F, 0xB3, 0xE9, 0xA0,
+               0x81, 0xE9, 0xA2, 0xA8, 0xE9, 0xA3, 0x9B, 0xE9,
+               0xA3, 0x9F, 0xE9, 0xA6, 0x96, 0xE9, 0xA6, 0x99,
+               0xE9, 0xA6, 0xAC, 0xE9, 0xAA, 0xA8, 0xE9, 0xAB,
+               0x98, 0xE9, 0xAB, 0x9F, 0xE9, 0xAC, 0xA5, 0xE9,
+               0xAC, 0xAF, 0xE9, 0xAC, 0xB2, 0xE9, 0xAC, 0xBC,
+               0xE9, 0xAD, 0x9A, 0xE9, 0xB3, 0xA5, 0xE9, 0xB9,
+               0xB5, 0xE9, 0xB9, 0xBF, 0xE9, 0xBA, 0xA5, 0xE9,
+               0xBA, 0xBB, 0xE9, 0xBB, 0x83, 0xE9, 0xBB, 0x8D,
+               0xE9, 0xBB, 0x91, 0xE9, 0xBB, 0xB9, 0xE9, 0xBB,
+               0xBD, 0xE9, 0xBC, 0x8E, 0xE9, 0xBC, 0x93, 0xE9,
+               0xBC, 0xA0, 0xE9, 0xBC, 0xBB, 0xE9, 0xBD, 0x8A,
+               0xE9, 0xBD, 0x92, 0xE9, 0xBE, 0x8D, 0xE9, 0xBE,
+               0x9C, 0xE9, 0xBE, 0xA0, 0x20, 0xE3, 0x80, 0x92,
+               0xE5, 0x8D, 0x81, 0xE5, 0x8D, 0x84, 0xE5, 0x8D,
+               0x85, 0xF6, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x81, 0x91, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81,
+               0x93, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x95,
+               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x97, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x81, 0x99, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x81, 0xA1, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81,
+               0xA4, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA6,
+               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA8, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A,
+               0xF6, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0xF6, 0xE3,
+               0x81, 0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81,
+               0xB5, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x81, 0xB8,
+               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xB8, 0xE3,
+               0x82, 0x9A, 0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A,
+               0xF6, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x20,
+               0xE3, 0x82, 0x99, 0x20, 0xE3, 0x82, 0x9A, 0xF6,
+               0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0xE3, 0x82,
+               0x88, 0xE3, 0x82, 0x8A, 0xF6, 0xE3, 0x82, 0xAB,
+               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xAD, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x82, 0xAF, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x82, 0xB7, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82,
+               0xB9, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBB,
+               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBD, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBF, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x83, 0x88, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83,
+               0x8F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x8F,
+               0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x83, 0x92, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x83, 0x92, 0xE3, 0x82,
+               0x9A, 0xF6, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0xF6,
+               0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x83, 0x98, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x83,
+               0x9B, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x9B,
+               0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x82, 0xA6, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x83, 0xAF, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x83, 0xBD, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB3,
+               0xE3, 0x83, 0x88, 0xE1, 0x84, 0x80, 0xE1, 0x84,
+               0x81, 0xE1, 0x86, 0xAA, 0xE1, 0x84, 0x82, 0xE1,
+               0x86, 0xAC, 0xE1, 0x86, 0xAD, 0xE1, 0x84, 0x83,
+               0xE1, 0x84, 0x84, 0xE1, 0x84, 0x85, 0xE1, 0x86,
+               0xB0, 0xE1, 0x86, 0xB1, 0xE1, 0x86, 0xB2, 0xE1,
+               0x86, 0xB3, 0xE1, 0x86, 0xB4, 0xE1, 0x86, 0xB5,
+               0xE1, 0x84, 0x9A, 0xE1, 0x84, 0x86, 0xE1, 0x84,
+               0x87, 0xE1, 0x84, 0x88, 0xE1, 0x84, 0xA1, 0xE1,
+               0x84, 0x89, 0xE1, 0x84, 0x8A, 0xE1, 0x84, 0x8B,
+               0xE1, 0x84, 0x8C, 0xE1, 0x84, 0x8D, 0xE1, 0x84,
+               0x8E, 0xE1, 0x84, 0x8F, 0xE1, 0x84, 0x90, 0xE1,
+               0x84, 0x91, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1,
+               0xE1, 0x85, 0xA2, 0xE1, 0x85, 0xA3, 0xE1, 0x85,
+               0xA4, 0xE1, 0x85, 0xA5, 0xE1, 0x85, 0xA6, 0xE1,
+               0x85, 0xA7, 0xE1, 0x85, 0xA8, 0xE1, 0x85, 0xA9,
+               0xE1, 0x85, 0xAA, 0xE1, 0x85, 0xAB, 0xE1, 0x85,
+               0xAC, 0xE1, 0x85, 0xAD, 0xE1, 0x85, 0xAE, 0xE1,
+               0x85, 0xAF, 0xE1, 0x85, 0xB0, 0xE1, 0x85, 0xB1,
+               0xE1, 0x85, 0xB2, 0xE1, 0x85, 0xB3, 0xE1, 0x85,
+               0xB4, 0xE1, 0x85, 0xB5, 0xE1, 0x85, 0xA0, 0xE1,
+               0x84, 0x94, 0xE1, 0x84, 0x95, 0xE1, 0x87, 0x87,
+               0xE1, 0x87, 0x88, 0xE1, 0x87, 0x8C, 0xE1, 0x87,
+               0x8E, 0xE1, 0x87, 0x93, 0xE1, 0x87, 0x97, 0xE1,
+               0x87, 0x99, 0xE1, 0x84, 0x9C, 0xE1, 0x87, 0x9D,
+               0xE1, 0x87, 0x9F, 0xE1, 0x84, 0x9D, 0xE1, 0x84,
+               0x9E, 0xE1, 0x84, 0xA0, 0xE1, 0x84, 0xA2, 0xE1,
+               0x84, 0xA3, 0xE1, 0x84, 0xA7, 0xE1, 0x84, 0xA9,
+               0xE1, 0x84, 0xAB, 0xE1, 0x84, 0xAC, 0xE1, 0x84,
+               0xAD, 0xE1, 0x84, 0xAE, 0xE1, 0x84, 0xAF, 0xE1,
+               0x84, 0xB2, 0xE1, 0x84, 0xB6, 0xE1, 0x85, 0x80,
+               0xE1, 0x85, 0x87, 0xE1, 0x85, 0x8C, 0xE1, 0x87,
+               0xB1, 0xE1, 0x87, 0xB2, 0xE1, 0x85, 0x97, 0xE1,
+               0x85, 0x98, 0xE1, 0x85, 0x99, 0xE1, 0x86, 0x84,
+               0xE1, 0x86, 0x85, 0xE1, 0x86, 0x88, 0xE1, 0x86,
+               0x91, 0xE1, 0x86, 0x92, 0xE1, 0x86, 0x94, 0xE1,
+               0x86, 0x9E, 0xE1, 0x86, 0xA1, 0xE4, 0xB8, 0x80,
+               0xE4, 0xBA, 0x8C, 0xE4, 0xB8, 0x89, 0xE5, 0x9B,
+               0x9B, 0xE4, 0xB8, 0x8A, 0xE4, 0xB8, 0xAD, 0xE4,
+               0xB8, 0x8B, 0xE7, 0x94, 0xB2, 0xE4, 0xB9, 0x99,
+               0xE4, 0xB8, 0x99, 0xE4, 0xB8, 0x81, 0xE5, 0xA4,
+               0xA9, 0xE5, 0x9C, 0xB0, 0xE4, 0xBA, 0xBA, 0x28,
+               0xE1, 0x84, 0x80, 0x29, 0x28, 0xE1, 0x84, 0x82,
+               0x29, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x28, 0xE1,
+               0x84, 0x85, 0x29, 0x28, 0xE1, 0x84, 0x86, 0x29,
+               0x28, 0xE1, 0x84, 0x87, 0x29, 0x28, 0xE1, 0x84,
+               0x89, 0x29, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x28,
+               0xE1, 0x84, 0x8C, 0x29, 0x28, 0xE1, 0x84, 0x8E,
+               0x29, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x28, 0xE1,
+               0x84, 0x90, 0x29, 0x28, 0xE1, 0x84, 0x91, 0x29,
+               0x28, 0xE1, 0x84, 0x92, 0x29, 0x28, 0xE1, 0x84,
+               0x80, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x82, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x83, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x85, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x86, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x87, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x89, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x8E, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x90, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x91, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x92, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
+               0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x28, 0xE4, 0xB8,
+               0x80, 0x29, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x28,
+               0xE4, 0xB8, 0x89, 0x29, 0x28, 0xE5, 0x9B, 0x9B,
+               0x29, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x28, 0xE5,
+               0x85, 0xAD, 0x29, 0x28, 0xE4, 0xB8, 0x83, 0x29,
+               0x28, 0xE5, 0x85, 0xAB, 0x29, 0x28, 0xE4, 0xB9,
+               0x9D, 0x29, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x28,
+               0xE6, 0x9C, 0x88, 0x29, 0x28, 0xE7, 0x81, 0xAB,
+               0x29, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x28, 0xE6,
+               0x9C, 0xA8, 0x29, 0x28, 0xE9, 0x87, 0x91, 0x29,
+               0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x28, 0xE6, 0x97,
+               0xA5, 0x29, 0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x28,
+               0xE6, 0x9C, 0x89, 0x29, 0x28, 0xE7, 0xA4, 0xBE,
+               0x29, 0x28, 0xE5, 0x90, 0x8D, 0x29, 0x28, 0xE7,
+               0x89, 0xB9, 0x29, 0x28, 0xE8, 0xB2, 0xA1, 0x29,
+               0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x28, 0xE5, 0x8A,
+               0xB4, 0x29, 0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x28,
+               0xE5, 0x91, 0xBC, 0x29, 0x28, 0xE5, 0xAD, 0xA6,
+               0x29, 0x28, 0xE7, 0x9B, 0xA3, 0x29, 0x28, 0xE4,
+               0xBC, 0x81, 0x29, 0x28, 0xE8, 0xB3, 0x87, 0x29,
+               0x28, 0xE5, 0x8D, 0x94, 0x29, 0x28, 0xE7, 0xA5,
+               0xAD, 0x29, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x28,
+               0xE8, 0x87, 0xAA, 0x29, 0x28, 0xE8, 0x87, 0xB3,
+               0x29, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, 0x32,
+               0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32,
+               0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, 0x33,
+               0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0xE1,
+               0x84, 0x80, 0xE1, 0x84, 0x82, 0xE1, 0x84, 0x83,
+               0xE1, 0x84, 0x85, 0xE1, 0x84, 0x86, 0xE1, 0x84,
+               0x87, 0xE1, 0x84, 0x89, 0xE1, 0x84, 0x8B, 0xE1,
+               0x84, 0x8C, 0xE1, 0x84, 0x8E, 0xE1, 0x84, 0x8F,
+               0xE1, 0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1, 0x84,
+               0x92, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0xE1,
+               0x84, 0x82, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x83,
+               0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x85, 0xE1, 0x85,
+               0xA1, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0xE1,
+               0x84, 0x87, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x89,
+               0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x8B, 0xE1, 0x85,
+               0xA1, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0xE1,
+               0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x8F,
+               0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x90, 0xE1, 0x85,
+               0xA1, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0xE1,
+               0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE4, 0xB8, 0x80,
+               0xE4, 0xBA, 0x8C, 0xE4, 0xB8, 0x89, 0xE5, 0x9B,
+               0x9B, 0xE4, 0xBA, 0x94, 0xE5, 0x85, 0xAD, 0xE4,
+               0xB8, 0x83, 0xE5, 0x85, 0xAB, 0xE4, 0xB9, 0x9D,
+               0xE5, 0x8D, 0x81, 0xE6, 0x9C, 0x88, 0xE7, 0x81,
+               0xAB, 0xE6, 0xB0, 0xB4, 0xE6, 0x9C, 0xA8, 0xE9,
+               0x87, 0x91, 0xE5, 0x9C, 0x9F, 0xE6, 0x97, 0xA5,
+               0xE6, 0xA0, 0xAA, 0xE6, 0x9C, 0x89, 0xE7, 0xA4,
+               0xBE, 0xE5, 0x90, 0x8D, 0xE7, 0x89, 0xB9, 0xE8,
+               0xB2, 0xA1, 0xE7, 0xA5, 0x9D, 0xE5, 0x8A, 0xB4,
+               0xE7, 0xA7, 0x98, 0xE7, 0x94, 0xB7, 0xE5, 0xA5,
+               0xB3, 0xE9, 0x81, 0xA9, 0xE5, 0x84, 0xAA, 0xE5,
+               0x8D, 0xB0, 0xE6, 0xB3, 0xA8, 0xE9, 0xA0, 0x85,
+               0xE4, 0xBC, 0x91, 0xE5, 0x86, 0x99, 0xE6, 0xAD,
+               0xA3, 0xE4, 0xB8, 0x8A, 0xE4, 0xB8, 0xAD, 0xE4,
+               0xB8, 0x8B, 0xE5, 0xB7, 0xA6, 0xE5, 0x8F, 0xB3,
+               0xE5, 0x8C, 0xBB, 0xE5, 0xAE, 0x97, 0xE5, 0xAD,
+               0xA6, 0xE7, 0x9B, 0xA3, 0xE4, 0xBC, 0x81, 0xE8,
+               0xB3, 0x87, 0xE5, 0x8D, 0x94, 0xE5, 0xA4, 0x9C,
+               0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39,
+               0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33,
+               0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37,
+               0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x31, 0xE6,
+               0x9C, 0x88, 0x32, 0xE6, 0x9C, 0x88, 0x33, 0xE6,
+               0x9C, 0x88, 0x34, 0xE6, 0x9C, 0x88, 0x35, 0xE6,
+               0x9C, 0x88, 0x36, 0xE6, 0x9C, 0x88, 0x37, 0xE6,
+               0x9C, 0x88, 0x38, 0xE6, 0x9C, 0x88, 0x39, 0xE6,
+               0x9C, 0x88, 0x31, 0x30, 0xE6, 0x9C, 0x88, 0x31,
+               0x31, 0xE6, 0x9C, 0x88, 0x31, 0x32, 0xE6, 0x9C,
+               0x88, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xA4, 0xE3,
+               0x82, 0xA6, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xAA,
+               0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
+               0xAF, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0xB3, 0xE3,
+               0x82, 0xB5, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xB9,
+               0xE3, 0x82, 0xBB, 0xE3, 0x82, 0xBD, 0xE3, 0x82,
+               0xBF, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0x84, 0xE3,
+               0x83, 0x86, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x8A,
+               0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x8C, 0xE3, 0x83,
+               0x8D, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x8F, 0xE3,
+               0x83, 0x92, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0x98,
+               0xE3, 0x83, 0x9B, 0xE3, 0x83, 0x9E, 0xE3, 0x83,
+               0x9F, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0xA1, 0xE3,
+               0x83, 0xA2, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xA6,
+               0xE3, 0x83, 0xA8, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
+               0xAA, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xAC, 0xE3,
+               0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0xB0,
+               0xE3, 0x83, 0xB1, 0xE3, 0x83, 0xB2, 0xE3, 0x82,
+               0xA2, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3,
+               0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xA2,
+               0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82,
+               0xA1, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0xE3,
+               0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2,
+               0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+               0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3,
+               0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,
+               0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
+               0x81, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3,
+               0x83, 0xB3, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9,
+               0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+               0x88, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA8, 0xE3,
+               0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xBC,
+               0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
+               0xB9, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,
+               0x83, 0xA0, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4,
+               0xE3, 0x83, 0xAA, 0xE3, 0x82, 0xAB, 0xE3, 0x83,
+               0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3,
+               0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA,
+               0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
+               0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0xE3,
+               0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3,
+               0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
+               0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3,
+               0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,
+               0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAD, 0xE3, 0x83,
+               0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,
+               0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
+               0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+               0xBC, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3,
+               0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF,
+               0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
+               0xA0, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3,
+               0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,
+               0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAD, 0xE3, 0x83,
+               0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3,
+               0x83, 0x88, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,
+               0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x82,
+               0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3,
+               0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3,
+               0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82,
+               0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3,
+               0x83, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD,
+               0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0xE3, 0x82,
+               0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0xE3,
+               0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,
+               0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+               0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB5, 0xE3,
+               0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB,
+               0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
+               0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0xE3,
+               0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3,
+               0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x82,
+               0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3,
+               0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
+               0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+               0xBC, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x86, 0xE3,
+               0x82, 0x99, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0x88,
+               0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
+               0x88, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x8A, 0xE3,
+               0x83, 0x8E, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83,
+               0xE3, 0x83, 0x88, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
+               0xA4, 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x8F, 0xE3,
+               0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBB,
+               0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x83,
+               0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,
+               0x83, 0x84, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,
+               0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83,
+               0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
+               0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,
+               0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82,
+               0x9A, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3,
+               0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,
+               0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+               0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3,
+               0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,
+               0xE3, 0x82, 0x99, 0xE3, 0x83, 0x95, 0xE3, 0x82,
+               0xA3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
+               0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x83,
+               0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, 0xE3, 0x83,
+               0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,
+               0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF,
+               0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+               0xAB, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
+               0x82, 0xBD, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,
+               0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x92, 0xE3, 0x83,
+               0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0xE3,
+               0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3,
+               0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x98, 0xE3, 0x82,
+               0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3,
+               0x82, 0x99, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99,
+               0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, 0xE3, 0x83,
+               0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3,
+               0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x9B,
+               0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
+               0x88, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0xE3,
+               0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3,
+               0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+               0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3,
+               0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xB3,
+               0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
+               0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0x9E, 0xE3,
+               0x82, 0xA4, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x9E,
+               0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0xE3, 0x83,
+               0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, 0xE3,
+               0x83, 0x9E, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7,
+               0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
+               0x9F, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3,
+               0x83, 0xB3, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA,
+               0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83,
+               0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3,
+               0x83, 0xAB, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB,
+               0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA1, 0xE3, 0x82,
+               0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88, 0xE3,
+               0x83, 0xB3, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,
+               0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
+               0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
+               0x82, 0x99, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC,
+               0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xA6, 0xE3, 0x82,
+               0xA2, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0xAA, 0xE3,
+               0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB,
+               0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
+               0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
+               0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC,
+               0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+               0xAB, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xA0, 0xE3,
+               0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
+               0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+               0xB3, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3,
+               0x83, 0x88, 0x30, 0xE7, 0x82, 0xB9, 0x31, 0xE7,
+               0x82, 0xB9, 0x32, 0xE7, 0x82, 0xB9, 0x33, 0xE7,
+               0x82, 0xB9, 0x34, 0xE7, 0x82, 0xB9, 0x35, 0xE7,
+               0x82, 0xB9, 0x36, 0xE7, 0x82, 0xB9, 0x37, 0xE7,
+               0x82, 0xB9, 0x38, 0xE7, 0x82, 0xB9, 0x39, 0xE7,
+               0x82, 0xB9, 0x31, 0x30, 0xE7, 0x82, 0xB9, 0x31,
+               0x31, 0xE7, 0x82, 0xB9, 0x31, 0x32, 0xE7, 0x82,
+               0xB9, 0x31, 0x33, 0xE7, 0x82, 0xB9, 0x31, 0x34,
+               0xE7, 0x82, 0xB9, 0x31, 0x35, 0xE7, 0x82, 0xB9,
+               0x31, 0x36, 0xE7, 0x82, 0xB9, 0x31, 0x37, 0xE7,
+               0x82, 0xB9, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x31,
+               0x39, 0xE7, 0x82, 0xB9, 0x32, 0x30, 0xE7, 0x82,
+               0xB9, 0x32, 0x31, 0xE7, 0x82, 0xB9, 0x32, 0x32,
+               0xE7, 0x82, 0xB9, 0x32, 0x33, 0xE7, 0x82, 0xB9,
+               0x32, 0x34, 0xE7, 0x82, 0xB9, 0x68, 0x50, 0x61,
+               0x64, 0x61, 0x41, 0x55, 0x62, 0x61, 0x72, 0x6F,
+               0x56, 0x70, 0x63, 0xE5, 0xB9, 0xB3, 0xE6, 0x88,
+               0x90, 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0xE5,
+               0xA4, 0xA7, 0xE6, 0xAD, 0xA3, 0xE6, 0x98, 0x8E,
+               0xE6, 0xB2, 0xBB, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC,
+               0x8F, 0xE4, 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x70,
+               0x41, 0x6E, 0x41, 0xCE, 0xBC, 0x41, 0x6D, 0x41,
+               0x6B, 0x41, 0x4B, 0x42, 0x4D, 0x42, 0x47, 0x42,
+               0x63, 0x61, 0x6C, 0x6B, 0x63, 0x61, 0x6C, 0x70,
+               0x46, 0x6E, 0x46, 0xCE, 0xBC, 0x46, 0xCE, 0xBC,
+               0x67, 0x6D, 0x67, 0x6B, 0x67, 0x48, 0x7A, 0x6B,
+               0x48, 0x7A, 0x4D, 0x48, 0x7A, 0x47, 0x48, 0x7A,
+               0x54, 0x48, 0x7A, 0xCE, 0xBC, 0x6C, 0x6D, 0x6C,
+               0x64, 0x6C, 0x6B, 0x6C, 0x66, 0x6D, 0x6E, 0x6D,
+               0xCE, 0xBC, 0x6D, 0x6D, 0x6D, 0x63, 0x6D, 0x6B,
+               0x6D, 0x6D, 0x6D, 0x32, 0x63, 0x6D, 0x32, 0x6D,
+               0x32, 0x6B, 0x6D, 0x32, 0x6D, 0x6D, 0x33, 0x63,
+               0x6D, 0x33, 0x6D, 0x33, 0x6B, 0x6D, 0x33, 0x6D,
+               0xE2, 0x88, 0x95, 0x73, 0x6D, 0xE2, 0x88, 0x95,
+               0x73, 0x32, 0x50, 0x61, 0x6B, 0x50, 0x61, 0x4D,
+               0x50, 0x61, 0x47, 0x50, 0x61, 0x72, 0x61, 0x64,
+               0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x72,
+               0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x70,
+               0x73, 0x6E, 0x73, 0xCE, 0xBC, 0x73, 0x6D, 0x73,
+               0x70, 0x56, 0x6E, 0x56, 0xCE, 0xBC, 0x56, 0x6D,
+               0x56, 0x6B, 0x56, 0x4D, 0x56, 0x70, 0x57, 0x6E,
+               0x57, 0xCE, 0xBC, 0x57, 0x6D, 0x57, 0x6B, 0x57,
+               0x4D, 0x57, 0x6B, 0xCE, 0xA9, 0x4D, 0xCE, 0xA9,
+               0x61, 0x2E, 0x6D, 0x2E, 0x42, 0x71, 0x63, 0x63,
+               0x63, 0x64, 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67,
+               0x43, 0x6F, 0x2E, 0x64, 0x42, 0x47, 0x79, 0x68,
+               0x61, 0x48, 0x50, 0x69, 0x6E, 0x4B, 0x4B, 0x4B,
+               0x4D, 0x6B, 0x74, 0x6C, 0x6D, 0x6C, 0x6E, 0x6C,
+               0x6F, 0x67, 0x6C, 0x78, 0x6D, 0x62, 0x6D, 0x69,
+               0x6C, 0x6D, 0x6F, 0x6C, 0x50, 0x48, 0x70, 0x2E,
+               0x6D, 0x2E, 0x50, 0x50, 0x4D, 0x50, 0x52, 0x73,
+               0x72, 0x53, 0x76, 0x57, 0x62, 0x31, 0xE6, 0x97,
+               0xA5, 0x32, 0xE6, 0x97, 0xA5, 0x33, 0xE6, 0x97,
+               0xA5, 0x34, 0xE6, 0x97, 0xA5, 0x35, 0xE6, 0x97,
+               0xA5, 0x36, 0xE6, 0x97, 0xA5, 0x37, 0xE6, 0x97,
+               0xA5, 0x38, 0xE6, 0x97, 0xA5, 0x39, 0xE6, 0x97,
+               0xA5, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x31, 0x31,
+               0xE6, 0x97, 0xA5, 0x31, 0x32, 0xE6, 0x97, 0xA5,
+               0x31, 0x33, 0xE6, 0x97, 0xA5, 0x31, 0x34, 0xE6,
+               0x97, 0xA5, 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x31,
+               0x36, 0xE6, 0x97, 0xA5, 0x31, 0x37, 0xE6, 0x97,
+               0xA5, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x31, 0x39,
+               0xE6, 0x97, 0xA5, 0x32, 0x30, 0xE6, 0x97, 0xA5,
+               0x32, 0x31, 0xE6, 0x97, 0xA5, 0x32, 0x32, 0xE6,
+               0x97, 0xA5, 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x32,
+               0x34, 0xE6, 0x97, 0xA5, 0x32, 0x35, 0xE6, 0x97,
+               0xA5, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x32, 0x37,
+               0xE6, 0x97, 0xA5, 0x32, 0x38, 0xE6, 0x97, 0xA5,
+               0x32, 0x39, 0xE6, 0x97, 0xA5, 0x33, 0x30, 0xE6,
+               0x97, 0xA5, 0x33, 0x31, 0xE6, 0x97, 0xA5, 0xF6,
+               0xE8, 0xB1, 0x88, 0xF6, 0xE6, 0x9B, 0xB4, 0xF6,
+               0xE8, 0xBB, 0x8A, 0xF6, 0xE8, 0xB3, 0x88, 0xF6,
+               0xE6, 0xBB, 0x91, 0xF6, 0xE4, 0xB8, 0xB2, 0xF6,
+               0xE5, 0x8F, 0xA5, 0xF6, 0xE9, 0xBE, 0x9C, 0xF6,
+               0xE9, 0xBE, 0x9C, 0xF6, 0xE5, 0xA5, 0x91, 0xF6,
+               0xE9, 0x87, 0x91, 0xF6, 0xE5, 0x96, 0x87, 0xF6,
+               0xE5, 0xA5, 0x88, 0xF6, 0xE6, 0x87, 0xB6, 0xF6,
+               0xE7, 0x99, 0xA9, 0xF6, 0xE7, 0xBE, 0x85, 0xF6,
+               0xE8, 0x98, 0xBF, 0xF6, 0xE8, 0x9E, 0xBA, 0xF6,
+               0xE8, 0xA3, 0xB8, 0xF6, 0xE9, 0x82, 0x8F, 0xF6,
+               0xE6, 0xA8, 0x82, 0xF6, 0xE6, 0xB4, 0x9B, 0xF6,
+               0xE7, 0x83, 0x99, 0xF6, 0xE7, 0x8F, 0x9E, 0xF6,
+               0xE8, 0x90, 0xBD, 0xF6, 0xE9, 0x85, 0xAA, 0xF6,
+               0xE9, 0xA7, 0xB1, 0xF6, 0xE4, 0xBA, 0x82, 0xF6,
+               0xE5, 0x8D, 0xB5, 0xF6, 0xE6, 0xAC, 0x84, 0xF6,
+               0xE7, 0x88, 0x9B, 0xF6, 0xE8, 0x98, 0xAD, 0xF6,
+               0xE9, 0xB8, 0x9E, 0xF6, 0xE5, 0xB5, 0x90, 0xF6,
+               0xE6, 0xBF, 0xAB, 0xF6, 0xE8, 0x97, 0x8D, 0xF6,
+               0xE8, 0xA5, 0xA4, 0xF6, 0xE6, 0x8B, 0x89, 0xF6,
+               0xE8, 0x87, 0x98, 0xF6, 0xE8, 0xA0, 0x9F, 0xF6,
+               0xE5, 0xBB, 0x8A, 0xF6, 0xE6, 0x9C, 0x97, 0xF6,
+               0xE6, 0xB5, 0xAA, 0xF6, 0xE7, 0x8B, 0xBC, 0xF6,
+               0xE9, 0x83, 0x8E, 0xF6, 0xE4, 0xBE, 0x86, 0xF6,
+               0xE5, 0x86, 0xB7, 0xF6, 0xE5, 0x8B, 0x9E, 0xF6,
+               0xE6, 0x93, 0x84, 0xF6, 0xE6, 0xAB, 0x93, 0xF6,
+               0xE7, 0x88, 0x90, 0xF6, 0xE7, 0x9B, 0xA7, 0xF6,
+               0xE8, 0x80, 0x81, 0xF6, 0xE8, 0x98, 0x86, 0xF6,
+               0xE8, 0x99, 0x9C, 0xF6, 0xE8, 0xB7, 0xAF, 0xF6,
+               0xE9, 0x9C, 0xB2, 0xF6, 0xE9, 0xAD, 0xAF, 0xF6,
+               0xE9, 0xB7, 0xBA, 0xF6, 0xE7, 0xA2, 0x8C, 0xF6,
+               0xE7, 0xA5, 0xBF, 0xF6, 0xE7, 0xB6, 0xA0, 0xF6,
+               0xE8, 0x8F, 0x89, 0xF6, 0xE9, 0x8C, 0x84, 0xF6,
+               0xE9, 0xB9, 0xBF, 0xF6, 0xE8, 0xAB, 0x96, 0xF6,
+               0xE5, 0xA3, 0x9F, 0xF6, 0xE5, 0xBC, 0x84, 0xF6,
+               0xE7, 0xB1, 0xA0, 0xF6, 0xE8, 0x81, 0xBE, 0xF6,
+               0xE7, 0x89, 0xA2, 0xF6, 0xE7, 0xA3, 0x8A, 0xF6,
+               0xE8, 0xB3, 0x82, 0xF6, 0xE9, 0x9B, 0xB7, 0xF6,
+               0xE5, 0xA3, 0x98, 0xF6, 0xE5, 0xB1, 0xA2, 0xF6,
+               0xE6, 0xA8, 0x93, 0xF6, 0xE6, 0xB7, 0x9A, 0xF6,
+               0xE6, 0xBC, 0x8F, 0xF6, 0xE7, 0xB4, 0xAF, 0xF6,
+               0xE7, 0xB8, 0xB7, 0xF6, 0xE9, 0x99, 0x8B, 0xF6,
+               0xE5, 0x8B, 0x92, 0xF6, 0xE8, 0x82, 0x8B, 0xF6,
+               0xE5, 0x87, 0x9C, 0xF6, 0xE5, 0x87, 0x8C, 0xF6,
+               0xE7, 0xA8, 0x9C, 0xF6, 0xE7, 0xB6, 0xBE, 0xF6,
+               0xE8, 0x8F, 0xB1, 0xF6, 0xE9, 0x99, 0xB5, 0xF6,
+               0xE8, 0xAE, 0x80, 0xF6, 0xE6, 0x8B, 0x8F, 0xF6,
+               0xE6, 0xA8, 0x82, 0xF6, 0xE8, 0xAB, 0xBE, 0xF6,
+               0xE4, 0xB8, 0xB9, 0xF6, 0xE5, 0xAF, 0xA7, 0xF6,
+               0xE6, 0x80, 0x92, 0xF6, 0xE7, 0x8E, 0x87, 0xF6,
+               0xE7, 0x95, 0xB0, 0xF6, 0xE5, 0x8C, 0x97, 0xF6,
+               0xE7, 0xA3, 0xBB, 0xF6, 0xE4, 0xBE, 0xBF, 0xF6,
+               0xE5, 0xBE, 0xA9, 0xF6, 0xE4, 0xB8, 0x8D, 0xF6,
+               0xE6, 0xB3, 0x8C, 0xF6, 0xE6, 0x95, 0xB8, 0xF6,
+               0xE7, 0xB4, 0xA2, 0xF6, 0xE5, 0x8F, 0x83, 0xF6,
+               0xE5, 0xA1, 0x9E, 0xF6, 0xE7, 0x9C, 0x81, 0xF6,
+               0xE8, 0x91, 0x89, 0xF6, 0xE8, 0xAA, 0xAA, 0xF6,
+               0xE6, 0xAE, 0xBA, 0xF6, 0xE8, 0xBE, 0xB0, 0xF6,
+               0xE6, 0xB2, 0x88, 0xF6, 0xE6, 0x8B, 0xBE, 0xF6,
+               0xE8, 0x8B, 0xA5, 0xF6, 0xE6, 0x8E, 0xA0, 0xF6,
+               0xE7, 0x95, 0xA5, 0xF6, 0xE4, 0xBA, 0xAE, 0xF6,
+               0xE5, 0x85, 0xA9, 0xF6, 0xE5, 0x87, 0x89, 0xF6,
+               0xE6, 0xA2, 0x81, 0xF6, 0xE7, 0xB3, 0xA7, 0xF6,
+               0xE8, 0x89, 0xAF, 0xF6, 0xE8, 0xAB, 0x92, 0xF6,
+               0xE9, 0x87, 0x8F, 0xF6, 0xE5, 0x8B, 0xB5, 0xF6,
+               0xE5, 0x91, 0x82, 0xF6, 0xE5, 0xA5, 0xB3, 0xF6,
+               0xE5, 0xBB, 0xAC, 0xF6, 0xE6, 0x97, 0x85, 0xF6,
+               0xE6, 0xBF, 0xBE, 0xF6, 0xE7, 0xA4, 0xAA, 0xF6,
+               0xE9, 0x96, 0xAD, 0xF6, 0xE9, 0xA9, 0xAA, 0xF6,
+               0xE9, 0xBA, 0x97, 0xF6, 0xE9, 0xBB, 0x8E, 0xF6,
+               0xE5, 0x8A, 0x9B, 0xF6, 0xE6, 0x9B, 0x86, 0xF6,
+               0xE6, 0xAD, 0xB7, 0xF6, 0xE8, 0xBD, 0xA2, 0xF6,
+               0xE5, 0xB9, 0xB4, 0xF6, 0xE6, 0x86, 0x90, 0xF6,
+               0xE6, 0x88, 0x80, 0xF6, 0xE6, 0x92, 0x9A, 0xF6,
+               0xE6, 0xBC, 0xA3, 0xF6, 0xE7, 0x85, 0x89, 0xF6,
+               0xE7, 0x92, 0x89, 0xF6, 0xE7, 0xA7, 0x8A, 0xF6,
+               0xE7, 0xB7, 0xB4, 0xF6, 0xE8, 0x81, 0xAF, 0xF6,
+               0xE8, 0xBC, 0xA6, 0xF6, 0xE8, 0x93, 0xAE, 0xF6,
+               0xE9, 0x80, 0xA3, 0xF6, 0xE9, 0x8D, 0x8A, 0xF6,
+               0xE5, 0x88, 0x97, 0xF6, 0xE5, 0x8A, 0xA3, 0xF6,
+               0xE5, 0x92, 0xBD, 0xF6, 0xE7, 0x83, 0x88, 0xF6,
+               0xE8, 0xA3, 0x82, 0xF6, 0xE8, 0xAA, 0xAA, 0xF6,
+               0xE5, 0xBB, 0x89, 0xF6, 0xE5, 0xBF, 0xB5, 0xF6,
+               0xE6, 0x8D, 0xBB, 0xF6, 0xE6, 0xAE, 0xAE, 0xF6,
+               0xE7, 0xB0, 0xBE, 0xF6, 0xE7, 0x8D, 0xB5, 0xF6,
+               0xE4, 0xBB, 0xA4, 0xF6, 0xE5, 0x9B, 0xB9, 0xF6,
+               0xE5, 0xAF, 0xA7, 0xF6, 0xE5, 0xB6, 0xBA, 0xF6,
+               0xE6, 0x80, 0x9C, 0xF6, 0xE7, 0x8E, 0xB2, 0xF6,
+               0xE7, 0x91, 0xA9, 0xF6, 0xE7, 0xBE, 0x9A, 0xF6,
+               0xE8, 0x81, 0x86, 0xF6, 0xE9, 0x88, 0xB4, 0xF6,
+               0xE9, 0x9B, 0xB6, 0xF6, 0xE9, 0x9D, 0x88, 0xF6,
+               0xE9, 0xA0, 0x98, 0xF6, 0xE4, 0xBE, 0x8B, 0xF6,
+               0xE7, 0xA6, 0xAE, 0xF6, 0xE9, 0x86, 0xB4, 0xF6,
+               0xE9, 0x9A, 0xB8, 0xF6, 0xE6, 0x83, 0xA1, 0xF6,
+               0xE4, 0xBA, 0x86, 0xF6, 0xE5, 0x83, 0x9A, 0xF6,
+               0xE5, 0xAF, 0xAE, 0xF6, 0xE5, 0xB0, 0xBF, 0xF6,
+               0xE6, 0x96, 0x99, 0xF6, 0xE6, 0xA8, 0x82, 0xF6,
+               0xE7, 0x87, 0x8E, 0xF6, 0xE7, 0x99, 0x82, 0xF6,
+               0xE8, 0x93, 0xBC, 0xF6, 0xE9, 0x81, 0xBC, 0xF6,
+               0xE9, 0xBE, 0x8D, 0xF6, 0xE6, 0x9A, 0x88, 0xF6,
+               0xE9, 0x98, 0xAE, 0xF6, 0xE5, 0x8A, 0x89, 0xF6,
+               0xE6, 0x9D, 0xBB, 0xF6, 0xE6, 0x9F, 0xB3, 0xF6,
+               0xE6, 0xB5, 0x81, 0xF6, 0xE6, 0xBA, 0x9C, 0xF6,
+               0xE7, 0x90, 0x89, 0xF6, 0xE7, 0x95, 0x99, 0xF6,
+               0xE7, 0xA1, 0xAB, 0xF6, 0xE7, 0xB4, 0x90, 0xF6,
+               0xE9, 0xA1, 0x9E, 0xF6, 0xE5, 0x85, 0xAD, 0xF6,
+               0xE6, 0x88, 0xAE, 0xF6, 0xE9, 0x99, 0xB8, 0xF6,
+               0xE5, 0x80, 0xAB, 0xF6, 0xE5, 0xB4, 0x99, 0xF6,
+               0xE6, 0xB7, 0xAA, 0xF6, 0xE8, 0xBC, 0xAA, 0xF6,
+               0xE5, 0xBE, 0x8B, 0xF6, 0xE6, 0x85, 0x84, 0xF6,
+               0xE6, 0xA0, 0x97, 0xF6, 0xE7, 0x8E, 0x87, 0xF6,
+               0xE9, 0x9A, 0x86, 0xF6, 0xE5, 0x88, 0xA9, 0xF6,
+               0xE5, 0x90, 0x8F, 0xF6, 0xE5, 0xB1, 0xA5, 0xF6,
+               0xE6, 0x98, 0x93, 0xF6, 0xE6, 0x9D, 0x8E, 0xF6,
+               0xE6, 0xA2, 0xA8, 0xF6, 0xE6, 0xB3, 0xA5, 0xF6,
+               0xE7, 0x90, 0x86, 0xF6, 0xE7, 0x97, 0xA2, 0xF6,
+               0xE7, 0xBD, 0xB9, 0xF6, 0xE8, 0xA3, 0x8F, 0xF6,
+               0xE8, 0xA3, 0xA1, 0xF6, 0xE9, 0x87, 0x8C, 0xF6,
+               0xE9, 0x9B, 0xA2, 0xF6, 0xE5, 0x8C, 0xBF, 0xF6,
+               0xE6, 0xBA, 0xBA, 0xF6, 0xE5, 0x90, 0x9D, 0xF6,
+               0xE7, 0x87, 0x90, 0xF6, 0xE7, 0x92, 0x98, 0xF6,
+               0xE8, 0x97, 0xBA, 0xF6, 0xE9, 0x9A, 0xA3, 0xF6,
+               0xE9, 0xB1, 0x97, 0xF6, 0xE9, 0xBA, 0x9F, 0xF6,
+               0xE6, 0x9E, 0x97, 0xF6, 0xE6, 0xB7, 0x8B, 0xF6,
+               0xE8, 0x87, 0xA8, 0xF6, 0xE7, 0xAB, 0x8B, 0xF6,
+               0xE7, 0xAC, 0xA0, 0xF6, 0xE7, 0xB2, 0x92, 0xF6,
+               0xE7, 0x8B, 0x80, 0xF6, 0xE7, 0x82, 0x99, 0xF6,
+               0xE8, 0xAD, 0x98, 0xF6, 0xE4, 0xBB, 0x80, 0xF6,
+               0xE8, 0x8C, 0xB6, 0xF6, 0xE5, 0x88, 0xBA, 0xF6,
+               0xE5, 0x88, 0x87, 0xF6, 0xE5, 0xBA, 0xA6, 0xF6,
+               0xE6, 0x8B, 0x93, 0xF6, 0xE7, 0xB3, 0x96, 0xF6,
+               0xE5, 0xAE, 0x85, 0xF6, 0xE6, 0xB4, 0x9E, 0xF6,
+               0xE6, 0x9A, 0xB4, 0xF6, 0xE8, 0xBC, 0xBB, 0xF6,
+               0xE8, 0xA1, 0x8C, 0xF6, 0xE9, 0x99, 0x8D, 0xF6,
+               0xE8, 0xA6, 0x8B, 0xF6, 0xE5, 0xBB, 0x93, 0xF6,
+               0xE5, 0x85, 0x80, 0xF6, 0xE5, 0x97, 0x80, 0xF6,
+               0xE5, 0xA1, 0x9A, 0xF6, 0xE6, 0x99, 0xB4, 0xF6,
+               0xE5, 0x87, 0x9E, 0xF6, 0xE7, 0x8C, 0xAA, 0xF6,
+               0xE7, 0x9B, 0x8A, 0xF6, 0xE7, 0xA4, 0xBC, 0xF6,
+               0xE7, 0xA5, 0x9E, 0xF6, 0xE7, 0xA5, 0xA5, 0xF6,
+               0xE7, 0xA6, 0x8F, 0xF6, 0xE9, 0x9D, 0x96, 0xF6,
+               0xE7, 0xB2, 0xBE, 0xF6, 0xE7, 0xBE, 0xBD, 0xF6,
+               0xE8, 0x98, 0x92, 0xF6, 0xE8, 0xAB, 0xB8, 0xF6,
+               0xE9, 0x80, 0xB8, 0xF6, 0xE9, 0x83, 0xBD, 0xF6,
+               0xE9, 0xA3, 0xAF, 0xF6, 0xE9, 0xA3, 0xBC, 0xF6,
+               0xE9, 0xA4, 0xA8, 0xF6, 0xE9, 0xB6, 0xB4, 0xF6,
+               0xE4, 0xBE, 0xAE, 0xF6, 0xE5, 0x83, 0xA7, 0xF6,
+               0xE5, 0x85, 0x8D, 0xF6, 0xE5, 0x8B, 0x89, 0xF6,
+               0xE5, 0x8B, 0xA4, 0xF6, 0xE5, 0x8D, 0x91, 0xF6,
+               0xE5, 0x96, 0x9D, 0xF6, 0xE5, 0x98, 0x86, 0xF6,
+               0xE5, 0x99, 0xA8, 0xF6, 0xE5, 0xA1, 0x80, 0xF6,
+               0xE5, 0xA2, 0xA8, 0xF6, 0xE5, 0xB1, 0xA4, 0xF6,
+               0xE5, 0xB1, 0xAE, 0xF6, 0xE6, 0x82, 0x94, 0xF6,
+               0xE6, 0x85, 0xA8, 0xF6, 0xE6, 0x86, 0x8E, 0xF6,
+               0xE6, 0x87, 0xB2, 0xF6, 0xE6, 0x95, 0x8F, 0xF6,
+               0xE6, 0x97, 0xA2, 0xF6, 0xE6, 0x9A, 0x91, 0xF6,
+               0xE6, 0xA2, 0x85, 0xF6, 0xE6, 0xB5, 0xB7, 0xF6,
+               0xE6, 0xB8, 0x9A, 0xF6, 0xE6, 0xBC, 0xA2, 0xF6,
+               0xE7, 0x85, 0xAE, 0xF6, 0xE7, 0x88, 0xAB, 0xF6,
+               0xE7, 0x90, 0xA2, 0xF6, 0xE7, 0xA2, 0x91, 0xF6,
+               0xE7, 0xA4, 0xBE, 0xF6, 0xE7, 0xA5, 0x89, 0xF6,
+               0xE7, 0xA5, 0x88, 0xF6, 0xE7, 0xA5, 0x90, 0xF6,
+               0xE7, 0xA5, 0x96, 0xF6, 0xE7, 0xA5, 0x9D, 0xF6,
+               0xE7, 0xA6, 0x8D, 0xF6, 0xE7, 0xA6, 0x8E, 0xF6,
+               0xE7, 0xA9, 0x80, 0xF6, 0xE7, 0xAA, 0x81, 0xF6,
+               0xE7, 0xAF, 0x80, 0xF6, 0xE7, 0xB7, 0xB4, 0xF6,
+               0xE7, 0xB8, 0x89, 0xF6, 0xE7, 0xB9, 0x81, 0xF6,
+               0xE7, 0xBD, 0xB2, 0xF6, 0xE8, 0x80, 0x85, 0xF6,
+               0xE8, 0x87, 0xAD, 0xF6, 0xE8, 0x89, 0xB9, 0xF6,
+               0xE8, 0x89, 0xB9, 0xF6, 0xE8, 0x91, 0x97, 0xF6,
+               0xE8, 0xA4, 0x90, 0xF6, 0xE8, 0xA6, 0x96, 0xF6,
+               0xE8, 0xAC, 0x81, 0xF6, 0xE8, 0xAC, 0xB9, 0xF6,
+               0xE8, 0xB3, 0x93, 0xF6, 0xE8, 0xB4, 0x88, 0xF6,
+               0xE8, 0xBE, 0xB6, 0xF6, 0xE9, 0x80, 0xB8, 0xF6,
+               0xE9, 0x9B, 0xA3, 0xF6, 0xE9, 0x9F, 0xBF, 0xF6,
+               0xE9, 0xA0, 0xBB, 0x66, 0x66, 0x66, 0x69, 0x66,
+               0x6C, 0x66, 0x66, 0x69, 0x66, 0x66, 0x6C, 0x73,
+               0x74, 0x73, 0x74, 0xD5, 0xB4, 0xD5, 0xB6, 0xD5,
+               0xB4, 0xD5, 0xA5, 0xD5, 0xB4, 0xD5, 0xAB, 0xD5,
+               0xBE, 0xD5, 0xB6, 0xD5, 0xB4, 0xD5, 0xAD, 0xF6,
+               0xD7, 0x99, 0xD6, 0xB4, 0xF6, 0xD7, 0xB2, 0xD6,
+               0xB7, 0xD7, 0xA2, 0xD7, 0x90, 0xD7, 0x93, 0xD7,
+               0x94, 0xD7, 0x9B, 0xD7, 0x9C, 0xD7, 0x9D, 0xD7,
+               0xA8, 0xD7, 0xAA, 0x2B, 0xF6, 0xD7, 0xA9, 0xD7,
+               0x81, 0xF6, 0xD7, 0xA9, 0xD7, 0x82, 0xF6, 0xD7,
+               0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0xF6, 0xD7, 0xA9,
+               0xD6, 0xBC, 0xD7, 0x82, 0xF6, 0xD7, 0x90, 0xD6,
+               0xB7, 0xF6, 0xD7, 0x90, 0xD6, 0xB8, 0xF6, 0xD7,
+               0x90, 0xD6, 0xBC, 0xF6, 0xD7, 0x91, 0xD6, 0xBC,
+               0xF6, 0xD7, 0x92, 0xD6, 0xBC, 0xF6, 0xD7, 0x93,
+               0xD6, 0xBC, 0xF6, 0xD7, 0x94, 0xD6, 0xBC, 0xF6,
+               0xD7, 0x95, 0xD6, 0xBC, 0xF6, 0xD7, 0x96, 0xD6,
+               0xBC, 0xF6, 0xD7, 0x98, 0xD6, 0xBC, 0xF6, 0xD7,
+               0x99, 0xD6, 0xBC, 0xF6, 0xD7, 0x9A, 0xD6, 0xBC,
+               0xF6, 0xD7, 0x9B, 0xD6, 0xBC, 0xF6, 0xD7, 0x9C,
+               0xD6, 0xBC, 0xF6, 0xD7, 0x9E, 0xD6, 0xBC, 0xF6,
+               0xD7, 0xA0, 0xD6, 0xBC, 0xF6, 0xD7, 0xA1, 0xD6,
+               0xBC, 0xF6, 0xD7, 0xA3, 0xD6, 0xBC, 0xF6, 0xD7,
+               0xA4, 0xD6, 0xBC, 0xF6, 0xD7, 0xA6, 0xD6, 0xBC,
+               0xF6, 0xD7, 0xA7, 0xD6, 0xBC, 0xF6, 0xD7, 0xA8,
+               0xD6, 0xBC, 0xF6, 0xD7, 0xA9, 0xD6, 0xBC, 0xF6,
+               0xD7, 0xAA, 0xD6, 0xBC, 0xF6, 0xD7, 0x95, 0xD6,
+               0xB9, 0xF6, 0xD7, 0x91, 0xD6, 0xBF, 0xF6, 0xD7,
+               0x9B, 0xD6, 0xBF, 0xF6, 0xD7, 0xA4, 0xD6, 0xBF,
+               0xD7, 0x90, 0xD7, 0x9C, 0xD9, 0xB1, 0xD9, 0xB1,
+               0xD9, 0xBB, 0xD9, 0xBB, 0xD9, 0xBB, 0xD9, 0xBB,
+               0xD9, 0xBE, 0xD9, 0xBE, 0xD9, 0xBE, 0xD9, 0xBE,
+               0xDA, 0x80, 0xDA, 0x80, 0xDA, 0x80, 0xDA, 0x80,
+               0xD9, 0xBA, 0xD9, 0xBA, 0xD9, 0xBA, 0xD9, 0xBA,
+               0xD9, 0xBF, 0xD9, 0xBF, 0xD9, 0xBF, 0xD9, 0xBF,
+               0xD9, 0xB9, 0xD9, 0xB9, 0xD9, 0xB9, 0xD9, 0xB9,
+               0xDA, 0xA4, 0xDA, 0xA4, 0xDA, 0xA4, 0xDA, 0xA4,
+               0xDA, 0xA6, 0xDA, 0xA6, 0xDA, 0xA6, 0xDA, 0xA6,
+               0xDA, 0x84, 0xDA, 0x84, 0xDA, 0x84, 0xDA, 0x84,
+               0xDA, 0x83, 0xDA, 0x83, 0xDA, 0x83, 0xDA, 0x83,
+               0xDA, 0x86, 0xDA, 0x86, 0xDA, 0x86, 0xDA, 0x86,
+               0xDA, 0x87, 0xDA, 0x87, 0xDA, 0x87, 0xDA, 0x87,
+               0xDA, 0x8D, 0xDA, 0x8D, 0xDA, 0x8C, 0xDA, 0x8C,
+               0xDA, 0x8E, 0xDA, 0x8E, 0xDA, 0x88, 0xDA, 0x88,
+               0xDA, 0x98, 0xDA, 0x98, 0xDA, 0x91, 0xDA, 0x91,
+               0xDA, 0xA9, 0xDA, 0xA9, 0xDA, 0xA9, 0xDA, 0xA9,
+               0xDA, 0xAF, 0xDA, 0xAF, 0xDA, 0xAF, 0xDA, 0xAF,
+               0xDA, 0xB3, 0xDA, 0xB3, 0xDA, 0xB3, 0xDA, 0xB3,
+               0xDA, 0xB1, 0xDA, 0xB1, 0xDA, 0xB1, 0xDA, 0xB1,
+               0xDA, 0xBA, 0xDA, 0xBA, 0xDA, 0xBB, 0xDA, 0xBB,
+               0xDA, 0xBB, 0xDA, 0xBB, 0xDB, 0x95, 0xD9, 0x94,
+               0xDB, 0x95, 0xD9, 0x94, 0xDB, 0x81, 0xDB, 0x81,
+               0xDB, 0x81, 0xDB, 0x81, 0xDA, 0xBE, 0xDA, 0xBE,
+               0xDA, 0xBE, 0xDA, 0xBE, 0xDB, 0x92, 0xDB, 0x92,
+               0xDB, 0x92, 0xD9, 0x94, 0xDB, 0x92, 0xD9, 0x94,
+               0xDA, 0xAD, 0xDA, 0xAD, 0xDA, 0xAD, 0xDA, 0xAD,
+               0xDB, 0x87, 0xDB, 0x87, 0xDB, 0x86, 0xDB, 0x86,
+               0xDB, 0x88, 0xDB, 0x88, 0xDB, 0x87, 0xD9, 0xB4,
+               0xDB, 0x8B, 0xDB, 0x8B, 0xDB, 0x85, 0xDB, 0x85,
+               0xDB, 0x89, 0xDB, 0x89, 0xDB, 0x90, 0xDB, 0x90,
+               0xDB, 0x90, 0xDB, 0x90, 0xD9, 0x89, 0xD9, 0x89,
+               0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x8A,
+               0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x8A, 0xD9, 0x94,
+               0xDB, 0x95, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x95,
+               0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x8A,
+               0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x8A, 0xD9, 0x94,
+               0xDB, 0x87, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87,
+               0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0xD9, 0x8A,
+               0xD9, 0x94, 0xDB, 0x86, 0xD9, 0x8A, 0xD9, 0x94,
+               0xDB, 0x88, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x88,
+               0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0xD9, 0x8A,
+               0xD9, 0x94, 0xDB, 0x90, 0xD9, 0x8A, 0xD9, 0x94,
+               0xDB, 0x90, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89,
+               0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xD9, 0x8A,
+               0xD9, 0x94, 0xD9, 0x89, 0xDB, 0x8C, 0xDB, 0x8C,
+               0xDB, 0x8C, 0xDB, 0x8C, 0xD9, 0x8A, 0xD9, 0x94,
+               0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD,
+               0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A,
+               0xD9, 0x94, 0xD9, 0x89, 0xD9, 0x8A, 0xD9, 0x94,
+               0xD9, 0x8A, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8, 0xA8,
+               0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8, 0xA8,
+               0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x89, 0xD8, 0xA8,
+               0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD8, 0xAA,
+               0xD8, 0xAD, 0xD8, 0xAA, 0xD8, 0xAE, 0xD8, 0xAA,
+               0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x89, 0xD8, 0xAA,
+               0xD9, 0x8A, 0xD8, 0xAB, 0xD8, 0xAC, 0xD8, 0xAB,
+               0xD9, 0x85, 0xD8, 0xAB, 0xD9, 0x89, 0xD8, 0xAB,
+               0xD9, 0x8A, 0xD8, 0xAC, 0xD8, 0xAD, 0xD8, 0xAC,
+               0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, 0xAD,
+               0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD8, 0xAE,
+               0xD8, 0xAD, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB3,
+               0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3,
+               0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xB5,
+               0xD8, 0xAD, 0xD8, 0xB5, 0xD9, 0x85, 0xD8, 0xB6,
+               0xD8, 0xAC, 0xD8, 0xB6, 0xD8, 0xAD, 0xD8, 0xB6,
+               0xD8, 0xAE, 0xD8, 0xB6, 0xD9, 0x85, 0xD8, 0xB7,
+               0xD8, 0xAD, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xB8,
+               0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8, 0xB9,
+               0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8, 0xBA,
+               0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9, 0x81,
+               0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x81,
+               0xD9, 0x85, 0xD9, 0x81, 0xD9, 0x89, 0xD9, 0x81,
+               0xD9, 0x8A, 0xD9, 0x82, 0xD8, 0xAD, 0xD9, 0x82,
+               0xD9, 0x85, 0xD9, 0x82, 0xD9, 0x89, 0xD9, 0x82,
+               0xD9, 0x8A, 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x83,
+               0xD8, 0xAC, 0xD9, 0x83, 0xD8, 0xAD, 0xD9, 0x83,
+               0xD8, 0xAE, 0xD9, 0x83, 0xD9, 0x84, 0xD9, 0x83,
+               0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x89, 0xD9, 0x83,
+               0xD9, 0x8A, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x84,
+               0xD8, 0xAD, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x84,
+               0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x89, 0xD9, 0x84,
+               0xD9, 0x8A, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85,
+               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85,
+               0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x89, 0xD9, 0x85,
+               0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x86,
+               0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9, 0x86,
+               0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x89, 0xD9, 0x86,
+               0xD9, 0x8A, 0xD9, 0x87, 0xD8, 0xAC, 0xD9, 0x87,
+               0xD9, 0x85, 0xD9, 0x87, 0xD9, 0x89, 0xD9, 0x87,
+               0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A,
+               0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9, 0x8A,
+               0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x89, 0xD9, 0x8A,
+               0xD9, 0x8A, 0xD8, 0xB0, 0xD9, 0xB0, 0xD8, 0xB1,
+               0xD9, 0xB0, 0xD9, 0x89, 0xD9, 0xB0, 0x20, 0xD9,
+               0x8C, 0xD9, 0x91, 0x20, 0xD9, 0x8D, 0xD9, 0x91,
+               0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x20, 0xD9, 0x8F,
+               0xD9, 0x91, 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x20,
+               0xD9, 0x91, 0xD9, 0xB0, 0xD9, 0x8A, 0xD9, 0x94,
+               0xD8, 0xB1, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2,
+               0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A,
+               0xD9, 0x94, 0xD9, 0x86, 0xD9, 0x8A, 0xD9, 0x94,
+               0xD9, 0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A,
+               0xD8, 0xA8, 0xD8, 0xB1, 0xD8, 0xA8, 0xD8, 0xB2,
+               0xD8, 0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x86,
+               0xD8, 0xA8, 0xD9, 0x89, 0xD8, 0xA8, 0xD9, 0x8A,
+               0xD8, 0xAA, 0xD8, 0xB1, 0xD8, 0xAA, 0xD8, 0xB2,
+               0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x86,
+               0xD8, 0xAA, 0xD9, 0x89, 0xD8, 0xAA, 0xD9, 0x8A,
+               0xD8, 0xAB, 0xD8, 0xB1, 0xD8, 0xAB, 0xD8, 0xB2,
+               0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAB, 0xD9, 0x86,
+               0xD8, 0xAB, 0xD9, 0x89, 0xD8, 0xAB, 0xD9, 0x8A,
+               0xD9, 0x81, 0xD9, 0x89, 0xD9, 0x81, 0xD9, 0x8A,
+               0xD9, 0x82, 0xD9, 0x89, 0xD9, 0x82, 0xD9, 0x8A,
+               0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x83, 0xD9, 0x84,
+               0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x89,
+               0xD9, 0x83, 0xD9, 0x8A, 0xD9, 0x84, 0xD9, 0x85,
+               0xD9, 0x84, 0xD9, 0x89, 0xD9, 0x84, 0xD9, 0x8A,
+               0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x85, 0xD9, 0x85,
+               0xD9, 0x86, 0xD8, 0xB1, 0xD9, 0x86, 0xD8, 0xB2,
+               0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x86,
+               0xD9, 0x86, 0xD9, 0x89, 0xD9, 0x86, 0xD9, 0x8A,
+               0xD9, 0x89, 0xD9, 0xB0, 0xD9, 0x8A, 0xD8, 0xB1,
+               0xD9, 0x8A, 0xD8, 0xB2, 0xD9, 0x8A, 0xD9, 0x85,
+               0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x8A, 0xD9, 0x89,
+               0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x94,
+               0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD,
+               0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0xD9, 0x8A,
+               0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x94,
+               0xD9, 0x87, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8, 0xA8,
+               0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8, 0xA8,
+               0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x87, 0xD8, 0xAA,
+               0xD8, 0xAC, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAA,
+               0xD8, 0xAE, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA,
+               0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAC,
+               0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD,
+               0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE,
+               0xD8, 0xAC, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB3,
+               0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3,
+               0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xB5,
+               0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAE, 0xD8, 0xB5,
+               0xD9, 0x85, 0xD8, 0xB6, 0xD8, 0xAC, 0xD8, 0xB6,
+               0xD8, 0xAD, 0xD8, 0xB6, 0xD8, 0xAE, 0xD8, 0xB6,
+               0xD9, 0x85, 0xD8, 0xB7, 0xD8, 0xAD, 0xD8, 0xB8,
+               0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8, 0xB9,
+               0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8, 0xBA,
+               0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9, 0x81,
+               0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x81,
+               0xD9, 0x85, 0xD9, 0x82, 0xD8, 0xAD, 0xD9, 0x82,
+               0xD9, 0x85, 0xD9, 0x83, 0xD8, 0xAC, 0xD9, 0x83,
+               0xD8, 0xAD, 0xD9, 0x83, 0xD8, 0xAE, 0xD9, 0x83,
+               0xD9, 0x84, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x84,
+               0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x84,
+               0xD8, 0xAE, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x84,
+               0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85,
+               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85,
+               0xD9, 0x85, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x86,
+               0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9, 0x86,
+               0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9, 0x87,
+               0xD8, 0xAC, 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x87,
+               0xD9, 0xB0, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A,
+               0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9, 0x8A,
+               0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x8A,
+               0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x94,
+               0xD9, 0x87, 0xD8, 0xA8, 0xD9, 0x85, 0xD8, 0xA8,
+               0xD9, 0x87, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA,
+               0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAB,
+               0xD9, 0x87, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xB3,
+               0xD9, 0x87, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xB4,
+               0xD9, 0x87, 0xD9, 0x83, 0xD9, 0x84, 0xD9, 0x83,
+               0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x86,
+               0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9, 0x8A,
+               0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x80,
+               0xD9, 0x8E, 0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x8F,
+               0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x90, 0xD9, 0x91,
+               0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9, 0x8A,
+               0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9, 0x8A,
+               0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x8A,
+               0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9, 0x8A,
+               0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9, 0x8A,
+               0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9, 0x8A,
+               0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x8A,
+               0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9, 0x8A,
+               0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x8A,
+               0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9, 0x8A,
+               0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD,
+               0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85,
+               0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8, 0xB1,
+               0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8, 0xB1,
+               0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9, 0x8A,
+               0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9, 0x8A,
+               0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x8A,
+               0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9, 0x8A,
+               0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9, 0x8A,
+               0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9, 0x8A,
+               0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x8A,
+               0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9, 0x8A,
+               0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x8A,
+               0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9, 0x8A,
+               0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD,
+               0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85,
+               0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8, 0xB1,
+               0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8, 0xB1,
+               0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD,
+               0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85,
+               0xD8, 0xB3, 0xD9, 0x87, 0xD8, 0xB4, 0xD9, 0x87,
+               0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xB3, 0xD8, 0xAC,
+               0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3, 0xD8, 0xAE,
+               0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD,
+               0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB7, 0xD9, 0x85,
+               0xD8, 0xB8, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x8B,
+               0xD8, 0xA7, 0xD9, 0x8B, 0xD8, 0xAA, 0xD8, 0xAC,
+               0xD9, 0x85, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC,
+               0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, 0xAA,
+               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAA, 0xD8, 0xAE,
+               0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,
+               0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAA,
+               0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9, 0x85,
+               0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD,
+               0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xAD,
+               0xD9, 0x85, 0xD9, 0x89, 0xD8, 0xB3, 0xD8, 0xAD,
+               0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, 0xAD,
+               0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xB3,
+               0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xB3, 0xD9, 0x85,
+               0xD8, 0xAD, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC,
+               0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB3,
+               0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB5, 0xD8, 0xAD,
+               0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD,
+               0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB4,
+               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB4, 0xD8, 0xAD,
+               0xD9, 0x85, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, 0x8A,
+               0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xB4,
+               0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85,
+               0xD9, 0x85, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85,
+               0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xB6,
+               0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB6, 0xD8, 0xAE,
+               0xD9, 0x85, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD,
+               0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xB7,
+               0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB7, 0xD9, 0x85,
+               0xD9, 0x8A, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85,
+               0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB9,
+               0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB9, 0xD9, 0x85,
+               0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85,
+               0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xBA,
+               0xD9, 0x85, 0xD9, 0x89, 0xD9, 0x81, 0xD8, 0xAE,
+               0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85,
+               0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x82,
+               0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x84, 0xD8, 0xAD,
+               0xD9, 0x85, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A,
+               0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0xD9, 0x84,
+               0xD8, 0xAC, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAC,
+               0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85,
+               0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0xD9, 0x84,
+               0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x84, 0xD9, 0x85,
+               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC,
+               0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x85,
+               0xD8, 0xAD, 0xD9, 0x8A, 0xD9, 0x85, 0xD8, 0xAC,
+               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85,
+               0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9, 0x85,
+               0xD8, 0xAE, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xAC,
+               0xD8, 0xAE, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC,
+               0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x86,
+               0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x86, 0xD8, 0xAD,
+               0xD9, 0x89, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85,
+               0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x86,
+               0xD8, 0xAC, 0xD9, 0x89, 0xD9, 0x86, 0xD9, 0x85,
+               0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x89,
+               0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x8A,
+               0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xA8, 0xD8, 0xAE,
+               0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A,
+               0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAA,
+               0xD8, 0xAE, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAE,
+               0xD9, 0x89, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A,
+               0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0xD8, 0xAC,
+               0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xAC, 0xD8, 0xAD,
+               0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,
+               0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xB5,
+               0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xB4, 0xD8, 0xAD,
+               0xD9, 0x8A, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,
+               0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x84,
+               0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAD,
+               0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A,
+               0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x85,
+               0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x82, 0xD9, 0x85,
+               0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x8A,
+               0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x84,
+               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB9, 0xD9, 0x85,
+               0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A,
+               0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x85,
+               0xD8, 0xAE, 0xD9, 0x8A, 0xD9, 0x84, 0xD8, 0xAC,
+               0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85,
+               0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x86,
+               0xD8, 0xAC, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, 0xAD,
+               0xD9, 0x8A, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A,
+               0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x81,
+               0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xA8, 0xD8, 0xAD,
+               0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85,
+               0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xB5,
+               0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB3, 0xD8, 0xAE,
+               0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A,
+               0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0xD9, 0x82,
+               0xD9, 0x84, 0xDB, 0x92, 0xD8, 0xA7, 0xD9, 0x84,
+               0xD9, 0x84, 0xD9, 0x87, 0xD8, 0xA7, 0xD9, 0x83,
+               0xD8, 0xA8, 0xD8, 0xB1, 0xD9, 0x85, 0xD8, 0xAD,
+               0xD9, 0x85, 0xD8, 0xAF, 0xD8, 0xB5, 0xD9, 0x84,
+               0xD8, 0xB9, 0xD9, 0x85, 0xD8, 0xB1, 0xD8, 0xB3,
+               0xD9, 0x88, 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x84,
+               0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x88, 0xD8, 0xB3,
+               0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xB5, 0xD9, 0x84,
+               0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89,
+               0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9,
+               0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A,
+               0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9,
+               0x84, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x84, 0x20,
+               0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84,
+               0xD9, 0x87, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,
+               0xD9, 0x84, 0x2E, 0x2E, 0xE2, 0x80, 0x94, 0xE2,
+               0x80, 0x93, 0x5F, 0x5F, 0x28, 0x29, 0x7B, 0x7D,
+               0xE3, 0x80, 0x94, 0xE3, 0x80, 0x95, 0xE3, 0x80,
+               0x90, 0xE3, 0x80, 0x91, 0xE3, 0x80, 0x8A, 0xE3,
+               0x80, 0x8B, 0xE3, 0x80, 0x88, 0xE3, 0x80, 0x89,
+               0xE3, 0x80, 0x8C, 0xE3, 0x80, 0x8D, 0xE3, 0x80,
+               0x8E, 0xE3, 0x80, 0x8F, 0x20, 0xCC, 0x85, 0x20,
+               0xCC, 0x85, 0x20, 0xCC, 0x85, 0x20, 0xCC, 0x85,
+               0x5F, 0x5F, 0x5F, 0x2C, 0xE3, 0x80, 0x81, 0x2E,
+               0x3B, 0x3A, 0x3F, 0x21, 0xE2, 0x80, 0x94, 0x28,
+               0x29, 0x7B, 0x7D, 0xE3, 0x80, 0x94, 0xE3, 0x80,
+               0x95, 0x23, 0x26, 0x2A, 0x2B, 0x2D, 0x3C, 0x3E,
+               0x3D, 0x5C, 0x24, 0x25, 0x40, 0x20, 0xD9, 0x8B,
+               0xD9, 0x80, 0xD9, 0x8B, 0x20, 0xD9, 0x8C, 0x20,
+               0xD9, 0x8D, 0x20, 0xD9, 0x8E, 0xD9, 0x80, 0xD9,
+               0x8E, 0x20, 0xD9, 0x8F, 0xD9, 0x80, 0xD9, 0x8F,
+               0x20, 0xD9, 0x90, 0xD9, 0x80, 0xD9, 0x90, 0x20,
+               0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x91, 0x20, 0xD9,
+               0x92, 0xD9, 0x80, 0xD9, 0x92, 0xD8, 0xA1, 0xD8,
+               0xA7, 0xD9, 0x93, 0xD8, 0xA7, 0xD9, 0x93, 0xD8,
+               0xA7, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x94, 0xD9,
+               0x88, 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x94, 0xD8,
+               0xA7, 0xD9, 0x95, 0xD8, 0xA7, 0xD9, 0x95, 0xD9,
+               0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
+               0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
+               0xA7, 0xD8, 0xA7, 0xD8, 0xA8, 0xD8, 0xA8, 0xD8,
+               0xA8, 0xD8, 0xA8, 0xD8, 0xA9, 0xD8, 0xA9, 0xD8,
+               0xAA, 0xD8, 0xAA, 0xD8, 0xAA, 0xD8, 0xAA, 0xD8,
+               0xAB, 0xD8, 0xAB, 0xD8, 0xAB, 0xD8, 0xAB, 0xD8,
+               0xAC, 0xD8, 0xAC, 0xD8, 0xAC, 0xD8, 0xAC, 0xD8,
+               0xAD, 0xD8, 0xAD, 0xD8, 0xAD, 0xD8, 0xAD, 0xD8,
+               0xAE, 0xD8, 0xAE, 0xD8, 0xAE, 0xD8, 0xAE, 0xD8,
+               0xAF, 0xD8, 0xAF, 0xD8, 0xB0, 0xD8, 0xB0, 0xD8,
+               0xB1, 0xD8, 0xB1, 0xD8, 0xB2, 0xD8, 0xB2, 0xD8,
+               0xB3, 0xD8, 0xB3, 0xD8, 0xB3, 0xD8, 0xB3, 0xD8,
+               0xB4, 0xD8, 0xB4, 0xD8, 0xB4, 0xD8, 0xB4, 0xD8,
+               0xB5, 0xD8, 0xB5, 0xD8, 0xB5, 0xD8, 0xB5, 0xD8,
+               0xB6, 0xD8, 0xB6, 0xD8, 0xB6, 0xD8, 0xB6, 0xD8,
+               0xB7, 0xD8, 0xB7, 0xD8, 0xB7, 0xD8, 0xB7, 0xD8,
+               0xB8, 0xD8, 0xB8, 0xD8, 0xB8, 0xD8, 0xB8, 0xD8,
+               0xB9, 0xD8, 0xB9, 0xD8, 0xB9, 0xD8, 0xB9, 0xD8,
+               0xBA, 0xD8, 0xBA, 0xD8, 0xBA, 0xD8, 0xBA, 0xD9,
+               0x81, 0xD9, 0x81, 0xD9, 0x81, 0xD9, 0x81, 0xD9,
+               0x82, 0xD9, 0x82, 0xD9, 0x82, 0xD9, 0x82, 0xD9,
+               0x83, 0xD9, 0x83, 0xD9, 0x83, 0xD9, 0x83, 0xD9,
+               0x84, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x84, 0xD9,
+               0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
+               0x86, 0xD9, 0x86, 0xD9, 0x86, 0xD9, 0x86, 0xD9,
+               0x87, 0xD9, 0x87, 0xD9, 0x87, 0xD9, 0x87, 0xD9,
+               0x88, 0xD9, 0x88, 0xD9, 0x89, 0xD9, 0x89, 0xD9,
+               0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9,
+               0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xD9, 0x84, 0xD8,
+               0xA7, 0xD9, 0x93, 0xD9, 0x84, 0xD8, 0xA7, 0xD9,
+               0x94, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xD9,
+               0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xD9, 0x84, 0xD8,
+               0xA7, 0xD9, 0x95, 0xD9, 0x84, 0xD8, 0xA7, 0xD9,
+               0x84, 0xD8, 0xA7, 0x21, 0x22, 0x23, 0x24, 0x25,
+               0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D,
+               0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35,
+               0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D,
+               0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45,
+               0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D,
+               0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55,
+               0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D,
+               0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D,
+               0x7E, 0xE2, 0xA6, 0x85, 0xE2, 0xA6, 0x86, 0xE3,
+               0x80, 0x82, 0xE3, 0x80, 0x8C, 0xE3, 0x80, 0x8D,
+               0xE3, 0x80, 0x81, 0xE3, 0x83, 0xBB, 0xE3, 0x83,
+               0xB2, 0xE3, 0x82, 0xA1, 0xE3, 0x82, 0xA3, 0xE3,
+               0x82, 0xA5, 0xE3, 0x82, 0xA7, 0xE3, 0x82, 0xA9,
+               0xE3, 0x83, 0xA3, 0xE3, 0x83, 0xA5, 0xE3, 0x83,
+               0xA7, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0xBC, 0xE3,
+               0x82, 0xA2, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xA6,
+               0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xAA, 0xE3, 0x82,
+               0xAB, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0xAF, 0xE3,
+               0x82, 0xB1, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB5,
+               0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xB9, 0xE3, 0x82,
+               0xBB, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0xBF, 0xE3,
+               0x83, 0x81, 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x86,
+               0xE3, 0x83, 0x88, 0xE3, 0x83, 0x8A, 0xE3, 0x83,
+               0x8B, 0xE3, 0x83, 0x8C, 0xE3, 0x83, 0x8D, 0xE3,
+               0x83, 0x8E, 0xE3, 0x83, 0x8F, 0xE3, 0x83, 0x92,
+               0xE3, 0x83, 0x95, 0xE3, 0x83, 0x98, 0xE3, 0x83,
+               0x9B, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x9F, 0xE3,
+               0x83, 0xA0, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xA2,
+               0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xA6, 0xE3, 0x83,
+               0xA8, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xAA, 0xE3,
+               0x83, 0xAB, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAD,
+               0xE3, 0x83, 0xAF, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
+               0x99, 0xE3, 0x82, 0x9A, 0xE1, 0x85, 0xA0, 0xE1,
+               0x84, 0x80, 0xE1, 0x84, 0x81, 0xE1, 0x86, 0xAA,
+               0xE1, 0x84, 0x82, 0xE1, 0x86, 0xAC, 0xE1, 0x86,
+               0xAD, 0xE1, 0x84, 0x83, 0xE1, 0x84, 0x84, 0xE1,
+               0x84, 0x85, 0xE1, 0x86, 0xB0, 0xE1, 0x86, 0xB1,
+               0xE1, 0x86, 0xB2, 0xE1, 0x86, 0xB3, 0xE1, 0x86,
+               0xB4, 0xE1, 0x86, 0xB5, 0xE1, 0x84, 0x9A, 0xE1,
+               0x84, 0x86, 0xE1, 0x84, 0x87, 0xE1, 0x84, 0x88,
+               0xE1, 0x84, 0xA1, 0xE1, 0x84, 0x89, 0xE1, 0x84,
+               0x8A, 0xE1, 0x84, 0x8B, 0xE1, 0x84, 0x8C, 0xE1,
+               0x84, 0x8D, 0xE1, 0x84, 0x8E, 0xE1, 0x84, 0x8F,
+               0xE1, 0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1, 0x84,
+               0x92, 0xE1, 0x85, 0xA1, 0xE1, 0x85, 0xA2, 0xE1,
+               0x85, 0xA3, 0xE1, 0x85, 0xA4, 0xE1, 0x85, 0xA5,
+               0xE1, 0x85, 0xA6, 0xE1, 0x85, 0xA7, 0xE1, 0x85,
+               0xA8, 0xE1, 0x85, 0xA9, 0xE1, 0x85, 0xAA, 0xE1,
+               0x85, 0xAB, 0xE1, 0x85, 0xAC, 0xE1, 0x85, 0xAD,
+               0xE1, 0x85, 0xAE, 0xE1, 0x85, 0xAF, 0xE1, 0x85,
+               0xB0, 0xE1, 0x85, 0xB1, 0xE1, 0x85, 0xB2, 0xE1,
+               0x85, 0xB3, 0xE1, 0x85, 0xB4, 0xE1, 0x85, 0xB5,
+               0xC2, 0xA2, 0xC2, 0xA3, 0xC2, 0xAC, 0x20, 0xCC,
+               0x84, 0xC2, 0xA6, 0xC2, 0xA5, 0xE2, 0x82, 0xA9,
+               0xE2, 0x94, 0x82, 0xE2, 0x86, 0x90, 0xE2, 0x86,
+               0x91, 0xE2, 0x86, 0x92, 0xE2, 0x86, 0x93, 0xE2,
+               0x96, 0xA0, 0xE2, 0x97, 0x8B, 0xF6, 0xF0, 0x9D,
+               0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xF6, 0xF0,
+               0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF6,
+               0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,
+               0xF0, 0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x85,
+               0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
+               0xAF, 0xF6, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,
+               0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xF6, 0xF0,
+               0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
+               0x9D, 0x85, 0xB1, 0xF6, 0xF0, 0x9D, 0x85, 0x98,
+               0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2,
+               0xF6, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,
+               0xA5, 0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D,
+               0x85, 0xA5, 0xF6, 0xF0, 0x9D, 0x86, 0xB9, 0xF0,
+               0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xF6,
+               0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5,
+               0xF0, 0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x86,
+               0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
+               0xAF, 0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D,
+               0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0x41, 0x42,
+               0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A,
+               0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52,
+               0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A,
+               0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
+               0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,
+               0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
+               0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
+               0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
+               0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
+               0x57, 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64,
+               0x65, 0x66, 0x67, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
+               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
+               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
+               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x41, 0x43, 0x44, 0x47, 0x4A, 0x4B, 0x4E,
+               0x4F, 0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x66,
+               0x68, 0x69, 0x6A, 0x6B, 0x6D, 0x6E, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44,
+               0x45, 0x46, 0x47, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
+               0x4F, 0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
+               0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E,
+               0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
+               0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44, 0x45,
+               0x46, 0x47, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4F,
+               0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
+               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
+               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
+               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
+               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
+               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
+               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
+               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
+               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
+               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE,
+               0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE,
+               0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE,
+               0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE,
+               0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE,
+               0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE,
+               0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1,
+               0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5,
+               0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9,
+               0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD,
+               0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81,
+               0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85,
+               0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89,
+               0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE,
+               0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE,
+               0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE,
+               0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE,
+               0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE,
+               0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE,
+               0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE,
+               0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE,
+               0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2,
+               0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6,
+               0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA,
+               0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE,
+               0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82,
+               0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86,
+               0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88,
+               0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF,
+               0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE,
+               0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE,
+               0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE,
+               0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE,
+               0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE,
+               0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE,
+               0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2,
+               0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3,
+               0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7,
+               0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB,
+               0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF,
+               0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83,
+               0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87,
+               0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE,
+               0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF,
+               0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE,
+               0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE,
+               0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE,
+               0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE,
+               0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE,
+               0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE,
+               0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87,
+               0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4,
+               0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8,
+               0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC,
+               0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80,
+               0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84,
+               0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88,
+               0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE,
+               0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF,
+               0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE,
+               0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE,
+               0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE,
+               0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE,
+               0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE,
+               0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE,
+               0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1,
+               0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5,
+               0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9,
+               0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD,
+               0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81,
+               0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85,
+               0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89,
+               0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE,
+               0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x80, 0x30,
+               0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
+               0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
+               0x37, 0x38, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34,
+               0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x31, 0x32,
+               0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30,
+               0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
+               0x39, 0xF6, 0xE4, 0xB8, 0xBD, 0xF6, 0xE4, 0xB8,
+               0xB8, 0xF6, 0xE4, 0xB9, 0x81, 0xF6, 0xF0, 0xA0,
+               0x84, 0xA2, 0xF6, 0xE4, 0xBD, 0xA0, 0xF6, 0xE4,
+               0xBE, 0xAE, 0xF6, 0xE4, 0xBE, 0xBB, 0xF6, 0xE5,
+               0x80, 0x82, 0xF6, 0xE5, 0x81, 0xBA, 0xF6, 0xE5,
+               0x82, 0x99, 0xF6, 0xE5, 0x83, 0xA7, 0xF6, 0xE5,
+               0x83, 0x8F, 0xF6, 0xE3, 0x92, 0x9E, 0xF6, 0xF0,
+               0xA0, 0x98, 0xBA, 0xF6, 0xE5, 0x85, 0x8D, 0xF6,
+               0xE5, 0x85, 0x94, 0xF6, 0xE5, 0x85, 0xA4, 0xF6,
+               0xE5, 0x85, 0xB7, 0xF6, 0xF0, 0xA0, 0x94, 0x9C,
+               0xF6, 0xE3, 0x92, 0xB9, 0xF6, 0xE5, 0x85, 0xA7,
+               0xF6, 0xE5, 0x86, 0x8D, 0xF6, 0xF0, 0xA0, 0x95,
+               0x8B, 0xF6, 0xE5, 0x86, 0x97, 0xF6, 0xE5, 0x86,
+               0xA4, 0xF6, 0xE4, 0xBB, 0x8C, 0xF6, 0xE5, 0x86,
+               0xAC, 0xF6, 0xE5, 0x86, 0xB5, 0xF6, 0xF0, 0xA9,
+               0x87, 0x9F, 0xF6, 0xE5, 0x87, 0xB5, 0xF6, 0xE5,
+               0x88, 0x83, 0xF6, 0xE3, 0x93, 0x9F, 0xF6, 0xE5,
+               0x88, 0xBB, 0xF6, 0xE5, 0x89, 0x86, 0xF6, 0xE5,
+               0x89, 0xB2, 0xF6, 0xE5, 0x89, 0xB7, 0xF6, 0xE3,
+               0x94, 0x95, 0xF6, 0xE5, 0x8B, 0x87, 0xF6, 0xE5,
+               0x8B, 0x89, 0xF6, 0xE5, 0x8B, 0xA4, 0xF6, 0xE5,
+               0x8B, 0xBA, 0xF6, 0xE5, 0x8C, 0x85, 0xF6, 0xE5,
+               0x8C, 0x86, 0xF6, 0xE5, 0x8C, 0x97, 0xF6, 0xE5,
+               0x8D, 0x89, 0xF6, 0xE5, 0x8D, 0x91, 0xF6, 0xE5,
+               0x8D, 0x9A, 0xF6, 0xE5, 0x8D, 0xB3, 0xF6, 0xE5,
+               0x8D, 0xBD, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xE5,
+               0x8D, 0xBF, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xF0,
+               0xA0, 0xA8, 0xAC, 0xF6, 0xE7, 0x81, 0xB0, 0xF6,
+               0xE5, 0x8F, 0x8A, 0xF6, 0xE5, 0x8F, 0x9F, 0xF6,
+               0xF0, 0xA0, 0xAD, 0xA3, 0xF6, 0xE5, 0x8F, 0xAB,
+               0xF6, 0xE5, 0x8F, 0xB1, 0xF6, 0xE5, 0x90, 0x86,
+               0xF6, 0xE5, 0x92, 0x9E, 0xF6, 0xE5, 0x90, 0xB8,
+               0xF6, 0xE5, 0x91, 0x88, 0xF6, 0xE5, 0x91, 0xA8,
+               0xF6, 0xE5, 0x92, 0xA2, 0xF6, 0xE5, 0x93, 0xB6,
+               0xF6, 0xE5, 0x94, 0x90, 0xF6, 0xE5, 0x95, 0x93,
+               0xF6, 0xE5, 0x95, 0xA3, 0xF6, 0xE5, 0x96, 0x84,
+               0xF6, 0xE5, 0x96, 0x84, 0xF6, 0xE5, 0x96, 0x99,
+               0xF6, 0xE5, 0x96, 0xAB, 0xF6, 0xE5, 0x96, 0xB3,
+               0xF6, 0xE5, 0x97, 0x82, 0xF6, 0xE5, 0x9C, 0x96,
+               0xF6, 0xE5, 0x98, 0x86, 0xF6, 0xE5, 0x9C, 0x97,
+               0xF6, 0xE5, 0x99, 0x91, 0xF6, 0xE5, 0x99, 0xB4,
+               0xF6, 0xE5, 0x88, 0x87, 0xF6, 0xE5, 0xA3, 0xAE,
+               0xF6, 0xE5, 0x9F, 0x8E, 0xF6, 0xE5, 0x9F, 0xB4,
+               0xF6, 0xE5, 0xA0, 0x8D, 0xF6, 0xE5, 0x9E, 0x8B,
+               0xF6, 0xE5, 0xA0, 0xB2, 0xF6, 0xE5, 0xA0, 0xB1,
+               0xF6, 0xE5, 0xA2, 0xAC, 0xF6, 0xF0, 0xA1, 0x93,
+               0xA4, 0xF6, 0xE5, 0xA3, 0xB2, 0xF6, 0xE5, 0xA3,
+               0xB7, 0xF6, 0xE5, 0xA4, 0x86, 0xF6, 0xE5, 0xA4,
+               0x9A, 0xF6, 0xE5, 0xA4, 0xA2, 0xF6, 0xE5, 0xA5,
+               0xA2, 0xF6, 0xF0, 0xA1, 0x9A, 0xA8, 0xF6, 0xF0,
+               0xA1, 0x9B, 0xAA, 0xF6, 0xE5, 0xA7, 0xAC, 0xF6,
+               0xE5, 0xA8, 0x9B, 0xF6, 0xE5, 0xA8, 0xA7, 0xF6,
+               0xE5, 0xA7, 0x98, 0xF6, 0xE5, 0xA9, 0xA6, 0xF6,
+               0xE3, 0x9B, 0xAE, 0xF6, 0xE3, 0x9B, 0xBC, 0xF6,
+               0xE5, 0xAC, 0x88, 0xF6, 0xE5, 0xAC, 0xBE, 0xF6,
+               0xE5, 0xAC, 0xBE, 0xF6, 0xF0, 0xA1, 0xA7, 0x88,
+               0xF6, 0xE5, 0xAF, 0x83, 0xF6, 0xE5, 0xAF, 0x98,
+               0xF6, 0xE5, 0xAF, 0xA7, 0xF6, 0xE5, 0xAF, 0xB3,
+               0xF6, 0xF0, 0xA1, 0xAC, 0x98, 0xF6, 0xE5, 0xAF,
+               0xBF, 0xF6, 0xE5, 0xB0, 0x86, 0xF6, 0xE5, 0xBD,
+               0x93, 0xF6, 0xE5, 0xB0, 0xA2, 0xF6, 0xE3, 0x9E,
+               0x81, 0xF6, 0xE5, 0xB1, 0xA0, 0xF6, 0xE5, 0xB1,
+               0xAE, 0xF6, 0xE5, 0xB3, 0x80, 0xF6, 0xE5, 0xB2,
+               0x8D, 0xF6, 0xF0, 0xA1, 0xB7, 0xA4, 0xF6, 0xE5,
+               0xB5, 0x83, 0xF6, 0xF0, 0xA1, 0xB7, 0xA6, 0xF6,
+               0xE5, 0xB5, 0xAE, 0xF6, 0xE5, 0xB5, 0xAB, 0xF6,
+               0xE5, 0xB5, 0xBC, 0xF6, 0xE5, 0xB7, 0xA1, 0xF6,
+               0xE5, 0xB7, 0xA2, 0xF6, 0xE3, 0xA0, 0xAF, 0xF6,
+               0xE5, 0xB7, 0xBD, 0xF6, 0xE5, 0xB8, 0xA8, 0xF6,
+               0xE5, 0xB8, 0xBD, 0xF6, 0xE5, 0xB9, 0xA9, 0xF6,
+               0xE3, 0xA1, 0xA2, 0xF6, 0xF0, 0xA2, 0x86, 0x83,
+               0xF6, 0xE3, 0xA1, 0xBC, 0xF6, 0xE5, 0xBA, 0xB0,
+               0xF6, 0xE5, 0xBA, 0xB3, 0xF6, 0xE5, 0xBA, 0xB6,
+               0xF6, 0xE5, 0xBB, 0x8A, 0xF6, 0xF0, 0xAA, 0x8E,
+               0x92, 0xF6, 0xE5, 0xBB, 0xBE, 0xF6, 0xF0, 0xA2,
+               0x8C, 0xB1, 0xF6, 0xF0, 0xA2, 0x8C, 0xB1, 0xF6,
+               0xE8, 0x88, 0x81, 0xF6, 0xE5, 0xBC, 0xA2, 0xF6,
+               0xE5, 0xBC, 0xA2, 0xF6, 0xE3, 0xA3, 0x87, 0xF6,
+               0xF0, 0xA3, 0x8A, 0xB8, 0xF6, 0xF0, 0xA6, 0x87,
+               0x9A, 0xF6, 0xE5, 0xBD, 0xA2, 0xF6, 0xE5, 0xBD,
+               0xAB, 0xF6, 0xE3, 0xA3, 0xA3, 0xF6, 0xE5, 0xBE,
+               0x9A, 0xF6, 0xE5, 0xBF, 0x8D, 0xF6, 0xE5, 0xBF,
+               0x97, 0xF6, 0xE5, 0xBF, 0xB9, 0xF6, 0xE6, 0x82,
+               0x81, 0xF6, 0xE3, 0xA4, 0xBA, 0xF6, 0xE3, 0xA4,
+               0x9C, 0xF6, 0xE6, 0x82, 0x94, 0xF6, 0xF0, 0xA2,
+               0x9B, 0x94, 0xF6, 0xE6, 0x83, 0x87, 0xF6, 0xE6,
+               0x85, 0x88, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6,
+               0x85, 0x8E, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6,
+               0x85, 0xBA, 0xF6, 0xE6, 0x86, 0x8E, 0xF6, 0xE6,
+               0x86, 0xB2, 0xF6, 0xE6, 0x86, 0xA4, 0xF6, 0xE6,
+               0x86, 0xAF, 0xF6, 0xE6, 0x87, 0x9E, 0xF6, 0xE6,
+               0x87, 0xB2, 0xF6, 0xE6, 0x87, 0xB6, 0xF6, 0xE6,
+               0x88, 0x90, 0xF6, 0xE6, 0x88, 0x9B, 0xF6, 0xE6,
+               0x89, 0x9D, 0xF6, 0xE6, 0x8A, 0xB1, 0xF6, 0xE6,
+               0x8B, 0x94, 0xF6, 0xE6, 0x8D, 0x90, 0xF6, 0xF0,
+               0xA2, 0xAC, 0x8C, 0xF6, 0xE6, 0x8C, 0xBD, 0xF6,
+               0xE6, 0x8B, 0xBC, 0xF6, 0xE6, 0x8D, 0xA8, 0xF6,
+               0xE6, 0x8E, 0x83, 0xF6, 0xE6, 0x8F, 0xA4, 0xF6,
+               0xF0, 0xA2, 0xAF, 0xB1, 0xF6, 0xE6, 0x90, 0xA2,
+               0xF6, 0xE6, 0x8F, 0x85, 0xF6, 0xE6, 0x8E, 0xA9,
+               0xF6, 0xE3, 0xA8, 0xAE, 0xF6, 0xE6, 0x91, 0xA9,
+               0xF6, 0xE6, 0x91, 0xBE, 0xF6, 0xE6, 0x92, 0x9D,
+               0xF6, 0xE6, 0x91, 0xB7, 0xF6, 0xE3, 0xA9, 0xAC,
+               0xF6, 0xE6, 0x95, 0x8F, 0xF6, 0xE6, 0x95, 0xAC,
+               0xF6, 0xF0, 0xA3, 0x80, 0x8A, 0xF6, 0xE6, 0x97,
+               0xA3, 0xF6, 0xE6, 0x9B, 0xB8, 0xF6, 0xE6, 0x99,
+               0x89, 0xF6, 0xE3, 0xAC, 0x99, 0xF6, 0xE6, 0x9A,
+               0x91, 0xF6, 0xE3, 0xAC, 0x88, 0xF6, 0xE3, 0xAB,
+               0xA4, 0xF6, 0xE5, 0x86, 0x92, 0xF6, 0xE5, 0x86,
+               0x95, 0xF6, 0xE6, 0x9C, 0x80, 0xF6, 0xE6, 0x9A,
+               0x9C, 0xF6, 0xE8, 0x82, 0xAD, 0xF6, 0xE4, 0x8F,
+               0x99, 0xF6, 0xE6, 0x9C, 0x97, 0xF6, 0xE6, 0x9C,
+               0x9B, 0xF6, 0xE6, 0x9C, 0xA1, 0xF6, 0xE6, 0x9D,
+               0x9E, 0xF6, 0xE6, 0x9D, 0x93, 0xF6, 0xF0, 0xA3,
+               0x8F, 0x83, 0xF6, 0xE3, 0xAD, 0x89, 0xF6, 0xE6,
+               0x9F, 0xBA, 0xF6, 0xE6, 0x9E, 0x85, 0xF6, 0xE6,
+               0xA1, 0x92, 0xF6, 0xE6, 0xA2, 0x85, 0xF6, 0xF0,
+               0xA3, 0x91, 0xAD, 0xF6, 0xE6, 0xA2, 0x8E, 0xF6,
+               0xE6, 0xA0, 0x9F, 0xF6, 0xE6, 0xA4, 0x94, 0xF6,
+               0xE3, 0xAE, 0x9D, 0xF6, 0xE6, 0xA5, 0x82, 0xF6,
+               0xE6, 0xA6, 0xA3, 0xF6, 0xE6, 0xA7, 0xAA, 0xF6,
+               0xE6, 0xAA, 0xA8, 0xF6, 0xF0, 0xA3, 0x9A, 0xA3,
+               0xF6, 0xE6, 0xAB, 0x9B, 0xF6, 0xE3, 0xB0, 0x98,
+               0xF6, 0xE6, 0xAC, 0xA1, 0xF6, 0xF0, 0xA3, 0xA2,
+               0xA7, 0xF6, 0xE6, 0xAD, 0x94, 0xF6, 0xE3, 0xB1,
+               0x8E, 0xF6, 0xE6, 0xAD, 0xB2, 0xF6, 0xE6, 0xAE,
+               0x9F, 0xF6, 0xE6, 0xAE, 0xBA, 0xF6, 0xE6, 0xAE,
+               0xBB, 0xF6, 0xF0, 0xA3, 0xAA, 0x8D, 0xF6, 0xF0,
+               0xA1, 0xB4, 0x8B, 0xF6, 0xF0, 0xA3, 0xAB, 0xBA,
+               0xF6, 0xE6, 0xB1, 0x8E, 0xF6, 0xF0, 0xA3, 0xB2,
+               0xBC, 0xF6, 0xE6, 0xB2, 0xBF, 0xF6, 0xE6, 0xB3,
+               0x8D, 0xF6, 0xE6, 0xB1, 0xA7, 0xF6, 0xE6, 0xB4,
+               0x96, 0xF6, 0xE6, 0xB4, 0xBE, 0xF6, 0xE6, 0xB5,
+               0xB7, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6, 0xB5,
+               0xA9, 0xF6, 0xE6, 0xB5, 0xB8, 0xF6, 0xE6, 0xB6,
+               0x85, 0xF6, 0xF0, 0xA3, 0xB4, 0x9E, 0xF6, 0xE6,
+               0xB4, 0xB4, 0xF6, 0xE6, 0xB8, 0xAF, 0xF6, 0xE6,
+               0xB9, 0xAE, 0xF6, 0xE3, 0xB4, 0xB3, 0xF6, 0xE6,
+               0xBB, 0x8B, 0xF6, 0xE6, 0xBB, 0x87, 0xF6, 0xF0,
+               0xA3, 0xBB, 0x91, 0xF6, 0xE6, 0xB7, 0xB9, 0xF6,
+               0xE6, 0xBD, 0xAE, 0xF6, 0xF0, 0xA3, 0xBD, 0x9E,
+               0xF6, 0xF0, 0xA3, 0xBE, 0x8E, 0xF6, 0xE6, 0xBF,
+               0x86, 0xF6, 0xE7, 0x80, 0xB9, 0xF6, 0xE7, 0x80,
+               0x9E, 0xF6, 0xE7, 0x80, 0x9B, 0xF6, 0xE3, 0xB6,
+               0x96, 0xF6, 0xE7, 0x81, 0x8A, 0xF6, 0xE7, 0x81,
+               0xBD, 0xF6, 0xE7, 0x81, 0xB7, 0xF6, 0xE7, 0x82,
+               0xAD, 0xF6, 0xF0, 0xA0, 0x94, 0xA5, 0xF6, 0xE7,
+               0x85, 0x85, 0xF6, 0xF0, 0xA4, 0x89, 0xA3, 0xF6,
+               0xE7, 0x86, 0x9C, 0xF6, 0xF0, 0xA4, 0x8E, 0xAB,
+               0xF6, 0xE7, 0x88, 0xA8, 0xF6, 0xE7, 0x88, 0xB5,
+               0xF6, 0xE7, 0x89, 0x90, 0xF6, 0xF0, 0xA4, 0x98,
+               0x88, 0xF6, 0xE7, 0x8A, 0x80, 0xF6, 0xE7, 0x8A,
+               0x95, 0xF6, 0xF0, 0xA4, 0x9C, 0xB5, 0xF6, 0xF0,
+               0xA4, 0xA0, 0x94, 0xF6, 0xE7, 0x8D, 0xBA, 0xF6,
+               0xE7, 0x8E, 0x8B, 0xF6, 0xE3, 0xBA, 0xAC, 0xF6,
+               0xE7, 0x8E, 0xA5, 0xF6, 0xE3, 0xBA, 0xB8, 0xF6,
+               0xE3, 0xBA, 0xB8, 0xF6, 0xE7, 0x91, 0x87, 0xF6,
+               0xE7, 0x91, 0x9C, 0xF6, 0xE7, 0x91, 0xB1, 0xF6,
+               0xE7, 0x92, 0x85, 0xF6, 0xE7, 0x93, 0x8A, 0xF6,
+               0xE3, 0xBC, 0x9B, 0xF6, 0xE7, 0x94, 0xA4, 0xF6,
+               0xF0, 0xA4, 0xB0, 0xB6, 0xF6, 0xE7, 0x94, 0xBE,
+               0xF6, 0xF0, 0xA4, 0xB2, 0x92, 0xF6, 0xE7, 0x95,
+               0xB0, 0xF6, 0xF0, 0xA2, 0x86, 0x9F, 0xF6, 0xE7,
+               0x98, 0x90, 0xF6, 0xF0, 0xA4, 0xBE, 0xA1, 0xF6,
+               0xF0, 0xA4, 0xBE, 0xB8, 0xF6, 0xF0, 0xA5, 0x81,
+               0x84, 0xF6, 0xE3, 0xBF, 0xBC, 0xF6, 0xE4, 0x80,
+               0x88, 0xF6, 0xE7, 0x9B, 0xB4, 0xF6, 0xF0, 0xA5,
+               0x83, 0xB3, 0xF6, 0xF0, 0xA5, 0x83, 0xB2, 0xF6,
+               0xF0, 0xA5, 0x84, 0x99, 0xF6, 0xF0, 0xA5, 0x84,
+               0xB3, 0xF6, 0xE7, 0x9C, 0x9E, 0xF6, 0xE7, 0x9C,
+               0x9F, 0xF6, 0xE7, 0x9C, 0x9F, 0xF6, 0xE7, 0x9D,
+               0x8A, 0xF6, 0xE4, 0x80, 0xB9, 0xF6, 0xE7, 0x9E,
+               0x8B, 0xF6, 0xE4, 0x81, 0x86, 0xF6, 0xE4, 0x82,
+               0x96, 0xF6, 0xF0, 0xA5, 0x90, 0x9D, 0xF6, 0xE7,
+               0xA1, 0x8E, 0xF6, 0xE7, 0xA2, 0x8C, 0xF6, 0xE7,
+               0xA3, 0x8C, 0xF6, 0xE4, 0x83, 0xA3, 0xF6, 0xF0,
+               0xA5, 0x98, 0xA6, 0xF6, 0xE7, 0xA5, 0x96, 0xF6,
+               0xF0, 0xA5, 0x9A, 0x9A, 0xF6, 0xF0, 0xA5, 0x9B,
+               0x85, 0xF6, 0xE7, 0xA6, 0x8F, 0xF6, 0xE7, 0xA7,
+               0xAB, 0xF6, 0xE4, 0x84, 0xAF, 0xF6, 0xE7, 0xA9,
+               0x80, 0xF6, 0xE7, 0xA9, 0x8A, 0xF6, 0xE7, 0xA9,
+               0x8F, 0xF6, 0xF0, 0xA5, 0xA5, 0xBC, 0xF6, 0xF0,
+               0xA5, 0xAA, 0xA7, 0xF6, 0xF0, 0xA5, 0xAA, 0xA7,
+               0xF6, 0xE7, 0xAB, 0xAE, 0xF6, 0xE4, 0x88, 0x82,
+               0xF6, 0xF0, 0xA5, 0xAE, 0xAB, 0xF6, 0xE7, 0xAF,
+               0x86, 0xF6, 0xE7, 0xAF, 0x89, 0xF6, 0xE4, 0x88,
+               0xA7, 0xF6, 0xF0, 0xA5, 0xB2, 0x80, 0xF6, 0xE7,
+               0xB3, 0x92, 0xF6, 0xE4, 0x8A, 0xA0, 0xF6, 0xE7,
+               0xB3, 0xA8, 0xF6, 0xE7, 0xB3, 0xA3, 0xF6, 0xE7,
+               0xB4, 0x80, 0xF6, 0xF0, 0xA5, 0xBE, 0x86, 0xF6,
+               0xE7, 0xB5, 0xA3, 0xF6, 0xE4, 0x8C, 0x81, 0xF6,
+               0xE7, 0xB7, 0x87, 0xF6, 0xE7, 0xB8, 0x82, 0xF6,
+               0xE7, 0xB9, 0x85, 0xF6, 0xE4, 0x8C, 0xB4, 0xF6,
+               0xF0, 0xA6, 0x88, 0xA8, 0xF6, 0xF0, 0xA6, 0x89,
+               0x87, 0xF6, 0xE4, 0x8D, 0x99, 0xF6, 0xF0, 0xA6,
+               0x8B, 0x99, 0xF6, 0xE7, 0xBD, 0xBA, 0xF6, 0xF0,
+               0xA6, 0x8C, 0xBE, 0xF6, 0xE7, 0xBE, 0x95, 0xF6,
+               0xE7, 0xBF, 0xBA, 0xF6, 0xE8, 0x80, 0x85, 0xF6,
+               0xF0, 0xA6, 0x93, 0x9A, 0xF6, 0xF0, 0xA6, 0x94,
+               0xA3, 0xF6, 0xE8, 0x81, 0xA0, 0xF6, 0xF0, 0xA6,
+               0x96, 0xA8, 0xF6, 0xE8, 0x81, 0xB0, 0xF6, 0xF0,
+               0xA3, 0x8D, 0x9F, 0xF6, 0xE4, 0x8F, 0x95, 0xF6,
+               0xE8, 0x82, 0xB2, 0xF6, 0xE8, 0x84, 0x83, 0xF6,
+               0xE4, 0x90, 0x8B, 0xF6, 0xE8, 0x84, 0xBE, 0xF6,
+               0xE5, 0xAA, 0xB5, 0xF6, 0xF0, 0xA6, 0x9E, 0xA7,
+               0xF6, 0xF0, 0xA6, 0x9E, 0xB5, 0xF6, 0xF0, 0xA3,
+               0x8E, 0x93, 0xF6, 0xF0, 0xA3, 0x8E, 0x9C, 0xF6,
+               0xE8, 0x88, 0x81, 0xF6, 0xE8, 0x88, 0x84, 0xF6,
+               0xE8, 0xBE, 0x9E, 0xF6, 0xE4, 0x91, 0xAB, 0xF6,
+               0xE8, 0x8A, 0x91, 0xF6, 0xE8, 0x8A, 0x8B, 0xF6,
+               0xE8, 0x8A, 0x9D, 0xF6, 0xE5, 0x8A, 0xB3, 0xF6,
+               0xE8, 0x8A, 0xB1, 0xF6, 0xE8, 0x8A, 0xB3, 0xF6,
+               0xE8, 0x8A, 0xBD, 0xF6, 0xE8, 0x8B, 0xA6, 0xF6,
+               0xF0, 0xA6, 0xAC, 0xBC, 0xF6, 0xE8, 0x8B, 0xA5,
+               0xF6, 0xE8, 0x8C, 0x9D, 0xF6, 0xE8, 0x8D, 0xA3,
+               0xF6, 0xE8, 0x8E, 0xAD, 0xF6, 0xE8, 0x8C, 0xA3,
+               0xF6, 0xE8, 0x8E, 0xBD, 0xF6, 0xE8, 0x8F, 0xA7,
+               0xF6, 0xE8, 0x91, 0x97, 0xF6, 0xE8, 0x8D, 0x93,
+               0xF6, 0xE8, 0x8F, 0x8A, 0xF6, 0xE8, 0x8F, 0x8C,
+               0xF6, 0xE8, 0x8F, 0x9C, 0xF6, 0xF0, 0xA6, 0xB0,
+               0xB6, 0xF6, 0xF0, 0xA6, 0xB5, 0xAB, 0xF6, 0xF0,
+               0xA6, 0xB3, 0x95, 0xF6, 0xE4, 0x94, 0xAB, 0xF6,
+               0xE8, 0x93, 0xB1, 0xF6, 0xE8, 0x93, 0xB3, 0xF6,
+               0xE8, 0x94, 0x96, 0xF6, 0xF0, 0xA7, 0x8F, 0x8A,
+               0xF6, 0xE8, 0x95, 0xA4, 0xF6, 0xF0, 0xA6, 0xBC,
+               0xAC, 0xF6, 0xE4, 0x95, 0x9D, 0xF6, 0xE4, 0x95,
+               0xA1, 0xF6, 0xF0, 0xA6, 0xBE, 0xB1, 0xF6, 0xF0,
+               0xA7, 0x83, 0x92, 0xF6, 0xE4, 0x95, 0xAB, 0xF6,
+               0xE8, 0x99, 0x90, 0xF6, 0xE8, 0x99, 0x9C, 0xF6,
+               0xE8, 0x99, 0xA7, 0xF6, 0xE8, 0x99, 0xA9, 0xF6,
+               0xE8, 0x9A, 0xA9, 0xF6, 0xE8, 0x9A, 0x88, 0xF6,
+               0xE8, 0x9C, 0x8E, 0xF6, 0xE8, 0x9B, 0xA2, 0xF6,
+               0xE8, 0x9D, 0xB9, 0xF6, 0xE8, 0x9C, 0xA8, 0xF6,
+               0xE8, 0x9D, 0xAB, 0xF6, 0xE8, 0x9E, 0x86, 0xF6,
+               0xE4, 0x97, 0x97, 0xF6, 0xE8, 0x9F, 0xA1, 0xF6,
+               0xE8, 0xA0, 0x81, 0xF6, 0xE4, 0x97, 0xB9, 0xF6,
+               0xE8, 0xA1, 0xA0, 0xF6, 0xE8, 0xA1, 0xA3, 0xF6,
+               0xF0, 0xA7, 0x99, 0xA7, 0xF6, 0xE8, 0xA3, 0x97,
+               0xF6, 0xE8, 0xA3, 0x9E, 0xF6, 0xE4, 0x98, 0xB5,
+               0xF6, 0xE8, 0xA3, 0xBA, 0xF6, 0xE3, 0x92, 0xBB,
+               0xF6, 0xF0, 0xA7, 0xA2, 0xAE, 0xF6, 0xF0, 0xA7,
+               0xA5, 0xA6, 0xF6, 0xE4, 0x9A, 0xBE, 0xF6, 0xE4,
+               0x9B, 0x87, 0xF6, 0xE8, 0xAA, 0xA0, 0xF6, 0xE8,
+               0xAB, 0xAD, 0xF6, 0xE8, 0xAE, 0x8A, 0xF6, 0xE8,
+               0xB1, 0x95, 0xF6, 0xF0, 0xA7, 0xB2, 0xA8, 0xF6,
+               0xE8, 0xB2, 0xAB, 0xF6, 0xE8, 0xB3, 0x81, 0xF6,
+               0xE8, 0xB4, 0x9B, 0xF6, 0xE8, 0xB5, 0xB7, 0xF6,
+               0xF0, 0xA7, 0xBC, 0xAF, 0xF6, 0xF0, 0xA0, 0xA0,
+               0x84, 0xF6, 0xE8, 0xB7, 0x8B, 0xF6, 0xE8, 0xB6,
+               0xBC, 0xF6, 0xE8, 0xB7, 0xB0, 0xF6, 0xF0, 0xA0,
+               0xA3, 0x9E, 0xF6, 0xE8, 0xBB, 0x94, 0xF6, 0xE8,
+               0xBC, 0xB8, 0xF6, 0xF0, 0xA8, 0x97, 0x92, 0xF6,
+               0xF0, 0xA8, 0x97, 0xAD, 0xF6, 0xE9, 0x82, 0x94,
+               0xF6, 0xE9, 0x83, 0xB1, 0xF6, 0xE9, 0x84, 0x91,
+               0xF6, 0xF0, 0xA8, 0x9C, 0xAE, 0xF6, 0xE9, 0x84,
+               0x9B, 0xF6, 0xE9, 0x88, 0xB8, 0xF6, 0xE9, 0x8B,
+               0x97, 0xF6, 0xE9, 0x8B, 0x98, 0xF6, 0xE9, 0x89,
+               0xBC, 0xF6, 0xE9, 0x8F, 0xB9, 0xF6, 0xE9, 0x90,
+               0x95, 0xF6, 0xF0, 0xA8, 0xAF, 0xBA, 0xF6, 0xE9,
+               0x96, 0x8B, 0xF6, 0xE4, 0xA6, 0x95, 0xF6, 0xE9,
+               0x96, 0xB7, 0xF6, 0xF0, 0xA8, 0xB5, 0xB7, 0xF6,
+               0xE4, 0xA7, 0xA6, 0xF6, 0xE9, 0x9B, 0x83, 0xF6,
+               0xE5, 0xB6, 0xB2, 0xF6, 0xE9, 0x9C, 0xA3, 0xF6,
+               0xF0, 0xA9, 0x85, 0x85, 0xF6, 0xF0, 0xA9, 0x88,
+               0x9A, 0xF6, 0xE4, 0xA9, 0xAE, 0xF6, 0xE4, 0xA9,
+               0xB6, 0xF6, 0xE9, 0x9F, 0xA0, 0xF6, 0xF0, 0xA9,
+               0x90, 0x8A, 0xF6, 0xE4, 0xAA, 0xB2, 0xF6, 0xF0,
+               0xA9, 0x92, 0x96, 0xF6, 0xE9, 0xA0, 0x8B, 0xF6,
+               0xE9, 0xA0, 0x8B, 0xF6, 0xE9, 0xA0, 0xA9, 0xF6,
+               0xF0, 0xA9, 0x96, 0xB6, 0xF6, 0xE9, 0xA3, 0xA2,
+               0xF6, 0xE4, 0xAC, 0xB3, 0xF6, 0xE9, 0xA4, 0xA9,
+               0xF6, 0xE9, 0xA6, 0xA7, 0xF6, 0xE9, 0xA7, 0x82,
+               0xF6, 0xE9, 0xA7, 0xBE, 0xF6, 0xE4, 0xAF, 0x8E,
+               0xF6, 0xF0, 0xA9, 0xAC, 0xB0, 0xF6, 0xE9, 0xAC,
+               0x92, 0xF6, 0xE9, 0xB1, 0x80, 0xF6, 0xE9, 0xB3,
+               0xBD, 0xF6, 0xE4, 0xB3, 0x8E, 0xF6, 0xE4, 0xB3,
+               0xAD, 0xF6, 0xE9, 0xB5, 0xA7, 0xF6, 0xF0, 0xAA,
+               0x83, 0x8E, 0xF6, 0xE4, 0xB3, 0xB8, 0xF6, 0xF0,
+               0xAA, 0x84, 0x85, 0xF6, 0xF0, 0xAA, 0x88, 0x8E,
+               0xF6, 0xF0, 0xAA, 0x8A, 0x91, 0xF6, 0xE9, 0xBA,
+               0xBB, 0xF6, 0xE4, 0xB5, 0x96, 0xF6, 0xE9, 0xBB,
+               0xB9, 0xF6, 0xE9, 0xBB, 0xBE, 0xF6, 0xE9, 0xBC,
+               0x85, 0xF6, 0xE9, 0xBC, 0x8F, 0xF6, 0xE9, 0xBC,
+               0x96, 0xF6, 0xE9, 0xBC, 0xBB, 0xF6, 0xF0, 0xAA,
+               0x98, 0x80, 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,    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,    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,    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,    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,    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,
+               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,    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,    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,    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,    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,    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,    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,    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,
+               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,    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,    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,    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,    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,    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,    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,    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,
+               0,    0,    0,    0,    0,    0,    0,    0,
+               0,    0,
+       },
+       {
+               0x20, 0x20, 0xCC, 0x88, 0x61, 0x20, 0xCC, 0x84,
+               0x32, 0x33, 0x20, 0xCC, 0x81, 0xCE, 0xBC, 0x20,
+               0xCC, 0xA7, 0x31, 0x6F, 0x31, 0xE2, 0x81, 0x84,
+               0x34, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x33, 0xE2,
+               0x81, 0x84, 0x34, 0xF6, 0x41, 0xCC, 0x80, 0xF6,
+               0x41, 0xCC, 0x81, 0xF6, 0x41, 0xCC, 0x82, 0xF6,
+               0x41, 0xCC, 0x83, 0xF6, 0x41, 0xCC, 0x88, 0xF6,
+               0x41, 0xCC, 0x8A, 0xF6, 0x43, 0xCC, 0xA7, 0xF6,
+               0x45, 0xCC, 0x80, 0xF6, 0x45, 0xCC, 0x81, 0xF6,
+               0x45, 0xCC, 0x82, 0xF6, 0x45, 0xCC, 0x88, 0xF6,
+               0x49, 0xCC, 0x80, 0xF6, 0x49, 0xCC, 0x81, 0xF6,
+               0x49, 0xCC, 0x82, 0xF6, 0x49, 0xCC, 0x88, 0xF6,
+               0x4E, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x80, 0xF6,
+               0x4F, 0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xF6,
+               0x4F, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x88, 0xF6,
+               0x55, 0xCC, 0x80, 0xF6, 0x55, 0xCC, 0x81, 0xF6,
+               0x55, 0xCC, 0x82, 0xF6, 0x55, 0xCC, 0x88, 0xF6,
+               0x59, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x80, 0xF6,
+               0x61, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x82, 0xF6,
+               0x61, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x88, 0xF6,
+               0x61, 0xCC, 0x8A, 0xF6, 0x63, 0xCC, 0xA7, 0xF6,
+               0x65, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x81, 0xF6,
+               0x65, 0xCC, 0x82, 0xF6, 0x65, 0xCC, 0x88, 0xF6,
+               0x69, 0xCC, 0x80, 0xF6, 0x69, 0xCC, 0x81, 0xF6,
+               0x69, 0xCC, 0x82, 0xF6, 0x69, 0xCC, 0x88, 0xF6,
+               0x6E, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x80, 0xF6,
+               0x6F, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82, 0xF6,
+               0x6F, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x88, 0xF6,
+               0x75, 0xCC, 0x80, 0xF6, 0x75, 0xCC, 0x81, 0xF6,
+               0x75, 0xCC, 0x82, 0xF6, 0x75, 0xCC, 0x88, 0xF6,
+               0x79, 0xCC, 0x81, 0xF6, 0x79, 0xCC, 0x88, 0xF6,
+               0x41, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x84, 0xF6,
+               0x41, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0x86, 0xF6,
+               0x41, 0xCC, 0xA8, 0xF6, 0x61, 0xCC, 0xA8, 0xF6,
+               0x43, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0x81, 0xF6,
+               0x43, 0xCC, 0x82, 0xF6, 0x63, 0xCC, 0x82, 0xF6,
+               0x43, 0xCC, 0x87, 0xF6, 0x63, 0xCC, 0x87, 0xF6,
+               0x43, 0xCC, 0x8C, 0xF6, 0x63, 0xCC, 0x8C, 0xF6,
+               0x44, 0xCC, 0x8C, 0xF6, 0x64, 0xCC, 0x8C, 0xF6,
+               0x45, 0xCC, 0x84, 0xF6, 0x65, 0xCC, 0x84, 0xF6,
+               0x45, 0xCC, 0x86, 0xF6, 0x65, 0xCC, 0x86, 0xF6,
+               0x45, 0xCC, 0x87, 0xF6, 0x65, 0xCC, 0x87, 0xF6,
+               0x45, 0xCC, 0xA8, 0xF6, 0x65, 0xCC, 0xA8, 0xF6,
+               0x45, 0xCC, 0x8C, 0xF6, 0x65, 0xCC, 0x8C, 0xF6,
+               0x47, 0xCC, 0x82, 0xF6, 0x67, 0xCC, 0x82, 0xF6,
+               0x47, 0xCC, 0x86, 0xF6, 0x67, 0xCC, 0x86, 0xF6,
+               0x47, 0xCC, 0x87, 0xF6, 0x67, 0xCC, 0x87, 0xF6,
+               0x47, 0xCC, 0xA7, 0xF6, 0x67, 0xCC, 0xA7, 0xF6,
+               0x48, 0xCC, 0x82, 0xF6, 0x68, 0xCC, 0x82, 0xF6,
+               0x49, 0xCC, 0x83, 0xF6, 0x69, 0xCC, 0x83, 0xF6,
+               0x49, 0xCC, 0x84, 0xF6, 0x69, 0xCC, 0x84, 0xF6,
+               0x49, 0xCC, 0x86, 0xF6, 0x69, 0xCC, 0x86, 0xF6,
+               0x49, 0xCC, 0xA8, 0xF6, 0x69, 0xCC, 0xA8, 0xF6,
+               0x49, 0xCC, 0x87, 0x49, 0x4A, 0x69, 0x6A, 0xF6,
+               0x4A, 0xCC, 0x82, 0xF6, 0x6A, 0xCC, 0x82, 0xF6,
+               0x4B, 0xCC, 0xA7, 0xF6, 0x6B, 0xCC, 0xA7, 0xF6,
+               0x4C, 0xCC, 0x81, 0xF6, 0x6C, 0xCC, 0x81, 0xF6,
+               0x4C, 0xCC, 0xA7, 0xF6, 0x6C, 0xCC, 0xA7, 0xF6,
+               0x4C, 0xCC, 0x8C, 0xF6, 0x6C, 0xCC, 0x8C, 0x4C,
+               0xC2, 0xB7, 0x6C, 0xC2, 0xB7, 0xF6, 0x4E, 0xCC,
+               0x81, 0xF6, 0x6E, 0xCC, 0x81, 0xF6, 0x4E, 0xCC,
+               0xA7, 0xF6, 0x6E, 0xCC, 0xA7, 0xF6, 0x4E, 0xCC,
+               0x8C, 0xF6, 0x6E, 0xCC, 0x8C, 0xCA, 0xBC, 0x6E,
+               0xF6, 0x4F, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, 0x84,
+               0xF6, 0x4F, 0xCC, 0x86, 0xF6, 0x6F, 0xCC, 0x86,
+               0xF6, 0x4F, 0xCC, 0x8B, 0xF6, 0x6F, 0xCC, 0x8B,
+               0xF6, 0x52, 0xCC, 0x81, 0xF6, 0x72, 0xCC, 0x81,
+               0xF6, 0x52, 0xCC, 0xA7, 0xF6, 0x72, 0xCC, 0xA7,
+               0xF6, 0x52, 0xCC, 0x8C, 0xF6, 0x72, 0xCC, 0x8C,
+               0xF6, 0x53, 0xCC, 0x81, 0xF6, 0x73, 0xCC, 0x81,
+               0xF6, 0x53, 0xCC, 0x82, 0xF6, 0x73, 0xCC, 0x82,
+               0xF6, 0x53, 0xCC, 0xA7, 0xF6, 0x73, 0xCC, 0xA7,
+               0xF6, 0x53, 0xCC, 0x8C, 0xF6, 0x73, 0xCC, 0x8C,
+               0xF6, 0x54, 0xCC, 0xA7, 0xF6, 0x74, 0xCC, 0xA7,
+               0xF6, 0x54, 0xCC, 0x8C, 0xF6, 0x74, 0xCC, 0x8C,
+               0xF6, 0x55, 0xCC, 0x83, 0xF6, 0x75, 0xCC, 0x83,
+               0xF6, 0x55, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x84,
+               0xF6, 0x55, 0xCC, 0x86, 0xF6, 0x75, 0xCC, 0x86,
+               0xF6, 0x55, 0xCC, 0x8A, 0xF6, 0x75, 0xCC, 0x8A,
+               0xF6, 0x55, 0xCC, 0x8B, 0xF6, 0x75, 0xCC, 0x8B,
+               0xF6, 0x55, 0xCC, 0xA8, 0xF6, 0x75, 0xCC, 0xA8,
+               0xF6, 0x57, 0xCC, 0x82, 0xF6, 0x77, 0xCC, 0x82,
+               0xF6, 0x59, 0xCC, 0x82, 0xF6, 0x79, 0xCC, 0x82,
+               0xF6, 0x59, 0xCC, 0x88, 0xF6, 0x5A, 0xCC, 0x81,
+               0xF6, 0x7A, 0xCC, 0x81, 0xF6, 0x5A, 0xCC, 0x87,
+               0xF6, 0x7A, 0xCC, 0x87, 0xF6, 0x5A, 0xCC, 0x8C,
+               0xF6, 0x7A, 0xCC, 0x8C, 0x73, 0xF6, 0x4F, 0xCC,
+               0x9B, 0xF6, 0x6F, 0xCC, 0x9B, 0xF6, 0x55, 0xCC,
+               0x9B, 0xF6, 0x75, 0xCC, 0x9B, 0x44, 0x5A, 0xCC,
+               0x8C, 0x44, 0x7A, 0xCC, 0x8C, 0x64, 0x7A, 0xCC,
+               0x8C, 0x4C, 0x4A, 0x4C, 0x6A, 0x6C, 0x6A, 0x4E,
+               0x4A, 0x4E, 0x6A, 0x6E, 0x6A, 0xF6, 0x41, 0xCC,
+               0x8C, 0xF6, 0x61, 0xCC, 0x8C, 0xF6, 0x49, 0xCC,
+               0x8C, 0xF6, 0x69, 0xCC, 0x8C, 0xF6, 0x4F, 0xCC,
+               0x8C, 0xF6, 0x6F, 0xCC, 0x8C, 0xF6, 0x55, 0xCC,
+               0x8C, 0xF6, 0x75, 0xCC, 0x8C, 0xF6, 0x55, 0xCC,
+               0x88, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x88, 0xCC,
+               0x84, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
+               0x75, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x55, 0xCC,
+               0x88, 0xCC, 0x8C, 0xF6, 0x75, 0xCC, 0x88, 0xCC,
+               0x8C, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xF6,
+               0x75, 0xCC, 0x88, 0xCC, 0x80, 0xF6, 0x41, 0xCC,
+               0x88, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x88, 0xCC,
+               0x84, 0xF6, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xF6,
+               0x61, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0xC3, 0x86,
+               0xCC, 0x84, 0xF6, 0xC3, 0xA6, 0xCC, 0x84, 0xF6,
+               0x47, 0xCC, 0x8C, 0xF6, 0x67, 0xCC, 0x8C, 0xF6,
+               0x4B, 0xCC, 0x8C, 0xF6, 0x6B, 0xCC, 0x8C, 0xF6,
+               0x4F, 0xCC, 0xA8, 0xF6, 0x6F, 0xCC, 0xA8, 0xF6,
+               0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
+               0xA8, 0xCC, 0x84, 0xF6, 0xC6, 0xB7, 0xCC, 0x8C,
+               0xF6, 0xCA, 0x92, 0xCC, 0x8C, 0xF6, 0x6A, 0xCC,
+               0x8C, 0x44, 0x5A, 0x44, 0x7A, 0x64, 0x7A, 0xF6,
+               0x47, 0xCC, 0x81, 0xF6, 0x67, 0xCC, 0x81, 0xF6,
+               0x4E, 0xCC, 0x80, 0xF6, 0x6E, 0xCC, 0x80, 0xF6,
+               0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xF6, 0x61, 0xCC,
+               0x8A, 0xCC, 0x81, 0xF6, 0xC3, 0x86, 0xCC, 0x81,
+               0xF6, 0xC3, 0xA6, 0xCC, 0x81, 0xF6, 0xC3, 0x98,
+               0xCC, 0x81, 0xF6, 0xC3, 0xB8, 0xCC, 0x81, 0xF6,
+               0x41, 0xCC, 0x8F, 0xF6, 0x61, 0xCC, 0x8F, 0xF6,
+               0x41, 0xCC, 0x91, 0xF6, 0x61, 0xCC, 0x91, 0xF6,
+               0x45, 0xCC, 0x8F, 0xF6, 0x65, 0xCC, 0x8F, 0xF6,
+               0x45, 0xCC, 0x91, 0xF6, 0x65, 0xCC, 0x91, 0xF6,
+               0x49, 0xCC, 0x8F, 0xF6, 0x69, 0xCC, 0x8F, 0xF6,
+               0x49, 0xCC, 0x91, 0xF6, 0x69, 0xCC, 0x91, 0xF6,
+               0x4F, 0xCC, 0x8F, 0xF6, 0x6F, 0xCC, 0x8F, 0xF6,
+               0x4F, 0xCC, 0x91, 0xF6, 0x6F, 0xCC, 0x91, 0xF6,
+               0x52, 0xCC, 0x8F, 0xF6, 0x72, 0xCC, 0x8F, 0xF6,
+               0x52, 0xCC, 0x91, 0xF6, 0x72, 0xCC, 0x91, 0xF6,
+               0x55, 0xCC, 0x8F, 0xF6, 0x75, 0xCC, 0x8F, 0xF6,
+               0x55, 0xCC, 0x91, 0xF6, 0x75, 0xCC, 0x91, 0xF6,
+               0x53, 0xCC, 0xA6, 0xF6, 0x73, 0xCC, 0xA6, 0xF6,
+               0x54, 0xCC, 0xA6, 0xF6, 0x74, 0xCC, 0xA6, 0xF6,
+               0x48, 0xCC, 0x8C, 0xF6, 0x68, 0xCC, 0x8C, 0xF6,
+               0x41, 0xCC, 0x87, 0xF6, 0x61, 0xCC, 0x87, 0xF6,
+               0x45, 0xCC, 0xA7, 0xF6, 0x65, 0xCC, 0xA7, 0xF6,
+               0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
+               0x88, 0xCC, 0x84, 0xF6, 0x4F, 0xCC, 0x83, 0xCC,
+               0x84, 0xF6, 0x6F, 0xCC, 0x83, 0xCC, 0x84, 0xF6,
+               0x4F, 0xCC, 0x87, 0xF6, 0x6F, 0xCC, 0x87, 0xF6,
+               0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
+               0x87, 0xCC, 0x84, 0xF6, 0x59, 0xCC, 0x84, 0xF6,
+               0x79, 0xCC, 0x84, 0x68, 0xC9, 0xA6, 0x6A, 0x72,
+               0xC9, 0xB9, 0xC9, 0xBB, 0xCA, 0x81, 0x77, 0x79,
+               0x20, 0xCC, 0x86, 0x20, 0xCC, 0x87, 0x20, 0xCC,
+               0x8A, 0x20, 0xCC, 0xA8, 0x20, 0xCC, 0x83, 0x20,
+               0xCC, 0x8B, 0xC9, 0xA3, 0x6C, 0x73, 0x78, 0xCA,
+               0x95, 0xF6, 0xCC, 0x80, 0xF6, 0xCC, 0x81, 0xF6,
+               0xCC, 0x93, 0xF6, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
+               0xCA, 0xB9, 0x20, 0xCD, 0x85, 0xF6, 0x3B, 0x20,
+               0xCC, 0x81, 0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81,
+               0x20, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0xCE, 0x91,
+               0xCC, 0x81, 0xF6, 0xC2, 0xB7, 0xF6, 0xCE, 0x95,
+               0xCC, 0x81, 0xF6, 0xCE, 0x97, 0xCC, 0x81, 0xF6,
+               0xCE, 0x99, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC,
+               0x81, 0xF6, 0xCE, 0xA5, 0xCC, 0x81, 0xF6, 0xCE,
+               0xA9, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x88,
+               0xCC, 0x81, 0xF6, 0xCE, 0x99, 0xCC, 0x88, 0xF6,
+               0xCE, 0xA5, 0xCC, 0x88, 0xF6, 0xCE, 0xB1, 0xCC,
+               0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x81, 0xF6, 0xCE,
+               0xB7, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x81,
+               0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
+               0xCE, 0xB9, 0xCC, 0x88, 0xF6, 0xCF, 0x85, 0xCC,
+               0x88, 0xF6, 0xCE, 0xBF, 0xCC, 0x81, 0xF6, 0xCF,
+               0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC, 0x81,
+               0xCE, 0xB2, 0xCE, 0xB8, 0xCE, 0xA5, 0xF5, 0x05,
+               0xCF, 0x92, 0xCC, 0x81, 0xCE, 0xA5, 0xCC, 0x81,
+               0xF5, 0x05, 0xCF, 0x92, 0xCC, 0x88, 0xCE, 0xA5,
+               0xCC, 0x88, 0xCF, 0x86, 0xCF, 0x80, 0xCE, 0xBA,
+               0xCF, 0x81, 0xCF, 0x82, 0xCE, 0x98, 0xCE, 0xB5,
+               0xCE, 0xA3, 0xF6, 0xD0, 0x95, 0xCC, 0x80, 0xF6,
+               0xD0, 0x95, 0xCC, 0x88, 0xF6, 0xD0, 0x93, 0xCC,
+               0x81, 0xF6, 0xD0, 0x86, 0xCC, 0x88, 0xF6, 0xD0,
+               0x9A, 0xCC, 0x81, 0xF6, 0xD0, 0x98, 0xCC, 0x80,
+               0xF6, 0xD0, 0xA3, 0xCC, 0x86, 0xF6, 0xD0, 0x98,
+               0xCC, 0x86, 0xF6, 0xD0, 0xB8, 0xCC, 0x86, 0xF6,
+               0xD0, 0xB5, 0xCC, 0x80, 0xF6, 0xD0, 0xB5, 0xCC,
+               0x88, 0xF6, 0xD0, 0xB3, 0xCC, 0x81, 0xF6, 0xD1,
+               0x96, 0xCC, 0x88, 0xF6, 0xD0, 0xBA, 0xCC, 0x81,
+               0xF6, 0xD0, 0xB8, 0xCC, 0x80, 0xF6, 0xD1, 0x83,
+               0xCC, 0x86, 0xF6, 0xD1, 0xB4, 0xCC, 0x8F, 0xF6,
+               0xD1, 0xB5, 0xCC, 0x8F, 0xF6, 0xD0, 0x96, 0xCC,
+               0x86, 0xF6, 0xD0, 0xB6, 0xCC, 0x86, 0xF6, 0xD0,
+               0x90, 0xCC, 0x86, 0xF6, 0xD0, 0xB0, 0xCC, 0x86,
+               0xF6, 0xD0, 0x90, 0xCC, 0x88, 0xF6, 0xD0, 0xB0,
+               0xCC, 0x88, 0xF6, 0xD0, 0x95, 0xCC, 0x86, 0xF6,
+               0xD0, 0xB5, 0xCC, 0x86, 0xF6, 0xD3, 0x98, 0xCC,
+               0x88, 0xF6, 0xD3, 0x99, 0xCC, 0x88, 0xF6, 0xD0,
+               0x96, 0xCC, 0x88, 0xF6, 0xD0, 0xB6, 0xCC, 0x88,
+               0xF6, 0xD0, 0x97, 0xCC, 0x88, 0xF6, 0xD0, 0xB7,
+               0xCC, 0x88, 0xF6, 0xD0, 0x98, 0xCC, 0x84, 0xF6,
+               0xD0, 0xB8, 0xCC, 0x84, 0xF6, 0xD0, 0x98, 0xCC,
+               0x88, 0xF6, 0xD0, 0xB8, 0xCC, 0x88, 0xF6, 0xD0,
+               0x9E, 0xCC, 0x88, 0xF6, 0xD0, 0xBE, 0xCC, 0x88,
+               0xF6, 0xD3, 0xA8, 0xCC, 0x88, 0xF6, 0xD3, 0xA9,
+               0xCC, 0x88, 0xF6, 0xD0, 0xAD, 0xCC, 0x88, 0xF6,
+               0xD1, 0x8D, 0xCC, 0x88, 0xF6, 0xD0, 0xA3, 0xCC,
+               0x84, 0xF6, 0xD1, 0x83, 0xCC, 0x84, 0xF6, 0xD0,
+               0xA3, 0xCC, 0x88, 0xF6, 0xD1, 0x83, 0xCC, 0x88,
+               0xF6, 0xD0, 0xA3, 0xCC, 0x8B, 0xF6, 0xD1, 0x83,
+               0xCC, 0x8B, 0xF6, 0xD0, 0xA7, 0xCC, 0x88, 0xF6,
+               0xD1, 0x87, 0xCC, 0x88, 0xF6, 0xD0, 0xAB, 0xCC,
+               0x88, 0xF6, 0xD1, 0x8B, 0xCC, 0x88, 0xD5, 0xA5,
+               0xD6, 0x82, 0xF6, 0xD8, 0xA7, 0xD9, 0x93, 0xF6,
+               0xD8, 0xA7, 0xD9, 0x94, 0xF6, 0xD9, 0x88, 0xD9,
+               0x94, 0xF6, 0xD8, 0xA7, 0xD9, 0x95, 0xF6, 0xD9,
+               0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0xB4, 0xD9,
+               0x88, 0xD9, 0xB4, 0xDB, 0x87, 0xD9, 0xB4, 0xD9,
+               0x8A, 0xD9, 0xB4, 0xF6, 0xDB, 0x95, 0xD9, 0x94,
+               0xF6, 0xDB, 0x81, 0xD9, 0x94, 0xF6, 0xDB, 0x92,
+               0xD9, 0x94, 0xF6, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4,
+               0xBC, 0xF6, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC,
+               0xF6, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0xF6,
+               0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0,
+               0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4,
+               0x97, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x9C,
+               0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0xA1, 0xE0,
+               0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0xA2, 0xE0, 0xA4,
+               0xBC, 0xF6, 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC,
+               0xF6, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0xF6,
+               0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0xF6, 0xE0,
+               0xA7, 0x87, 0xE0, 0xA7, 0x97, 0xF6, 0xE0, 0xA6,
+               0xA1, 0xE0, 0xA6, 0xBC, 0xF6, 0xE0, 0xA6, 0xA2,
+               0xE0, 0xA6, 0xBC, 0xF6, 0xE0, 0xA6, 0xAF, 0xE0,
+               0xA6, 0xBC, 0xF6, 0xE0, 0xA8, 0xB2, 0xE0, 0xA8,
+               0xBC, 0xF6, 0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC,
+               0xF6, 0xE0, 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0xF6,
+               0xE0, 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0,
+               0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8,
+               0xAB, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xAD, 0x87,
+               0xE0, 0xAD, 0x96, 0xF6, 0xE0, 0xAD, 0x87, 0xE0,
+               0xAC, 0xBE, 0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAD,
+               0x97, 0xF6, 0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC,
+               0xF6, 0xE0, 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0xF6,
+               0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0xF6, 0xE0,
+               0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0xF6, 0xE0, 0xAF,
+               0x87, 0xE0, 0xAE, 0xBE, 0xF6, 0xE0, 0xAF, 0x86,
+               0xE0, 0xAF, 0x97, 0xF6, 0xE0, 0xB1, 0x86, 0xE0,
+               0xB1, 0x96, 0xF6, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3,
+               0x95, 0xF6, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95,
+               0xF6, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0xF6,
+               0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xF6, 0xE0,
+               0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, 0xB3, 0x95,
+               0xF6, 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0xF6,
+               0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0xF6, 0xE0,
+               0xB5, 0x86, 0xE0, 0xB5, 0x97, 0xF6, 0xE0, 0xB7,
+               0x99, 0xE0, 0xB7, 0x8A, 0xF6, 0xE0, 0xB7, 0x99,
+               0xE0, 0xB7, 0x8F, 0xF6, 0xE0, 0xB7, 0x99, 0xE0,
+               0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0xF6, 0xE0, 0xB7,
+               0x99, 0xE0, 0xB7, 0x9F, 0xE0, 0xB9, 0x8D, 0xE0,
+               0xB8, 0xB2, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2,
+               0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0xE0, 0xBA,
+               0xAB, 0xE0, 0xBA, 0xA1, 0xE0, 0xBC, 0x8B, 0xF6,
+               0xE0, 0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0,
+               0xBD, 0x8C, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD,
+               0x91, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x96,
+               0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x9B, 0xE0,
+               0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x80, 0xE0, 0xBE,
+               0xB5, 0xF6, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2,
+               0xF6, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xF6,
+               0xE0, 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0xE0, 0xBE,
+               0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6,
+               0xE0, 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0xE0, 0xBE,
+               0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6,
+               0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0,
+               0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE,
+               0x9C, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xA1,
+               0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xA6, 0xE0,
+               0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,
+               0xB7, 0xF6, 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5,
+               0xF6, 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0xE1,
+               0x83, 0x9C, 0xF6, 0xE1, 0xAC, 0x85, 0xE1, 0xAC,
+               0xB5, 0xF6, 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5,
+               0xF6, 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0xF6,
+               0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0xF6, 0xE1,
+               0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0xF6, 0xE1, 0xAC,
+               0x91, 0xE1, 0xAC, 0xB5, 0xF6, 0xE1, 0xAC, 0xBA,
+               0xE1, 0xAC, 0xB5, 0xF6, 0xE1, 0xAC, 0xBC, 0xE1,
+               0xAC, 0xB5, 0xF6, 0xE1, 0xAC, 0xBE, 0xE1, 0xAC,
+               0xB5, 0xF6, 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5,
+               0xF6, 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x41,
+               0xC3, 0x86, 0x42, 0x44, 0x45, 0xC6, 0x8E, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0xC8, 0xA2, 0x50, 0x52, 0x54, 0x55, 0x57, 0x61,
+               0xC9, 0x90, 0xC9, 0x91, 0xE1, 0xB4, 0x82, 0x62,
+               0x64, 0x65, 0xC9, 0x99, 0xC9, 0x9B, 0xC9, 0x9C,
+               0x67, 0x6B, 0x6D, 0xC5, 0x8B, 0x6F, 0xC9, 0x94,
+               0xE1, 0xB4, 0x96, 0xE1, 0xB4, 0x97, 0x70, 0x74,
+               0x75, 0xE1, 0xB4, 0x9D, 0xC9, 0xAF, 0x76, 0xE1,
+               0xB4, 0xA5, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4,
+               0xCF, 0x86, 0xCF, 0x87, 0x69, 0x72, 0x75, 0x76,
+               0xCE, 0xB2, 0xCE, 0xB3, 0xCF, 0x81, 0xCF, 0x86,
+               0xCF, 0x87, 0xD0, 0xBD, 0xC9, 0x92, 0x63, 0xC9,
+               0x95, 0xC3, 0xB0, 0xC9, 0x9C, 0x66, 0xC9, 0x9F,
+               0xC9, 0xA1, 0xC9, 0xA5, 0xC9, 0xA8, 0xC9, 0xA9,
+               0xC9, 0xAA, 0xE1, 0xB5, 0xBB, 0xCA, 0x9D, 0xC9,
+               0xAD, 0xE1, 0xB6, 0x85, 0xCA, 0x9F, 0xC9, 0xB1,
+               0xC9, 0xB0, 0xC9, 0xB2, 0xC9, 0xB3, 0xC9, 0xB4,
+               0xC9, 0xB5, 0xC9, 0xB8, 0xCA, 0x82, 0xCA, 0x83,
+               0xC6, 0xAB, 0xCA, 0x89, 0xCA, 0x8A, 0xE1, 0xB4,
+               0x9C, 0xCA, 0x8B, 0xCA, 0x8C, 0x7A, 0xCA, 0x90,
+               0xCA, 0x91, 0xCA, 0x92, 0xCE, 0xB8, 0xF6, 0x41,
+               0xCC, 0xA5, 0xF6, 0x61, 0xCC, 0xA5, 0xF6, 0x42,
+               0xCC, 0x87, 0xF6, 0x62, 0xCC, 0x87, 0xF6, 0x42,
+               0xCC, 0xA3, 0xF6, 0x62, 0xCC, 0xA3, 0xF6, 0x42,
+               0xCC, 0xB1, 0xF6, 0x62, 0xCC, 0xB1, 0xF6, 0x43,
+               0xCC, 0xA7, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0xA7,
+               0xCC, 0x81, 0xF6, 0x44, 0xCC, 0x87, 0xF6, 0x64,
+               0xCC, 0x87, 0xF6, 0x44, 0xCC, 0xA3, 0xF6, 0x64,
+               0xCC, 0xA3, 0xF6, 0x44, 0xCC, 0xB1, 0xF6, 0x64,
+               0xCC, 0xB1, 0xF6, 0x44, 0xCC, 0xA7, 0xF6, 0x64,
+               0xCC, 0xA7, 0xF6, 0x44, 0xCC, 0xAD, 0xF6, 0x64,
+               0xCC, 0xAD, 0xF6, 0x45, 0xCC, 0x84, 0xCC, 0x80,
+               0xF6, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xF6, 0x45,
+               0xCC, 0x84, 0xCC, 0x81, 0xF6, 0x65, 0xCC, 0x84,
+               0xCC, 0x81, 0xF6, 0x45, 0xCC, 0xAD, 0xF6, 0x65,
+               0xCC, 0xAD, 0xF6, 0x45, 0xCC, 0xB0, 0xF6, 0x65,
+               0xCC, 0xB0, 0xF6, 0x45, 0xCC, 0xA7, 0xCC, 0x86,
+               0xF6, 0x65, 0xCC, 0xA7, 0xCC, 0x86, 0xF6, 0x46,
+               0xCC, 0x87, 0xF6, 0x66, 0xCC, 0x87, 0xF6, 0x47,
+               0xCC, 0x84, 0xF6, 0x67, 0xCC, 0x84, 0xF6, 0x48,
+               0xCC, 0x87, 0xF6, 0x68, 0xCC, 0x87, 0xF6, 0x48,
+               0xCC, 0xA3, 0xF6, 0x68, 0xCC, 0xA3, 0xF6, 0x48,
+               0xCC, 0x88, 0xF6, 0x68, 0xCC, 0x88, 0xF6, 0x48,
+               0xCC, 0xA7, 0xF6, 0x68, 0xCC, 0xA7, 0xF6, 0x48,
+               0xCC, 0xAE, 0xF6, 0x68, 0xCC, 0xAE, 0xF6, 0x49,
+               0xCC, 0xB0, 0xF6, 0x69, 0xCC, 0xB0, 0xF6, 0x49,
+               0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x69, 0xCC, 0x88,
+               0xCC, 0x81, 0xF6, 0x4B, 0xCC, 0x81, 0xF6, 0x6B,
+               0xCC, 0x81, 0xF6, 0x4B, 0xCC, 0xA3, 0xF6, 0x6B,
+               0xCC, 0xA3, 0xF6, 0x4B, 0xCC, 0xB1, 0xF6, 0x6B,
+               0xCC, 0xB1, 0xF6, 0x4C, 0xCC, 0xA3, 0xF6, 0x6C,
+               0xCC, 0xA3, 0xF6, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,
+               0xF6, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xF6, 0x4C,
+               0xCC, 0xB1, 0xF6, 0x6C, 0xCC, 0xB1, 0xF6, 0x4C,
+               0xCC, 0xAD, 0xF6, 0x6C, 0xCC, 0xAD, 0xF6, 0x4D,
+               0xCC, 0x81, 0xF6, 0x6D, 0xCC, 0x81, 0xF6, 0x4D,
+               0xCC, 0x87, 0xF6, 0x6D, 0xCC, 0x87, 0xF6, 0x4D,
+               0xCC, 0xA3, 0xF6, 0x6D, 0xCC, 0xA3, 0xF6, 0x4E,
+               0xCC, 0x87, 0xF6, 0x6E, 0xCC, 0x87, 0xF6, 0x4E,
+               0xCC, 0xA3, 0xF6, 0x6E, 0xCC, 0xA3, 0xF6, 0x4E,
+               0xCC, 0xB1, 0xF6, 0x6E, 0xCC, 0xB1, 0xF6, 0x4E,
+               0xCC, 0xAD, 0xF6, 0x6E, 0xCC, 0xAD, 0xF6, 0x4F,
+               0xCC, 0x83, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x83,
+               0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x83, 0xCC, 0x88,
+               0xF6, 0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xF6, 0x4F,
+               0xCC, 0x84, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x84,
+               0xCC, 0x80, 0xF6, 0x4F, 0xCC, 0x84, 0xCC, 0x81,
+               0xF6, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xF6, 0x50,
+               0xCC, 0x81, 0xF6, 0x70, 0xCC, 0x81, 0xF6, 0x50,
+               0xCC, 0x87, 0xF6, 0x70, 0xCC, 0x87, 0xF6, 0x52,
+               0xCC, 0x87, 0xF6, 0x72, 0xCC, 0x87, 0xF6, 0x52,
+               0xCC, 0xA3, 0xF6, 0x72, 0xCC, 0xA3, 0xF6, 0x52,
+               0xCC, 0xA3, 0xCC, 0x84, 0xF6, 0x72, 0xCC, 0xA3,
+               0xCC, 0x84, 0xF6, 0x52, 0xCC, 0xB1, 0xF6, 0x72,
+               0xCC, 0xB1, 0xF6, 0x53, 0xCC, 0x87, 0xF6, 0x73,
+               0xCC, 0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xF6, 0x73,
+               0xCC, 0xA3, 0xF6, 0x53, 0xCC, 0x81, 0xCC, 0x87,
+               0xF6, 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xF6, 0x53,
+               0xCC, 0x8C, 0xCC, 0x87, 0xF6, 0x73, 0xCC, 0x8C,
+               0xCC, 0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xCC, 0x87,
+               0xF6, 0x73, 0xCC, 0xA3, 0xCC, 0x87, 0xF6, 0x54,
+               0xCC, 0x87, 0xF6, 0x74, 0xCC, 0x87, 0xF6, 0x54,
+               0xCC, 0xA3, 0xF6, 0x74, 0xCC, 0xA3, 0xF6, 0x54,
+               0xCC, 0xB1, 0xF6, 0x74, 0xCC, 0xB1, 0xF6, 0x54,
+               0xCC, 0xAD, 0xF6, 0x74, 0xCC, 0xAD, 0xF6, 0x55,
+               0xCC, 0xA4, 0xF6, 0x75, 0xCC, 0xA4, 0xF6, 0x55,
+               0xCC, 0xB0, 0xF6, 0x75, 0xCC, 0xB0, 0xF6, 0x55,
+               0xCC, 0xAD, 0xF6, 0x75, 0xCC, 0xAD, 0xF6, 0x55,
+               0xCC, 0x83, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x83,
+               0xCC, 0x81, 0xF6, 0x55, 0xCC, 0x84, 0xCC, 0x88,
+               0xF6, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xF6, 0x56,
+               0xCC, 0x83, 0xF6, 0x76, 0xCC, 0x83, 0xF6, 0x56,
+               0xCC, 0xA3, 0xF6, 0x76, 0xCC, 0xA3, 0xF6, 0x57,
+               0xCC, 0x80, 0xF6, 0x77, 0xCC, 0x80, 0xF6, 0x57,
+               0xCC, 0x81, 0xF6, 0x77, 0xCC, 0x81, 0xF6, 0x57,
+               0xCC, 0x88, 0xF6, 0x77, 0xCC, 0x88, 0xF6, 0x57,
+               0xCC, 0x87, 0xF6, 0x77, 0xCC, 0x87, 0xF6, 0x57,
+               0xCC, 0xA3, 0xF6, 0x77, 0xCC, 0xA3, 0xF6, 0x58,
+               0xCC, 0x87, 0xF6, 0x78, 0xCC, 0x87, 0xF6, 0x58,
+               0xCC, 0x88, 0xF6, 0x78, 0xCC, 0x88, 0xF6, 0x59,
+               0xCC, 0x87, 0xF6, 0x79, 0xCC, 0x87, 0xF6, 0x5A,
+               0xCC, 0x82, 0xF6, 0x7A, 0xCC, 0x82, 0xF6, 0x5A,
+               0xCC, 0xA3, 0xF6, 0x7A, 0xCC, 0xA3, 0xF6, 0x5A,
+               0xCC, 0xB1, 0xF6, 0x7A, 0xCC, 0xB1, 0xF6, 0x68,
+               0xCC, 0xB1, 0xF6, 0x74, 0xCC, 0x88, 0xF6, 0x77,
+               0xCC, 0x8A, 0xF6, 0x79, 0xCC, 0x8A, 0x61, 0xCA,
+               0xBE, 0xF5, 0x05, 0xC5, 0xBF, 0xCC, 0x87, 0x73,
+               0xCC, 0x87, 0xF6, 0x41, 0xCC, 0xA3, 0xF6, 0x61,
+               0xCC, 0xA3, 0xF6, 0x41, 0xCC, 0x89, 0xF6, 0x61,
+               0xCC, 0x89, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x81,
+               0xF6, 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x41,
+               0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x61, 0xCC, 0x82,
+               0xCC, 0x80, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x89,
+               0xF6, 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x41,
+               0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x82,
+               0xCC, 0x83, 0xF6, 0x41, 0xCC, 0xA3, 0xCC, 0x82,
+               0xF6, 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x41,
+               0xCC, 0x86, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x86,
+               0xCC, 0x81, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x80,
+               0xF6, 0x61, 0xCC, 0x86, 0xCC, 0x80, 0xF6, 0x41,
+               0xCC, 0x86, 0xCC, 0x89, 0xF6, 0x61, 0xCC, 0x86,
+               0xCC, 0x89, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x83,
+               0xF6, 0x61, 0xCC, 0x86, 0xCC, 0x83, 0xF6, 0x41,
+               0xCC, 0xA3, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0xA3,
+               0xCC, 0x86, 0xF6, 0x45, 0xCC, 0xA3, 0xF6, 0x65,
+               0xCC, 0xA3, 0xF6, 0x45, 0xCC, 0x89, 0xF6, 0x65,
+               0xCC, 0x89, 0xF6, 0x45, 0xCC, 0x83, 0xF6, 0x65,
+               0xCC, 0x83, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x81,
+               0xF6, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x45,
+               0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x82,
+               0xCC, 0x80, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x89,
+               0xF6, 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x45,
+               0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x65, 0xCC, 0x82,
+               0xCC, 0x83, 0xF6, 0x45, 0xCC, 0xA3, 0xCC, 0x82,
+               0xF6, 0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x49,
+               0xCC, 0x89, 0xF6, 0x69, 0xCC, 0x89, 0xF6, 0x49,
+               0xCC, 0xA3, 0xF6, 0x69, 0xCC, 0xA3, 0xF6, 0x4F,
+               0xCC, 0xA3, 0xF6, 0x6F, 0xCC, 0xA3, 0xF6, 0x4F,
+               0xCC, 0x89, 0xF6, 0x6F, 0xCC, 0x89, 0xF6, 0x4F,
+               0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82,
+               0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x80,
+               0xF6, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x4F,
+               0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x6F, 0xCC, 0x82,
+               0xCC, 0x89, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x83,
+               0xF6, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x4F,
+               0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x6F, 0xCC, 0xA3,
+               0xCC, 0x82, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x81,
+               0xF6, 0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xF6, 0x4F,
+               0xCC, 0x9B, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x9B,
+               0xCC, 0x80, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x89,
+               0xF6, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xF6, 0x4F,
+               0xCC, 0x9B, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x9B,
+               0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,
+               0xF6, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xF6, 0x55,
+               0xCC, 0xA3, 0xF6, 0x75, 0xCC, 0xA3, 0xF6, 0x55,
+               0xCC, 0x89, 0xF6, 0x75, 0xCC, 0x89, 0xF6, 0x55,
+               0xCC, 0x9B, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x9B,
+               0xCC, 0x81, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x80,
+               0xF6, 0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xF6, 0x55,
+               0xCC, 0x9B, 0xCC, 0x89, 0xF6, 0x75, 0xCC, 0x9B,
+               0xCC, 0x89, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x83,
+               0xF6, 0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xF6, 0x55,
+               0xCC, 0x9B, 0xCC, 0xA3, 0xF6, 0x75, 0xCC, 0x9B,
+               0xCC, 0xA3, 0xF6, 0x59, 0xCC, 0x80, 0xF6, 0x79,
+               0xCC, 0x80, 0xF6, 0x59, 0xCC, 0xA3, 0xF6, 0x79,
+               0xCC, 0xA3, 0xF6, 0x59, 0xCC, 0x89, 0xF6, 0x79,
+               0xCC, 0x89, 0xF6, 0x59, 0xCC, 0x83, 0xF6, 0x79,
+               0xCC, 0x83, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xF6,
+               0xCE, 0xB1, 0xCC, 0x94, 0xF6, 0xCE, 0xB1, 0xCC,
+               0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x94,
+               0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCC,
+               0x81, 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81,
+               0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xF6,
+               0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE,
+               0x91, 0xCC, 0x93, 0xF6, 0xCE, 0x91, 0xCC, 0x94,
+               0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xF6,
+               0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE,
+               0x91, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0x91,
+               0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCC,
+               0x93, 0xCD, 0x82, 0xF6, 0xCE, 0x91, 0xCC, 0x94,
+               0xCD, 0x82, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xF6,
+               0xCE, 0xB5, 0xCC, 0x94, 0xF6, 0xCE, 0xB5, 0xCC,
+               0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x94,
+               0xCC, 0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xCC,
+               0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81,
+               0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xF6, 0xCE, 0x95,
+               0xCC, 0x94, 0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xCC,
+               0x80, 0xF6, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80,
+               0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xF6,
+               0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE,
+               0xB7, 0xCC, 0x93, 0xF6, 0xCE, 0xB7, 0xCC, 0x94,
+               0xF6, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xF6,
+               0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE,
+               0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB7,
+               0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC,
+               0x93, 0xCD, 0x82, 0xF6, 0xCE, 0xB7, 0xCC, 0x94,
+               0xCD, 0x82, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xF6,
+               0xCE, 0x97, 0xCC, 0x94, 0xF6, 0xCE, 0x97, 0xCC,
+               0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x94,
+               0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC,
+               0x81, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81,
+               0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xF6,
+               0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE,
+               0xB9, 0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0xCC, 0x94,
+               0xF6, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xF6,
+               0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE,
+               0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB9,
+               0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC,
+               0x93, 0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x94,
+               0xCD, 0x82, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xF6,
+               0xCE, 0x99, 0xCC, 0x94, 0xF6, 0xCE, 0x99, 0xCC,
+               0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x94,
+               0xCC, 0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xCC,
+               0x81, 0xF6, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81,
+               0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xF6,
+               0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE,
+               0xBF, 0xCC, 0x93, 0xF6, 0xCE, 0xBF, 0xCC, 0x94,
+               0xF6, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xF6,
+               0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE,
+               0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xBF,
+               0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC,
+               0x93, 0xF6, 0xCE, 0x9F, 0xCC, 0x94, 0xF6, 0xCE,
+               0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x9F,
+               0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC,
+               0x93, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, 0x94,
+               0xCC, 0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xF6,
+               0xCF, 0x85, 0xCC, 0x94, 0xF6, 0xCF, 0x85, 0xCC,
+               0x93, 0xCC, 0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x94,
+               0xCC, 0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xCC,
+               0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81,
+               0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xF6,
+               0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE,
+               0xA5, 0xCC, 0x94, 0xF6, 0xCE, 0xA5, 0xCC, 0x94,
+               0xCC, 0x80, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCC,
+               0x81, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82,
+               0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xF6, 0xCF, 0x89,
+               0xCC, 0x94, 0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCC,
+               0x80, 0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80,
+               0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xF6,
+               0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCF,
+               0x89, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCF, 0x89,
+               0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xA9, 0xCC,
+               0x93, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xF6, 0xCE,
+               0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xA9,
+               0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC,
+               0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x94,
+               0xCC, 0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD,
+               0x82, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82,
+               0xF6, 0xCE, 0xB1, 0xCC, 0x80, 0xF6, 0xCE, 0xB1,
+               0xCC, 0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x80, 0xF6,
+               0xCE, 0xB5, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC,
+               0x80, 0xF6, 0xCE, 0xB7, 0xCC, 0x81, 0xF6, 0xCE,
+               0xB9, 0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC, 0x81,
+               0xF6, 0xCE, 0xBF, 0xCC, 0x80, 0xF6, 0xCE, 0xBF,
+               0xCC, 0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x80, 0xF6,
+               0xCF, 0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC,
+               0x80, 0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xF6, 0xCE,
+               0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB1,
+               0xCC, 0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC,
+               0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB1,
+               0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE,
+               0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
+               0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
+               0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
+               0x85, 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82,
+               0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCD,
+               0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85,
+               0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
+               0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80,
+               0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC,
+               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94,
+               0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC,
+               0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x91,
+               0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE,
+               0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB7,
+               0xCC, 0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC,
+               0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7,
+               0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE,
+               0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
+               0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
+               0xF6, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
+               0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82,
+               0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCD,
+               0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85,
+               0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
+               0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80,
+               0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC,
+               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94,
+               0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC,
+               0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x97,
+               0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCF,
+               0x89, 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCF, 0x89,
+               0xCC, 0x94, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC,
+               0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89,
+               0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF,
+               0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
+               0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
+               0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
+               0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82,
+               0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD,
+               0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85,
+               0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
+               0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80,
+               0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,
+               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94,
+               0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC,
+               0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xA9,
+               0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE,
+               0xB1, 0xCC, 0x86, 0xF6, 0xCE, 0xB1, 0xCC, 0x84,
+               0xF6, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xF6,
+               0xCE, 0xB1, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC,
+               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCD, 0x82,
+               0xF6, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xF6,
+               0xCE, 0x91, 0xCC, 0x86, 0xF6, 0xCE, 0x91, 0xCC,
+               0x84, 0xF6, 0xCE, 0x91, 0xCC, 0x80, 0xF6, 0xCE,
+               0x91, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCD, 0x85,
+               0x20, 0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0x20, 0xCC,
+               0x93, 0x20, 0xCD, 0x82, 0xF5, 0x05, 0xC2, 0xA8,
+               0xCD, 0x82, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xF6,
+               0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE,
+               0xB7, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x81,
+               0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCD, 0x82, 0xF6,
+               0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE,
+               0x95, 0xCC, 0x80, 0xF6, 0xCE, 0x95, 0xCC, 0x81,
+               0xF6, 0xCE, 0x97, 0xCC, 0x80, 0xF6, 0xCE, 0x97,
+               0xCC, 0x81, 0xF6, 0xCE, 0x97, 0xCD, 0x85, 0xF5,
+               0x06, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0x20, 0xCC,
+               0x93, 0xCC, 0x80, 0xF5, 0x06, 0xE1, 0xBE, 0xBF,
+               0xCC, 0x81, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xF5,
+               0x06, 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0x20, 0xCC,
+               0x93, 0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x86,
+               0xF6, 0xCE, 0xB9, 0xCC, 0x84, 0xF6, 0xCE, 0xB9,
+               0xCC, 0x88, 0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC,
+               0x88, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCD, 0x82,
+               0xF6, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xF6,
+               0xCE, 0x99, 0xCC, 0x86, 0xF6, 0xCE, 0x99, 0xCC,
+               0x84, 0xF6, 0xCE, 0x99, 0xCC, 0x80, 0xF6, 0xCE,
+               0x99, 0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE,
+               0xCC, 0x80, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xF5,
+               0x06, 0xE1, 0xBF, 0xBE, 0xCC, 0x81, 0x20, 0xCC,
+               0x94, 0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE,
+               0xCD, 0x82, 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xF6,
+               0xCF, 0x85, 0xCC, 0x86, 0xF6, 0xCF, 0x85, 0xCC,
+               0x84, 0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80,
+               0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
+               0xCF, 0x81, 0xCC, 0x93, 0xF6, 0xCF, 0x81, 0xCC,
+               0x94, 0xF6, 0xCF, 0x85, 0xCD, 0x82, 0xF6, 0xCF,
+               0x85, 0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE, 0xA5,
+               0xCC, 0x86, 0xF6, 0xCE, 0xA5, 0xCC, 0x84, 0xF6,
+               0xCE, 0xA5, 0xCC, 0x80, 0xF6, 0xCE, 0xA5, 0xCC,
+               0x81, 0xF6, 0xCE, 0xA1, 0xCC, 0x94, 0xF5, 0x05,
+               0xC2, 0xA8, 0xCC, 0x80, 0x20, 0xCC, 0x88, 0xCC,
+               0x80, 0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81, 0x20,
+               0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x60, 0xF6, 0xCF,
+               0x89, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89,
+               0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xCD,
+               0x85, 0xF6, 0xCF, 0x89, 0xCD, 0x82, 0xF6, 0xCF,
+               0x89, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x9F,
+               0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC, 0x81, 0xF6,
+               0xCE, 0xA9, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC,
+               0x81, 0xF6, 0xCE, 0xA9, 0xCD, 0x85, 0xF5, 0x03,
+               0xC2, 0xB4, 0x20, 0xCC, 0x81, 0x20, 0xCC, 0x94,
+               0xF5, 0x04, 0xE2, 0x80, 0x82, 0x20, 0xF5, 0x04,
+               0xE2, 0x80, 0x83, 0x20, 0x20, 0x20, 0x20, 0x20,
+               0x20, 0x20, 0x20, 0x20, 0x20, 0xE2, 0x80, 0x90,
+               0x20, 0xCC, 0xB3, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
+               0x2E, 0x20, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
+               0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80,
+               0xB2, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,
+               0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5,
+               0x21, 0x21, 0x20, 0xCC, 0x85, 0x3F, 0x3F, 0x3F,
+               0x21, 0x21, 0x3F, 0xE2, 0x80, 0xB2, 0xE2, 0x80,
+               0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x20,
+               0x30, 0x69, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
+               0x2B, 0xE2, 0x88, 0x92, 0x3D, 0x28, 0x29, 0x6E,
+               0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+               0x38, 0x39, 0x2B, 0xE2, 0x88, 0x92, 0x3D, 0x28,
+               0x29, 0x61, 0x65, 0x6F, 0x78, 0xC9, 0x99, 0x52,
+               0x73, 0x61, 0x2F, 0x63, 0x61, 0x2F, 0x73, 0x43,
+               0xC2, 0xB0, 0x43, 0x63, 0x2F, 0x6F, 0x63, 0x2F,
+               0x75, 0xC6, 0x90, 0xC2, 0xB0, 0x46, 0x67, 0x48,
+               0x48, 0x48, 0x68, 0xC4, 0xA7, 0x49, 0x49, 0x4C,
+               0x6C, 0x4E, 0x4E, 0x6F, 0x50, 0x51, 0x52, 0x52,
+               0x52, 0x53, 0x4D, 0x54, 0x45, 0x4C, 0x54, 0x4D,
+               0x5A, 0xF6, 0xCE, 0xA9, 0x5A, 0xF6, 0x4B, 0xF6,
+               0x41, 0xCC, 0x8A, 0x42, 0x43, 0x65, 0x45, 0x46,
+               0x4D, 0x6F, 0xD7, 0x90, 0xD7, 0x91, 0xD7, 0x92,
+               0xD7, 0x93, 0x69, 0x46, 0x41, 0x58, 0xCF, 0x80,
+               0xCE, 0xB3, 0xCE, 0x93, 0xCE, 0xA0, 0xE2, 0x88,
+               0x91, 0x44, 0x64, 0x65, 0x69, 0x6A, 0x31, 0xE2,
+               0x81, 0x84, 0x33, 0x32, 0xE2, 0x81, 0x84, 0x33,
+               0x31, 0xE2, 0x81, 0x84, 0x35, 0x32, 0xE2, 0x81,
+               0x84, 0x35, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x34,
+               0xE2, 0x81, 0x84, 0x35, 0x31, 0xE2, 0x81, 0x84,
+               0x36, 0x35, 0xE2, 0x81, 0x84, 0x36, 0x31, 0xE2,
+               0x81, 0x84, 0x38, 0x33, 0xE2, 0x81, 0x84, 0x38,
+               0x35, 0xE2, 0x81, 0x84, 0x38, 0x37, 0xE2, 0x81,
+               0x84, 0x38, 0x31, 0xE2, 0x81, 0x84, 0x49, 0x49,
+               0x49, 0x49, 0x49, 0x49, 0x49, 0x56, 0x56, 0x56,
+               0x49, 0x56, 0x49, 0x49, 0x56, 0x49, 0x49, 0x49,
+               0x49, 0x58, 0x58, 0x58, 0x49, 0x58, 0x49, 0x49,
+               0x4C, 0x43, 0x44, 0x4D, 0x69, 0x69, 0x69, 0x69,
+               0x69, 0x69, 0x69, 0x76, 0x76, 0x76, 0x69, 0x76,
+               0x69, 0x69, 0x76, 0x69, 0x69, 0x69, 0x69, 0x78,
+               0x78, 0x78, 0x69, 0x78, 0x69, 0x69, 0x6C, 0x63,
+               0x64, 0x6D, 0xF6, 0xE2, 0x86, 0x90, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x86, 0x94, 0xCC, 0xB8, 0xF6, 0xE2, 0x87, 0x90,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x87, 0x94, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x87, 0x92, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x88, 0x83, 0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0x88,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0x8B, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x88, 0xA5, 0xCC, 0xB8, 0xE2, 0x88, 0xAB, 0xE2,
+               0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
+               0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAE, 0xE2, 0x88,
+               0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2,
+               0x88, 0xAE, 0xF6, 0xE2, 0x88, 0xBC, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x89, 0x83, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x89, 0x85, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x88,
+               0xCC, 0xB8, 0xF6, 0x3D, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x89, 0xA1, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x8D,
+               0xCC, 0xB8, 0xF6, 0x3C, 0xCC, 0xB8, 0xF6, 0x3E,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xA4, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x89, 0xB2, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB3,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB6, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x89, 0xB7, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x89, 0xBA, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBB,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x82, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x8A, 0x86, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x87,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x8A, 0xA9, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xAB,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBC, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x8A, 0x91, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x92,
+               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB2, 0xCC, 0xB8,
+               0xF6, 0xE2, 0x8A, 0xB3, 0xCC, 0xB8, 0xF6, 0xE2,
+               0x8A, 0xB4, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB5,
+               0xCC, 0xB8, 0xF6, 0xE3, 0x80, 0x88, 0xF6, 0xE3,
+               0x80, 0x89, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
+               0x37, 0x38, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31,
+               0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, 0x31,
+               0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32,
+               0x30, 0x28, 0x31, 0x29, 0x28, 0x32, 0x29, 0x28,
+               0x33, 0x29, 0x28, 0x34, 0x29, 0x28, 0x35, 0x29,
+               0x28, 0x36, 0x29, 0x28, 0x37, 0x29, 0x28, 0x38,
+               0x29, 0x28, 0x39, 0x29, 0x28, 0x31, 0x30, 0x29,
+               0x28, 0x31, 0x31, 0x29, 0x28, 0x31, 0x32, 0x29,
+               0x28, 0x31, 0x33, 0x29, 0x28, 0x31, 0x34, 0x29,
+               0x28, 0x31, 0x35, 0x29, 0x28, 0x31, 0x36, 0x29,
+               0x28, 0x31, 0x37, 0x29, 0x28, 0x31, 0x38, 0x29,
+               0x28, 0x31, 0x39, 0x29, 0x28, 0x32, 0x30, 0x29,
+               0x31, 0x2E, 0x32, 0x2E, 0x33, 0x2E, 0x34, 0x2E,
+               0x35, 0x2E, 0x36, 0x2E, 0x37, 0x2E, 0x38, 0x2E,
+               0x39, 0x2E, 0x31, 0x30, 0x2E, 0x31, 0x31, 0x2E,
+               0x31, 0x32, 0x2E, 0x31, 0x33, 0x2E, 0x31, 0x34,
+               0x2E, 0x31, 0x35, 0x2E, 0x31, 0x36, 0x2E, 0x31,
+               0x37, 0x2E, 0x31, 0x38, 0x2E, 0x31, 0x39, 0x2E,
+               0x32, 0x30, 0x2E, 0x28, 0x61, 0x29, 0x28, 0x62,
+               0x29, 0x28, 0x63, 0x29, 0x28, 0x64, 0x29, 0x28,
+               0x65, 0x29, 0x28, 0x66, 0x29, 0x28, 0x67, 0x29,
+               0x28, 0x68, 0x29, 0x28, 0x69, 0x29, 0x28, 0x6A,
+               0x29, 0x28, 0x6B, 0x29, 0x28, 0x6C, 0x29, 0x28,
+               0x6D, 0x29, 0x28, 0x6E, 0x29, 0x28, 0x6F, 0x29,
+               0x28, 0x70, 0x29, 0x28, 0x71, 0x29, 0x28, 0x72,
+               0x29, 0x28, 0x73, 0x29, 0x28, 0x74, 0x29, 0x28,
+               0x75, 0x29, 0x28, 0x76, 0x29, 0x28, 0x77, 0x29,
+               0x28, 0x78, 0x29, 0x28, 0x79, 0x29, 0x28, 0x7A,
+               0x29, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x30, 0xE2, 0x88,
+               0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2,
+               0x88, 0xAB, 0x3A, 0x3A, 0x3D, 0x3D, 0x3D, 0x3D,
+               0x3D, 0x3D, 0xF6, 0xE2, 0xAB, 0x9D, 0xCC, 0xB8,
+               0xE2, 0xB5, 0xA1, 0xE6, 0xAF, 0x8D, 0xE9, 0xBE,
+               0x9F, 0xE4, 0xB8, 0x80, 0xE4, 0xB8, 0xA8, 0xE4,
+               0xB8, 0xB6, 0xE4, 0xB8, 0xBF, 0xE4, 0xB9, 0x99,
+               0xE4, 0xBA, 0x85, 0xE4, 0xBA, 0x8C, 0xE4, 0xBA,
+               0xA0, 0xE4, 0xBA, 0xBA, 0xE5, 0x84, 0xBF, 0xE5,
+               0x85, 0xA5, 0xE5, 0x85, 0xAB, 0xE5, 0x86, 0x82,
+               0xE5, 0x86, 0x96, 0xE5, 0x86, 0xAB, 0xE5, 0x87,
+               0xA0, 0xE5, 0x87, 0xB5, 0xE5, 0x88, 0x80, 0xE5,
+               0x8A, 0x9B, 0xE5, 0x8B, 0xB9, 0xE5, 0x8C, 0x95,
+               0xE5, 0x8C, 0x9A, 0xE5, 0x8C, 0xB8, 0xE5, 0x8D,
+               0x81, 0xE5, 0x8D, 0x9C, 0xE5, 0x8D, 0xA9, 0xE5,
+               0x8E, 0x82, 0xE5, 0x8E, 0xB6, 0xE5, 0x8F, 0x88,
+               0xE5, 0x8F, 0xA3, 0xE5, 0x9B, 0x97, 0xE5, 0x9C,
+               0x9F, 0xE5, 0xA3, 0xAB, 0xE5, 0xA4, 0x82, 0xE5,
+               0xA4, 0x8A, 0xE5, 0xA4, 0x95, 0xE5, 0xA4, 0xA7,
+               0xE5, 0xA5, 0xB3, 0xE5, 0xAD, 0x90, 0xE5, 0xAE,
+               0x80, 0xE5, 0xAF, 0xB8, 0xE5, 0xB0, 0x8F, 0xE5,
+               0xB0, 0xA2, 0xE5, 0xB0, 0xB8, 0xE5, 0xB1, 0xAE,
+               0xE5, 0xB1, 0xB1, 0xE5, 0xB7, 0x9B, 0xE5, 0xB7,
+               0xA5, 0xE5, 0xB7, 0xB1, 0xE5, 0xB7, 0xBE, 0xE5,
+               0xB9, 0xB2, 0xE5, 0xB9, 0xBA, 0xE5, 0xB9, 0xBF,
+               0xE5, 0xBB, 0xB4, 0xE5, 0xBB, 0xBE, 0xE5, 0xBC,
+               0x8B, 0xE5, 0xBC, 0x93, 0xE5, 0xBD, 0x90, 0xE5,
+               0xBD, 0xA1, 0xE5, 0xBD, 0xB3, 0xE5, 0xBF, 0x83,
+               0xE6, 0x88, 0x88, 0xE6, 0x88, 0xB6, 0xE6, 0x89,
+               0x8B, 0xE6, 0x94, 0xAF, 0xE6, 0x94, 0xB4, 0xE6,
+               0x96, 0x87, 0xE6, 0x96, 0x97, 0xE6, 0x96, 0xA4,
+               0xE6, 0x96, 0xB9, 0xE6, 0x97, 0xA0, 0xE6, 0x97,
+               0xA5, 0xE6, 0x9B, 0xB0, 0xE6, 0x9C, 0x88, 0xE6,
+               0x9C, 0xA8, 0xE6, 0xAC, 0xA0, 0xE6, 0xAD, 0xA2,
+               0xE6, 0xAD, 0xB9, 0xE6, 0xAE, 0xB3, 0xE6, 0xAF,
+               0x8B, 0xE6, 0xAF, 0x94, 0xE6, 0xAF, 0x9B, 0xE6,
+               0xB0, 0x8F, 0xE6, 0xB0, 0x94, 0xE6, 0xB0, 0xB4,
+               0xE7, 0x81, 0xAB, 0xE7, 0x88, 0xAA, 0xE7, 0x88,
+               0xB6, 0xE7, 0x88, 0xBB, 0xE7, 0x88, 0xBF, 0xE7,
+               0x89, 0x87, 0xE7, 0x89, 0x99, 0xE7, 0x89, 0x9B,
+               0xE7, 0x8A, 0xAC, 0xE7, 0x8E, 0x84, 0xE7, 0x8E,
+               0x89, 0xE7, 0x93, 0x9C, 0xE7, 0x93, 0xA6, 0xE7,
+               0x94, 0x98, 0xE7, 0x94, 0x9F, 0xE7, 0x94, 0xA8,
+               0xE7, 0x94, 0xB0, 0xE7, 0x96, 0x8B, 0xE7, 0x96,
+               0x92, 0xE7, 0x99, 0xB6, 0xE7, 0x99, 0xBD, 0xE7,
+               0x9A, 0xAE, 0xE7, 0x9A, 0xBF, 0xE7, 0x9B, 0xAE,
+               0xE7, 0x9F, 0x9B, 0xE7, 0x9F, 0xA2, 0xE7, 0x9F,
+               0xB3, 0xE7, 0xA4, 0xBA, 0xE7, 0xA6, 0xB8, 0xE7,
+               0xA6, 0xBE, 0xE7, 0xA9, 0xB4, 0xE7, 0xAB, 0x8B,
+               0xE7, 0xAB, 0xB9, 0xE7, 0xB1, 0xB3, 0xE7, 0xB3,
+               0xB8, 0xE7, 0xBC, 0xB6, 0xE7, 0xBD, 0x91, 0xE7,
+               0xBE, 0x8A, 0xE7, 0xBE, 0xBD, 0xE8, 0x80, 0x81,
+               0xE8, 0x80, 0x8C, 0xE8, 0x80, 0x92, 0xE8, 0x80,
+               0xB3, 0xE8, 0x81, 0xBF, 0xE8, 0x82, 0x89, 0xE8,
+               0x87, 0xA3, 0xE8, 0x87, 0xAA, 0xE8, 0x87, 0xB3,
+               0xE8, 0x87, 0xBC, 0xE8, 0x88, 0x8C, 0xE8, 0x88,
+               0x9B, 0xE8, 0x88, 0x9F, 0xE8, 0x89, 0xAE, 0xE8,
+               0x89, 0xB2, 0xE8, 0x89, 0xB8, 0xE8, 0x99, 0x8D,
+               0xE8, 0x99, 0xAB, 0xE8, 0xA1, 0x80, 0xE8, 0xA1,
+               0x8C, 0xE8, 0xA1, 0xA3, 0xE8, 0xA5, 0xBE, 0xE8,
+               0xA6, 0x8B, 0xE8, 0xA7, 0x92, 0xE8, 0xA8, 0x80,
+               0xE8, 0xB0, 0xB7, 0xE8, 0xB1, 0x86, 0xE8, 0xB1,
+               0x95, 0xE8, 0xB1, 0xB8, 0xE8, 0xB2, 0x9D, 0xE8,
+               0xB5, 0xA4, 0xE8, 0xB5, 0xB0, 0xE8, 0xB6, 0xB3,
+               0xE8, 0xBA, 0xAB, 0xE8, 0xBB, 0x8A, 0xE8, 0xBE,
+               0x9B, 0xE8, 0xBE, 0xB0, 0xE8, 0xBE, 0xB5, 0xE9,
+               0x82, 0x91, 0xE9, 0x85, 0x89, 0xE9, 0x87, 0x86,
+               0xE9, 0x87, 0x8C, 0xE9, 0x87, 0x91, 0xE9, 0x95,
+               0xB7, 0xE9, 0x96, 0x80, 0xE9, 0x98, 0x9C, 0xE9,
+               0x9A, 0xB6, 0xE9, 0x9A, 0xB9, 0xE9, 0x9B, 0xA8,
+               0xE9, 0x9D, 0x91, 0xE9, 0x9D, 0x9E, 0xE9, 0x9D,
+               0xA2, 0xE9, 0x9D, 0xA9, 0xE9, 0x9F, 0x8B, 0xE9,
+               0x9F, 0xAD, 0xE9, 0x9F, 0xB3, 0xE9, 0xA0, 0x81,
+               0xE9, 0xA2, 0xA8, 0xE9, 0xA3, 0x9B, 0xE9, 0xA3,
+               0x9F, 0xE9, 0xA6, 0x96, 0xE9, 0xA6, 0x99, 0xE9,
+               0xA6, 0xAC, 0xE9, 0xAA, 0xA8, 0xE9, 0xAB, 0x98,
+               0xE9, 0xAB, 0x9F, 0xE9, 0xAC, 0xA5, 0xE9, 0xAC,
+               0xAF, 0xE9, 0xAC, 0xB2, 0xE9, 0xAC, 0xBC, 0xE9,
+               0xAD, 0x9A, 0xE9, 0xB3, 0xA5, 0xE9, 0xB9, 0xB5,
+               0xE9, 0xB9, 0xBF, 0xE9, 0xBA, 0xA5, 0xE9, 0xBA,
+               0xBB, 0xE9, 0xBB, 0x83, 0xE9, 0xBB, 0x8D, 0xE9,
+               0xBB, 0x91, 0xE9, 0xBB, 0xB9, 0xE9, 0xBB, 0xBD,
+               0xE9, 0xBC, 0x8E, 0xE9, 0xBC, 0x93, 0xE9, 0xBC,
+               0xA0, 0xE9, 0xBC, 0xBB, 0xE9, 0xBD, 0x8A, 0xE9,
+               0xBD, 0x92, 0xE9, 0xBE, 0x8D, 0xE9, 0xBE, 0x9C,
+               0xE9, 0xBE, 0xA0, 0x20, 0xE3, 0x80, 0x92, 0xE5,
+               0x8D, 0x81, 0xE5, 0x8D, 0x84, 0xE5, 0x8D, 0x85,
+               0xF6, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x81, 0x8F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81,
+               0x91, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x93,
+               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x95, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x81, 0x97, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x81, 0x9F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81,
+               0xA1, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA4,
+               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA6, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA8, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0xF6,
+               0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x81, 0xB2, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x81,
+               0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xB5,
+               0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x81, 0xB8, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x81, 0xB8, 0xE3, 0x82,
+               0x9A, 0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0xF6,
+               0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x20, 0xE3,
+               0x82, 0x99, 0x20, 0xE3, 0x82, 0x9A, 0xF6, 0xE3,
+               0x82, 0x9D, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0x88,
+               0xE3, 0x82, 0x8A, 0xF6, 0xE3, 0x82, 0xAB, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x82, 0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82,
+               0xB7, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xB9,
+               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBB, 0xE3,
+               0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBD, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x83, 0x86, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83,
+               0x88, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x8F,
+               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x8F, 0xE3,
+               0x82, 0x9A, 0xF6, 0xE3, 0x83, 0x92, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
+               0xF6, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0xF6, 0xE3,
+               0x83, 0x98, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83,
+               0x98, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x83, 0x9B,
+               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x9B, 0xE3,
+               0x82, 0x9A, 0xF6, 0xE3, 0x82, 0xA6, 0xE3, 0x82,
+               0x99, 0xF6, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99,
+               0xF6, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0xF6,
+               0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
+               0x83, 0xB2, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83,
+               0xBD, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB3, 0xE3,
+               0x83, 0x88, 0xE1, 0x84, 0x80, 0xE1, 0x84, 0x81,
+               0xE1, 0x86, 0xAA, 0xE1, 0x84, 0x82, 0xE1, 0x86,
+               0xAC, 0xE1, 0x86, 0xAD, 0xE1, 0x84, 0x83, 0xE1,
+               0x84, 0x84, 0xE1, 0x84, 0x85, 0xE1, 0x86, 0xB0,
+               0xE1, 0x86, 0xB1, 0xE1, 0x86, 0xB2, 0xE1, 0x86,
+               0xB3, 0xE1, 0x86, 0xB4, 0xE1, 0x86, 0xB5, 0xE1,
+               0x84, 0x9A, 0xE1, 0x84, 0x86, 0xE1, 0x84, 0x87,
+               0xE1, 0x84, 0x88, 0xE1, 0x84, 0xA1, 0xE1, 0x84,
+               0x89, 0xE1, 0x84, 0x8A, 0xE1, 0x84, 0x8B, 0xE1,
+               0x84, 0x8C, 0xE1, 0x84, 0x8D, 0xE1, 0x84, 0x8E,
+               0xE1, 0x84, 0x8F, 0xE1, 0x84, 0x90, 0xE1, 0x84,
+               0x91, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE1,
+               0x85, 0xA2, 0xE1, 0x85, 0xA3, 0xE1, 0x85, 0xA4,
+               0xE1, 0x85, 0xA5, 0xE1, 0x85, 0xA6, 0xE1, 0x85,
+               0xA7, 0xE1, 0x85, 0xA8, 0xE1, 0x85, 0xA9, 0xE1,
+               0x85, 0xAA, 0xE1, 0x85, 0xAB, 0xE1, 0x85, 0xAC,
+               0xE1, 0x85, 0xAD, 0xE1, 0x85, 0xAE, 0xE1, 0x85,
+               0xAF, 0xE1, 0x85, 0xB0, 0xE1, 0x85, 0xB1, 0xE1,
+               0x85, 0xB2, 0xE1, 0x85, 0xB3, 0xE1, 0x85, 0xB4,
+               0xE1, 0x85, 0xB5, 0xE1, 0x85, 0xA0, 0xE1, 0x84,
+               0x94, 0xE1, 0x84, 0x95, 0xE1, 0x87, 0x87, 0xE1,
+               0x87, 0x88, 0xE1, 0x87, 0x8C, 0xE1, 0x87, 0x8E,
+               0xE1, 0x87, 0x93, 0xE1, 0x87, 0x97, 0xE1, 0x87,
+               0x99, 0xE1, 0x84, 0x9C, 0xE1, 0x87, 0x9D, 0xE1,
+               0x87, 0x9F, 0xE1, 0x84, 0x9D, 0xE1, 0x84, 0x9E,
+               0xE1, 0x84, 0xA0, 0xE1, 0x84, 0xA2, 0xE1, 0x84,
+               0xA3, 0xE1, 0x84, 0xA7, 0xE1, 0x84, 0xA9, 0xE1,
+               0x84, 0xAB, 0xE1, 0x84, 0xAC, 0xE1, 0x84, 0xAD,
+               0xE1, 0x84, 0xAE, 0xE1, 0x84, 0xAF, 0xE1, 0x84,
+               0xB2, 0xE1, 0x84, 0xB6, 0xE1, 0x85, 0x80, 0xE1,
+               0x85, 0x87, 0xE1, 0x85, 0x8C, 0xE1, 0x87, 0xB1,
+               0xE1, 0x87, 0xB2, 0xE1, 0x85, 0x97, 0xE1, 0x85,
+               0x98, 0xE1, 0x85, 0x99, 0xE1, 0x86, 0x84, 0xE1,
+               0x86, 0x85, 0xE1, 0x86, 0x88, 0xE1, 0x86, 0x91,
+               0xE1, 0x86, 0x92, 0xE1, 0x86, 0x94, 0xE1, 0x86,
+               0x9E, 0xE1, 0x86, 0xA1, 0xE4, 0xB8, 0x80, 0xE4,
+               0xBA, 0x8C, 0xE4, 0xB8, 0x89, 0xE5, 0x9B, 0x9B,
+               0xE4, 0xB8, 0x8A, 0xE4, 0xB8, 0xAD, 0xE4, 0xB8,
+               0x8B, 0xE7, 0x94, 0xB2, 0xE4, 0xB9, 0x99, 0xE4,
+               0xB8, 0x99, 0xE4, 0xB8, 0x81, 0xE5, 0xA4, 0xA9,
+               0xE5, 0x9C, 0xB0, 0xE4, 0xBA, 0xBA, 0x28, 0xE1,
+               0x84, 0x80, 0x29, 0x28, 0xE1, 0x84, 0x82, 0x29,
+               0x28, 0xE1, 0x84, 0x83, 0x29, 0x28, 0xE1, 0x84,
+               0x85, 0x29, 0x28, 0xE1, 0x84, 0x86, 0x29, 0x28,
+               0xE1, 0x84, 0x87, 0x29, 0x28, 0xE1, 0x84, 0x89,
+               0x29, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x28, 0xE1,
+               0x84, 0x8C, 0x29, 0x28, 0xE1, 0x84, 0x8E, 0x29,
+               0x28, 0xE1, 0x84, 0x8F, 0x29, 0x28, 0xE1, 0x84,
+               0x90, 0x29, 0x28, 0xE1, 0x84, 0x91, 0x29, 0x28,
+               0xE1, 0x84, 0x92, 0x29, 0x28, 0xE1, 0x84, 0x80,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x82,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x83,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x85,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x86,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x87,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x89,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8B,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8C,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8E,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8F,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x90,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x91,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x92,
+               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8C,
+               0xE1, 0x85, 0xAE, 0x29, 0x28, 0xE1, 0x84, 0x8B,
+               0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85,
+               0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x28, 0xE1, 0x84,
+               0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1,
+               0x85, 0xAE, 0x29, 0x28, 0xE4, 0xB8, 0x80, 0x29,
+               0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x28, 0xE4, 0xB8,
+               0x89, 0x29, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x28,
+               0xE4, 0xBA, 0x94, 0x29, 0x28, 0xE5, 0x85, 0xAD,
+               0x29, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x28, 0xE5,
+               0x85, 0xAB, 0x29, 0x28, 0xE4, 0xB9, 0x9D, 0x29,
+               0x28, 0xE5, 0x8D, 0x81, 0x29, 0x28, 0xE6, 0x9C,
+               0x88, 0x29, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x28,
+               0xE6, 0xB0, 0xB4, 0x29, 0x28, 0xE6, 0x9C, 0xA8,
+               0x29, 0x28, 0xE9, 0x87, 0x91, 0x29, 0x28, 0xE5,
+               0x9C, 0x9F, 0x29, 0x28, 0xE6, 0x97, 0xA5, 0x29,
+               0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x28, 0xE6, 0x9C,
+               0x89, 0x29, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x28,
+               0xE5, 0x90, 0x8D, 0x29, 0x28, 0xE7, 0x89, 0xB9,
+               0x29, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x28, 0xE7,
+               0xA5, 0x9D, 0x29, 0x28, 0xE5, 0x8A, 0xB4, 0x29,
+               0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x28, 0xE5, 0x91,
+               0xBC, 0x29, 0x28, 0xE5, 0xAD, 0xA6, 0x29, 0x28,
+               0xE7, 0x9B, 0xA3, 0x29, 0x28, 0xE4, 0xBC, 0x81,
+               0x29, 0x28, 0xE8, 0xB3, 0x87, 0x29, 0x28, 0xE5,
+               0x8D, 0x94, 0x29, 0x28, 0xE7, 0xA5, 0xAD, 0x29,
+               0x28, 0xE4, 0xBC, 0x91, 0x29, 0x28, 0xE8, 0x87,
+               0xAA, 0x29, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x50,
+               0x54, 0x45, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33,
+               0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37,
+               0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31,
+               0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35,
+               0xE1, 0x84, 0x80, 0xE1, 0x84, 0x82, 0xE1, 0x84,
+               0x83, 0xE1, 0x84, 0x85, 0xE1, 0x84, 0x86, 0xE1,
+               0x84, 0x87, 0xE1, 0x84, 0x89, 0xE1, 0x84, 0x8B,
+               0xE1, 0x84, 0x8C, 0xE1, 0x84, 0x8E, 0xE1, 0x84,
+               0x8F, 0xE1, 0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1,
+               0x84, 0x92, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1,
+               0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0xE1, 0x84,
+               0x83, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x85, 0xE1,
+               0x85, 0xA1, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1,
+               0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0xE1, 0x84,
+               0x89, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x8B, 0xE1,
+               0x85, 0xA1, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1,
+               0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x84,
+               0x8F, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x90, 0xE1,
+               0x85, 0xA1, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1,
+               0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE1, 0x84,
+               0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1,
+               0x84, 0x80, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C,
+               0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85,
+               0xB4, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0xE4,
+               0xB8, 0x80, 0xE4, 0xBA, 0x8C, 0xE4, 0xB8, 0x89,
+               0xE5, 0x9B, 0x9B, 0xE4, 0xBA, 0x94, 0xE5, 0x85,
+               0xAD, 0xE4, 0xB8, 0x83, 0xE5, 0x85, 0xAB, 0xE4,
+               0xB9, 0x9D, 0xE5, 0x8D, 0x81, 0xE6, 0x9C, 0x88,
+               0xE7, 0x81, 0xAB, 0xE6, 0xB0, 0xB4, 0xE6, 0x9C,
+               0xA8, 0xE9, 0x87, 0x91, 0xE5, 0x9C, 0x9F, 0xE6,
+               0x97, 0xA5, 0xE6, 0xA0, 0xAA, 0xE6, 0x9C, 0x89,
+               0xE7, 0xA4, 0xBE, 0xE5, 0x90, 0x8D, 0xE7, 0x89,
+               0xB9, 0xE8, 0xB2, 0xA1, 0xE7, 0xA5, 0x9D, 0xE5,
+               0x8A, 0xB4, 0xE7, 0xA7, 0x98, 0xE7, 0x94, 0xB7,
+               0xE5, 0xA5, 0xB3, 0xE9, 0x81, 0xA9, 0xE5, 0x84,
+               0xAA, 0xE5, 0x8D, 0xB0, 0xE6, 0xB3, 0xA8, 0xE9,
+               0xA0, 0x85, 0xE4, 0xBC, 0x91, 0xE5, 0x86, 0x99,
+               0xE6, 0xAD, 0xA3, 0xE4, 0xB8, 0x8A, 0xE4, 0xB8,
+               0xAD, 0xE4, 0xB8, 0x8B, 0xE5, 0xB7, 0xA6, 0xE5,
+               0x8F, 0xB3, 0xE5, 0x8C, 0xBB, 0xE5, 0xAE, 0x97,
+               0xE5, 0xAD, 0xA6, 0xE7, 0x9B, 0xA3, 0xE4, 0xBC,
+               0x81, 0xE8, 0xB3, 0x87, 0xE5, 0x8D, 0x94, 0xE5,
+               0xA4, 0x9C, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38,
+               0x33, 0x39, 0x34, 0x30, 0x34, 0x31, 0x34, 0x32,
+               0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36,
+               0x34, 0x37, 0x34, 0x38, 0x34, 0x39, 0x35, 0x30,
+               0x31, 0xE6, 0x9C, 0x88, 0x32, 0xE6, 0x9C, 0x88,
+               0x33, 0xE6, 0x9C, 0x88, 0x34, 0xE6, 0x9C, 0x88,
+               0x35, 0xE6, 0x9C, 0x88, 0x36, 0xE6, 0x9C, 0x88,
+               0x37, 0xE6, 0x9C, 0x88, 0x38, 0xE6, 0x9C, 0x88,
+               0x39, 0xE6, 0x9C, 0x88, 0x31, 0x30, 0xE6, 0x9C,
+               0x88, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x31, 0x32,
+               0xE6, 0x9C, 0x88, 0x48, 0x67, 0x65, 0x72, 0x67,
+               0x65, 0x56, 0x4C, 0x54, 0x44, 0xE3, 0x82, 0xA2,
+               0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xA6, 0xE3, 0x82,
+               0xA8, 0xE3, 0x82, 0xAA, 0xE3, 0x82, 0xAB, 0xE3,
+               0x82, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xB1,
+               0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB5, 0xE3, 0x82,
+               0xB7, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xBB, 0xE3,
+               0x82, 0xBD, 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0x81,
+               0xE3, 0x83, 0x84, 0xE3, 0x83, 0x86, 0xE3, 0x83,
+               0x88, 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8B, 0xE3,
+               0x83, 0x8C, 0xE3, 0x83, 0x8D, 0xE3, 0x83, 0x8E,
+               0xE3, 0x83, 0x8F, 0xE3, 0x83, 0x92, 0xE3, 0x83,
+               0x95, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0x9B, 0xE3,
+               0x83, 0x9E, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xA0,
+               0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xA2, 0xE3, 0x83,
+               0xA4, 0xE3, 0x83, 0xA6, 0xE3, 0x83, 0xA8, 0xE3,
+               0x83, 0xA9, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xAB,
+               0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAD, 0xE3, 0x83,
+               0xAF, 0xE3, 0x83, 0xB0, 0xE3, 0x83, 0xB1, 0xE3,
+               0x83, 0xB2, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F,
+               0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+               0x88, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,
+               0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x82, 0xA2,
+               0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,
+               0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xA2, 0xE3,
+               0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xA4,
+               0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
+               0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3,
+               0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0xA6,
+               0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
+               0xA8, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xAF, 0xE3,
+               0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,
+               0xE3, 0x82, 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82,
+               0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAA, 0xE3,
+               0x83, 0xB3, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xAA,
+               0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0xE3, 0x82,
+               0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0xE3,
+               0x82, 0xAB, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83,
+               0xE3, 0x83, 0x88, 0xE3, 0x82, 0xAB, 0xE3, 0x83,
+               0xAD, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,
+               0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAD,
+               0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
+               0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0xE3,
+               0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB,
+               0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
+               0x99, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, 0xE3,
+               0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xAA,
+               0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
+               0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, 0xE3,
+               0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAD,
+               0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAD, 0xE3, 0x83,
+               0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,
+               0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x82, 0xAD,
+               0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,
+               0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0xE3,
+               0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF,
+               0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82,
+               0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3,
+               0x83, 0xA0, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,
+               0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83,
+               0x88, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3,
+               0x83, 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99,
+               0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0xE3, 0x82,
+               0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,
+               0x83, 0x8D, 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC,
+               0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xB3, 0xE3, 0x83,
+               0xAB, 0xE3, 0x83, 0x8A, 0xE3, 0x82, 0xB3, 0xE3,
+               0x83, 0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,
+               0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
+               0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xB5, 0xE3,
+               0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC,
+               0xE3, 0x83, 0xA0, 0xE3, 0x82, 0xB7, 0xE3, 0x83,
+               0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3,
+               0x82, 0x99, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3,
+               0xE3, 0x83, 0x81, 0xE3, 0x82, 0xBB, 0xE3, 0x83,
+               0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xBF, 0xE3,
+               0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9,
+               0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82,
+               0xB7, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3,
+               0x83, 0xAB, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3,
+               0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0xE3, 0x83,
+               0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3,
+               0x83, 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84,
+               0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
+               0xBC, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,
+               0x83, 0x88, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A,
+               0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84, 0xE3, 0x83,
+               0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3,
+               0x83, 0xAC, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92,
+               0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82,
+               0xB9, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0xE3,
+               0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF,
+               0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82,
+               0x9A, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x92, 0xE3,
+               0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95,
+               0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
+               0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3,
+               0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,
+               0xE3, 0x83, 0x88, 0xE3, 0x83, 0x95, 0xE3, 0x82,
+               0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3,
+               0x82, 0xA7, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95,
+               0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
+               0x98, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3,
+               0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x98,
+               0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0xE3, 0x83,
+               0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3,
+               0x83, 0x92, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB,
+               0xE3, 0x83, 0x84, 0xE3, 0x83, 0x98, 0xE3, 0x82,
+               0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0xE3,
+               0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
+               0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+               0x98, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3,
+               0x82, 0xBF, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,
+               0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
+               0x88, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0xE3,
+               0x83, 0xAB, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x9B,
+               0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
+               0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3,
+               0x82, 0x99, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC,
+               0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x9B, 0xE3, 0x83,
+               0xBC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0xE3,
+               0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD,
+               0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
+               0xAB, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3,
+               0x83, 0x8F, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB,
+               0xE3, 0x82, 0xAF, 0xE3, 0x83, 0x9E, 0xE3, 0x83,
+               0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7, 0xE3,
+               0x83, 0xB3, 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF,
+               0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
+               0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x9F, 0xE3,
+               0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,
+               0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
+               0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3,
+               0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99,
+               0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
+               0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
+               0x83, 0xAB, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC,
+               0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+               0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3,
+               0x83, 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3,
+               0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83,
+               0x88, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xAA, 0xE3,
+               0x83, 0xA9, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92,
+               0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+               0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3,
+               0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xAC,
+               0xE3, 0x83, 0xA0, 0xE3, 0x83, 0xAC, 0xE3, 0x83,
+               0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3,
+               0x82, 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0xAF,
+               0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x30, 0xE7,
+               0x82, 0xB9, 0x31, 0xE7, 0x82, 0xB9, 0x32, 0xE7,
+               0x82, 0xB9, 0x33, 0xE7, 0x82, 0xB9, 0x34, 0xE7,
+               0x82, 0xB9, 0x35, 0xE7, 0x82, 0xB9, 0x36, 0xE7,
+               0x82, 0xB9, 0x37, 0xE7, 0x82, 0xB9, 0x38, 0xE7,
+               0x82, 0xB9, 0x39, 0xE7, 0x82, 0xB9, 0x31, 0x30,
+               0xE7, 0x82, 0xB9, 0x31, 0x31, 0xE7, 0x82, 0xB9,
+               0x31, 0x32, 0xE7, 0x82, 0xB9, 0x31, 0x33, 0xE7,
+               0x82, 0xB9, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x31,
+               0x35, 0xE7, 0x82, 0xB9, 0x31, 0x36, 0xE7, 0x82,
+               0xB9, 0x31, 0x37, 0xE7, 0x82, 0xB9, 0x31, 0x38,
+               0xE7, 0x82, 0xB9, 0x31, 0x39, 0xE7, 0x82, 0xB9,
+               0x32, 0x30, 0xE7, 0x82, 0xB9, 0x32, 0x31, 0xE7,
+               0x82, 0xB9, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x32,
+               0x33, 0xE7, 0x82, 0xB9, 0x32, 0x34, 0xE7, 0x82,
+               0xB9, 0x68, 0x50, 0x61, 0x64, 0x61, 0x41, 0x55,
+               0x62, 0x61, 0x72, 0x6F, 0x56, 0x70, 0x63, 0x64,
+               0x6D, 0x64, 0x6D, 0x32, 0x64, 0x6D, 0x33, 0x49,
+               0x55, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, 0xE6,
+               0x98, 0xAD, 0xE5, 0x92, 0x8C, 0xE5, 0xA4, 0xA7,
+               0xE6, 0xAD, 0xA3, 0xE6, 0x98, 0x8E, 0xE6, 0xB2,
+               0xBB, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,
+               0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x70, 0x41, 0x6E,
+               0x41, 0xCE, 0xBC, 0x41, 0x6D, 0x41, 0x6B, 0x41,
+               0x4B, 0x42, 0x4D, 0x42, 0x47, 0x42, 0x63, 0x61,
+               0x6C, 0x6B, 0x63, 0x61, 0x6C, 0x70, 0x46, 0x6E,
+               0x46, 0xCE, 0xBC, 0x46, 0xCE, 0xBC, 0x67, 0x6D,
+               0x67, 0x6B, 0x67, 0x48, 0x7A, 0x6B, 0x48, 0x7A,
+               0x4D, 0x48, 0x7A, 0x47, 0x48, 0x7A, 0x54, 0x48,
+               0x7A, 0xCE, 0xBC, 0x6C, 0x6D, 0x6C, 0x64, 0x6C,
+               0x6B, 0x6C, 0x66, 0x6D, 0x6E, 0x6D, 0xCE, 0xBC,
+               0x6D, 0x6D, 0x6D, 0x63, 0x6D, 0x6B, 0x6D, 0x6D,
+               0x6D, 0x32, 0x63, 0x6D, 0x32, 0x6D, 0x32, 0x6B,
+               0x6D, 0x32, 0x6D, 0x6D, 0x33, 0x63, 0x6D, 0x33,
+               0x6D, 0x33, 0x6B, 0x6D, 0x33, 0x6D, 0xE2, 0x88,
+               0x95, 0x73, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x32,
+               0x50, 0x61, 0x6B, 0x50, 0x61, 0x4D, 0x50, 0x61,
+               0x47, 0x50, 0x61, 0x72, 0x61, 0x64, 0x72, 0x61,
+               0x64, 0xE2, 0x88, 0x95, 0x73, 0x72, 0x61, 0x64,
+               0xE2, 0x88, 0x95, 0x73, 0x32, 0x70, 0x73, 0x6E,
+               0x73, 0xCE, 0xBC, 0x73, 0x6D, 0x73, 0x70, 0x56,
+               0x6E, 0x56, 0xCE, 0xBC, 0x56, 0x6D, 0x56, 0x6B,
+               0x56, 0x4D, 0x56, 0x70, 0x57, 0x6E, 0x57, 0xCE,
+               0xBC, 0x57, 0x6D, 0x57, 0x6B, 0x57, 0x4D, 0x57,
+               0x6B, 0xCE, 0xA9, 0x4D, 0xCE, 0xA9, 0x61, 0x2E,
+               0x6D, 0x2E, 0x42, 0x71, 0x63, 0x63, 0x63, 0x64,
+               0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x43, 0x6F,
+               0x2E, 0x64, 0x42, 0x47, 0x79, 0x68, 0x61, 0x48,
+               0x50, 0x69, 0x6E, 0x4B, 0x4B, 0x4B, 0x4D, 0x6B,
+               0x74, 0x6C, 0x6D, 0x6C, 0x6E, 0x6C, 0x6F, 0x67,
+               0x6C, 0x78, 0x6D, 0x62, 0x6D, 0x69, 0x6C, 0x6D,
+               0x6F, 0x6C, 0x50, 0x48, 0x70, 0x2E, 0x6D, 0x2E,
+               0x50, 0x50, 0x4D, 0x50, 0x52, 0x73, 0x72, 0x53,
+               0x76, 0x57, 0x62, 0x56, 0xE2, 0x88, 0x95, 0x6D,
+               0x41, 0xE2, 0x88, 0x95, 0x6D, 0x31, 0xE6, 0x97,
+               0xA5, 0x32, 0xE6, 0x97, 0xA5, 0x33, 0xE6, 0x97,
+               0xA5, 0x34, 0xE6, 0x97, 0xA5, 0x35, 0xE6, 0x97,
+               0xA5, 0x36, 0xE6, 0x97, 0xA5, 0x37, 0xE6, 0x97,
+               0xA5, 0x38, 0xE6, 0x97, 0xA5, 0x39, 0xE6, 0x97,
+               0xA5, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x31, 0x31,
+               0xE6, 0x97, 0xA5, 0x31, 0x32, 0xE6, 0x97, 0xA5,
+               0x31, 0x33, 0xE6, 0x97, 0xA5, 0x31, 0x34, 0xE6,
+               0x97, 0xA5, 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x31,
+               0x36, 0xE6, 0x97, 0xA5, 0x31, 0x37, 0xE6, 0x97,
+               0xA5, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x31, 0x39,
+               0xE6, 0x97, 0xA5, 0x32, 0x30, 0xE6, 0x97, 0xA5,
+               0x32, 0x31, 0xE6, 0x97, 0xA5, 0x32, 0x32, 0xE6,
+               0x97, 0xA5, 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x32,
+               0x34, 0xE6, 0x97, 0xA5, 0x32, 0x35, 0xE6, 0x97,
+               0xA5, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x32, 0x37,
+               0xE6, 0x97, 0xA5, 0x32, 0x38, 0xE6, 0x97, 0xA5,
+               0x32, 0x39, 0xE6, 0x97, 0xA5, 0x33, 0x30, 0xE6,
+               0x97, 0xA5, 0x33, 0x31, 0xE6, 0x97, 0xA5, 0x67,
+               0x61, 0x6C, 0xF6, 0xE8, 0xB1, 0x88, 0xF6, 0xE6,
+               0x9B, 0xB4, 0xF6, 0xE8, 0xBB, 0x8A, 0xF6, 0xE8,
+               0xB3, 0x88, 0xF6, 0xE6, 0xBB, 0x91, 0xF6, 0xE4,
+               0xB8, 0xB2, 0xF6, 0xE5, 0x8F, 0xA5, 0xF6, 0xE9,
+               0xBE, 0x9C, 0xF6, 0xE9, 0xBE, 0x9C, 0xF6, 0xE5,
+               0xA5, 0x91, 0xF6, 0xE9, 0x87, 0x91, 0xF6, 0xE5,
+               0x96, 0x87, 0xF6, 0xE5, 0xA5, 0x88, 0xF6, 0xE6,
+               0x87, 0xB6, 0xF6, 0xE7, 0x99, 0xA9, 0xF6, 0xE7,
+               0xBE, 0x85, 0xF6, 0xE8, 0x98, 0xBF, 0xF6, 0xE8,
+               0x9E, 0xBA, 0xF6, 0xE8, 0xA3, 0xB8, 0xF6, 0xE9,
+               0x82, 0x8F, 0xF6, 0xE6, 0xA8, 0x82, 0xF6, 0xE6,
+               0xB4, 0x9B, 0xF6, 0xE7, 0x83, 0x99, 0xF6, 0xE7,
+               0x8F, 0x9E, 0xF6, 0xE8, 0x90, 0xBD, 0xF6, 0xE9,
+               0x85, 0xAA, 0xF6, 0xE9, 0xA7, 0xB1, 0xF6, 0xE4,
+               0xBA, 0x82, 0xF6, 0xE5, 0x8D, 0xB5, 0xF6, 0xE6,
+               0xAC, 0x84, 0xF6, 0xE7, 0x88, 0x9B, 0xF6, 0xE8,
+               0x98, 0xAD, 0xF6, 0xE9, 0xB8, 0x9E, 0xF6, 0xE5,
+               0xB5, 0x90, 0xF6, 0xE6, 0xBF, 0xAB, 0xF6, 0xE8,
+               0x97, 0x8D, 0xF6, 0xE8, 0xA5, 0xA4, 0xF6, 0xE6,
+               0x8B, 0x89, 0xF6, 0xE8, 0x87, 0x98, 0xF6, 0xE8,
+               0xA0, 0x9F, 0xF6, 0xE5, 0xBB, 0x8A, 0xF6, 0xE6,
+               0x9C, 0x97, 0xF6, 0xE6, 0xB5, 0xAA, 0xF6, 0xE7,
+               0x8B, 0xBC, 0xF6, 0xE9, 0x83, 0x8E, 0xF6, 0xE4,
+               0xBE, 0x86, 0xF6, 0xE5, 0x86, 0xB7, 0xF6, 0xE5,
+               0x8B, 0x9E, 0xF6, 0xE6, 0x93, 0x84, 0xF6, 0xE6,
+               0xAB, 0x93, 0xF6, 0xE7, 0x88, 0x90, 0xF6, 0xE7,
+               0x9B, 0xA7, 0xF6, 0xE8, 0x80, 0x81, 0xF6, 0xE8,
+               0x98, 0x86, 0xF6, 0xE8, 0x99, 0x9C, 0xF6, 0xE8,
+               0xB7, 0xAF, 0xF6, 0xE9, 0x9C, 0xB2, 0xF6, 0xE9,
+               0xAD, 0xAF, 0xF6, 0xE9, 0xB7, 0xBA, 0xF6, 0xE7,
+               0xA2, 0x8C, 0xF6, 0xE7, 0xA5, 0xBF, 0xF6, 0xE7,
+               0xB6, 0xA0, 0xF6, 0xE8, 0x8F, 0x89, 0xF6, 0xE9,
+               0x8C, 0x84, 0xF6, 0xE9, 0xB9, 0xBF, 0xF6, 0xE8,
+               0xAB, 0x96, 0xF6, 0xE5, 0xA3, 0x9F, 0xF6, 0xE5,
+               0xBC, 0x84, 0xF6, 0xE7, 0xB1, 0xA0, 0xF6, 0xE8,
+               0x81, 0xBE, 0xF6, 0xE7, 0x89, 0xA2, 0xF6, 0xE7,
+               0xA3, 0x8A, 0xF6, 0xE8, 0xB3, 0x82, 0xF6, 0xE9,
+               0x9B, 0xB7, 0xF6, 0xE5, 0xA3, 0x98, 0xF6, 0xE5,
+               0xB1, 0xA2, 0xF6, 0xE6, 0xA8, 0x93, 0xF6, 0xE6,
+               0xB7, 0x9A, 0xF6, 0xE6, 0xBC, 0x8F, 0xF6, 0xE7,
+               0xB4, 0xAF, 0xF6, 0xE7, 0xB8, 0xB7, 0xF6, 0xE9,
+               0x99, 0x8B, 0xF6, 0xE5, 0x8B, 0x92, 0xF6, 0xE8,
+               0x82, 0x8B, 0xF6, 0xE5, 0x87, 0x9C, 0xF6, 0xE5,
+               0x87, 0x8C, 0xF6, 0xE7, 0xA8, 0x9C, 0xF6, 0xE7,
+               0xB6, 0xBE, 0xF6, 0xE8, 0x8F, 0xB1, 0xF6, 0xE9,
+               0x99, 0xB5, 0xF6, 0xE8, 0xAE, 0x80, 0xF6, 0xE6,
+               0x8B, 0x8F, 0xF6, 0xE6, 0xA8, 0x82, 0xF6, 0xE8,
+               0xAB, 0xBE, 0xF6, 0xE4, 0xB8, 0xB9, 0xF6, 0xE5,
+               0xAF, 0xA7, 0xF6, 0xE6, 0x80, 0x92, 0xF6, 0xE7,
+               0x8E, 0x87, 0xF6, 0xE7, 0x95, 0xB0, 0xF6, 0xE5,
+               0x8C, 0x97, 0xF6, 0xE7, 0xA3, 0xBB, 0xF6, 0xE4,
+               0xBE, 0xBF, 0xF6, 0xE5, 0xBE, 0xA9, 0xF6, 0xE4,
+               0xB8, 0x8D, 0xF6, 0xE6, 0xB3, 0x8C, 0xF6, 0xE6,
+               0x95, 0xB8, 0xF6, 0xE7, 0xB4, 0xA2, 0xF6, 0xE5,
+               0x8F, 0x83, 0xF6, 0xE5, 0xA1, 0x9E, 0xF6, 0xE7,
+               0x9C, 0x81, 0xF6, 0xE8, 0x91, 0x89, 0xF6, 0xE8,
+               0xAA, 0xAA, 0xF6, 0xE6, 0xAE, 0xBA, 0xF6, 0xE8,
+               0xBE, 0xB0, 0xF6, 0xE6, 0xB2, 0x88, 0xF6, 0xE6,
+               0x8B, 0xBE, 0xF6, 0xE8, 0x8B, 0xA5, 0xF6, 0xE6,
+               0x8E, 0xA0, 0xF6, 0xE7, 0x95, 0xA5, 0xF6, 0xE4,
+               0xBA, 0xAE, 0xF6, 0xE5, 0x85, 0xA9, 0xF6, 0xE5,
+               0x87, 0x89, 0xF6, 0xE6, 0xA2, 0x81, 0xF6, 0xE7,
+               0xB3, 0xA7, 0xF6, 0xE8, 0x89, 0xAF, 0xF6, 0xE8,
+               0xAB, 0x92, 0xF6, 0xE9, 0x87, 0x8F, 0xF6, 0xE5,
+               0x8B, 0xB5, 0xF6, 0xE5, 0x91, 0x82, 0xF6, 0xE5,
+               0xA5, 0xB3, 0xF6, 0xE5, 0xBB, 0xAC, 0xF6, 0xE6,
+               0x97, 0x85, 0xF6, 0xE6, 0xBF, 0xBE, 0xF6, 0xE7,
+               0xA4, 0xAA, 0xF6, 0xE9, 0x96, 0xAD, 0xF6, 0xE9,
+               0xA9, 0xAA, 0xF6, 0xE9, 0xBA, 0x97, 0xF6, 0xE9,
+               0xBB, 0x8E, 0xF6, 0xE5, 0x8A, 0x9B, 0xF6, 0xE6,
+               0x9B, 0x86, 0xF6, 0xE6, 0xAD, 0xB7, 0xF6, 0xE8,
+               0xBD, 0xA2, 0xF6, 0xE5, 0xB9, 0xB4, 0xF6, 0xE6,
+               0x86, 0x90, 0xF6, 0xE6, 0x88, 0x80, 0xF6, 0xE6,
+               0x92, 0x9A, 0xF6, 0xE6, 0xBC, 0xA3, 0xF6, 0xE7,
+               0x85, 0x89, 0xF6, 0xE7, 0x92, 0x89, 0xF6, 0xE7,
+               0xA7, 0x8A, 0xF6, 0xE7, 0xB7, 0xB4, 0xF6, 0xE8,
+               0x81, 0xAF, 0xF6, 0xE8, 0xBC, 0xA6, 0xF6, 0xE8,
+               0x93, 0xAE, 0xF6, 0xE9, 0x80, 0xA3, 0xF6, 0xE9,
+               0x8D, 0x8A, 0xF6, 0xE5, 0x88, 0x97, 0xF6, 0xE5,
+               0x8A, 0xA3, 0xF6, 0xE5, 0x92, 0xBD, 0xF6, 0xE7,
+               0x83, 0x88, 0xF6, 0xE8, 0xA3, 0x82, 0xF6, 0xE8,
+               0xAA, 0xAA, 0xF6, 0xE5, 0xBB, 0x89, 0xF6, 0xE5,
+               0xBF, 0xB5, 0xF6, 0xE6, 0x8D, 0xBB, 0xF6, 0xE6,
+               0xAE, 0xAE, 0xF6, 0xE7, 0xB0, 0xBE, 0xF6, 0xE7,
+               0x8D, 0xB5, 0xF6, 0xE4, 0xBB, 0xA4, 0xF6, 0xE5,
+               0x9B, 0xB9, 0xF6, 0xE5, 0xAF, 0xA7, 0xF6, 0xE5,
+               0xB6, 0xBA, 0xF6, 0xE6, 0x80, 0x9C, 0xF6, 0xE7,
+               0x8E, 0xB2, 0xF6, 0xE7, 0x91, 0xA9, 0xF6, 0xE7,
+               0xBE, 0x9A, 0xF6, 0xE8, 0x81, 0x86, 0xF6, 0xE9,
+               0x88, 0xB4, 0xF6, 0xE9, 0x9B, 0xB6, 0xF6, 0xE9,
+               0x9D, 0x88, 0xF6, 0xE9, 0xA0, 0x98, 0xF6, 0xE4,
+               0xBE, 0x8B, 0xF6, 0xE7, 0xA6, 0xAE, 0xF6, 0xE9,
+               0x86, 0xB4, 0xF6, 0xE9, 0x9A, 0xB8, 0xF6, 0xE6,
+               0x83, 0xA1, 0xF6, 0xE4, 0xBA, 0x86, 0xF6, 0xE5,
+               0x83, 0x9A, 0xF6, 0xE5, 0xAF, 0xAE, 0xF6, 0xE5,
+               0xB0, 0xBF, 0xF6, 0xE6, 0x96, 0x99, 0xF6, 0xE6,
+               0xA8, 0x82, 0xF6, 0xE7, 0x87, 0x8E, 0xF6, 0xE7,
+               0x99, 0x82, 0xF6, 0xE8, 0x93, 0xBC, 0xF6, 0xE9,
+               0x81, 0xBC, 0xF6, 0xE9, 0xBE, 0x8D, 0xF6, 0xE6,
+               0x9A, 0x88, 0xF6, 0xE9, 0x98, 0xAE, 0xF6, 0xE5,
+               0x8A, 0x89, 0xF6, 0xE6, 0x9D, 0xBB, 0xF6, 0xE6,
+               0x9F, 0xB3, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6,
+               0xBA, 0x9C, 0xF6, 0xE7, 0x90, 0x89, 0xF6, 0xE7,
+               0x95, 0x99, 0xF6, 0xE7, 0xA1, 0xAB, 0xF6, 0xE7,
+               0xB4, 0x90, 0xF6, 0xE9, 0xA1, 0x9E, 0xF6, 0xE5,
+               0x85, 0xAD, 0xF6, 0xE6, 0x88, 0xAE, 0xF6, 0xE9,
+               0x99, 0xB8, 0xF6, 0xE5, 0x80, 0xAB, 0xF6, 0xE5,
+               0xB4, 0x99, 0xF6, 0xE6, 0xB7, 0xAA, 0xF6, 0xE8,
+               0xBC, 0xAA, 0xF6, 0xE5, 0xBE, 0x8B, 0xF6, 0xE6,
+               0x85, 0x84, 0xF6, 0xE6, 0xA0, 0x97, 0xF6, 0xE7,
+               0x8E, 0x87, 0xF6, 0xE9, 0x9A, 0x86, 0xF6, 0xE5,
+               0x88, 0xA9, 0xF6, 0xE5, 0x90, 0x8F, 0xF6, 0xE5,
+               0xB1, 0xA5, 0xF6, 0xE6, 0x98, 0x93, 0xF6, 0xE6,
+               0x9D, 0x8E, 0xF6, 0xE6, 0xA2, 0xA8, 0xF6, 0xE6,
+               0xB3, 0xA5, 0xF6, 0xE7, 0x90, 0x86, 0xF6, 0xE7,
+               0x97, 0xA2, 0xF6, 0xE7, 0xBD, 0xB9, 0xF6, 0xE8,
+               0xA3, 0x8F, 0xF6, 0xE8, 0xA3, 0xA1, 0xF6, 0xE9,
+               0x87, 0x8C, 0xF6, 0xE9, 0x9B, 0xA2, 0xF6, 0xE5,
+               0x8C, 0xBF, 0xF6, 0xE6, 0xBA, 0xBA, 0xF6, 0xE5,
+               0x90, 0x9D, 0xF6, 0xE7, 0x87, 0x90, 0xF6, 0xE7,
+               0x92, 0x98, 0xF6, 0xE8, 0x97, 0xBA, 0xF6, 0xE9,
+               0x9A, 0xA3, 0xF6, 0xE9, 0xB1, 0x97, 0xF6, 0xE9,
+               0xBA, 0x9F, 0xF6, 0xE6, 0x9E, 0x97, 0xF6, 0xE6,
+               0xB7, 0x8B, 0xF6, 0xE8, 0x87, 0xA8, 0xF6, 0xE7,
+               0xAB, 0x8B, 0xF6, 0xE7, 0xAC, 0xA0, 0xF6, 0xE7,
+               0xB2, 0x92, 0xF6, 0xE7, 0x8B, 0x80, 0xF6, 0xE7,
+               0x82, 0x99, 0xF6, 0xE8, 0xAD, 0x98, 0xF6, 0xE4,
+               0xBB, 0x80, 0xF6, 0xE8, 0x8C, 0xB6, 0xF6, 0xE5,
+               0x88, 0xBA, 0xF6, 0xE5, 0x88, 0x87, 0xF6, 0xE5,
+               0xBA, 0xA6, 0xF6, 0xE6, 0x8B, 0x93, 0xF6, 0xE7,
+               0xB3, 0x96, 0xF6, 0xE5, 0xAE, 0x85, 0xF6, 0xE6,
+               0xB4, 0x9E, 0xF6, 0xE6, 0x9A, 0xB4, 0xF6, 0xE8,
+               0xBC, 0xBB, 0xF6, 0xE8, 0xA1, 0x8C, 0xF6, 0xE9,
+               0x99, 0x8D, 0xF6, 0xE8, 0xA6, 0x8B, 0xF6, 0xE5,
+               0xBB, 0x93, 0xF6, 0xE5, 0x85, 0x80, 0xF6, 0xE5,
+               0x97, 0x80, 0xF6, 0xE5, 0xA1, 0x9A, 0xF6, 0xE6,
+               0x99, 0xB4, 0xF6, 0xE5, 0x87, 0x9E, 0xF6, 0xE7,
+               0x8C, 0xAA, 0xF6, 0xE7, 0x9B, 0x8A, 0xF6, 0xE7,
+               0xA4, 0xBC, 0xF6, 0xE7, 0xA5, 0x9E, 0xF6, 0xE7,
+               0xA5, 0xA5, 0xF6, 0xE7, 0xA6, 0x8F, 0xF6, 0xE9,
+               0x9D, 0x96, 0xF6, 0xE7, 0xB2, 0xBE, 0xF6, 0xE7,
+               0xBE, 0xBD, 0xF6, 0xE8, 0x98, 0x92, 0xF6, 0xE8,
+               0xAB, 0xB8, 0xF6, 0xE9, 0x80, 0xB8, 0xF6, 0xE9,
+               0x83, 0xBD, 0xF6, 0xE9, 0xA3, 0xAF, 0xF6, 0xE9,
+               0xA3, 0xBC, 0xF6, 0xE9, 0xA4, 0xA8, 0xF6, 0xE9,
+               0xB6, 0xB4, 0xF6, 0xE4, 0xBE, 0xAE, 0xF6, 0xE5,
+               0x83, 0xA7, 0xF6, 0xE5, 0x85, 0x8D, 0xF6, 0xE5,
+               0x8B, 0x89, 0xF6, 0xE5, 0x8B, 0xA4, 0xF6, 0xE5,
+               0x8D, 0x91, 0xF6, 0xE5, 0x96, 0x9D, 0xF6, 0xE5,
+               0x98, 0x86, 0xF6, 0xE5, 0x99, 0xA8, 0xF6, 0xE5,
+               0xA1, 0x80, 0xF6, 0xE5, 0xA2, 0xA8, 0xF6, 0xE5,
+               0xB1, 0xA4, 0xF6, 0xE5, 0xB1, 0xAE, 0xF6, 0xE6,
+               0x82, 0x94, 0xF6, 0xE6, 0x85, 0xA8, 0xF6, 0xE6,
+               0x86, 0x8E, 0xF6, 0xE6, 0x87, 0xB2, 0xF6, 0xE6,
+               0x95, 0x8F, 0xF6, 0xE6, 0x97, 0xA2, 0xF6, 0xE6,
+               0x9A, 0x91, 0xF6, 0xE6, 0xA2, 0x85, 0xF6, 0xE6,
+               0xB5, 0xB7, 0xF6, 0xE6, 0xB8, 0x9A, 0xF6, 0xE6,
+               0xBC, 0xA2, 0xF6, 0xE7, 0x85, 0xAE, 0xF6, 0xE7,
+               0x88, 0xAB, 0xF6, 0xE7, 0x90, 0xA2, 0xF6, 0xE7,
+               0xA2, 0x91, 0xF6, 0xE7, 0xA4, 0xBE, 0xF6, 0xE7,
+               0xA5, 0x89, 0xF6, 0xE7, 0xA5, 0x88, 0xF6, 0xE7,
+               0xA5, 0x90, 0xF6, 0xE7, 0xA5, 0x96, 0xF6, 0xE7,
+               0xA5, 0x9D, 0xF6, 0xE7, 0xA6, 0x8D, 0xF6, 0xE7,
+               0xA6, 0x8E, 0xF6, 0xE7, 0xA9, 0x80, 0xF6, 0xE7,
+               0xAA, 0x81, 0xF6, 0xE7, 0xAF, 0x80, 0xF6, 0xE7,
+               0xB7, 0xB4, 0xF6, 0xE7, 0xB8, 0x89, 0xF6, 0xE7,
+               0xB9, 0x81, 0xF6, 0xE7, 0xBD, 0xB2, 0xF6, 0xE8,
+               0x80, 0x85, 0xF6, 0xE8, 0x87, 0xAD, 0xF6, 0xE8,
+               0x89, 0xB9, 0xF6, 0xE8, 0x89, 0xB9, 0xF6, 0xE8,
+               0x91, 0x97, 0xF6, 0xE8, 0xA4, 0x90, 0xF6, 0xE8,
+               0xA6, 0x96, 0xF6, 0xE8, 0xAC, 0x81, 0xF6, 0xE8,
+               0xAC, 0xB9, 0xF6, 0xE8, 0xB3, 0x93, 0xF6, 0xE8,
+               0xB4, 0x88, 0xF6, 0xE8, 0xBE, 0xB6, 0xF6, 0xE9,
+               0x80, 0xB8, 0xF6, 0xE9, 0x9B, 0xA3, 0xF6, 0xE9,
+               0x9F, 0xBF, 0xF6, 0xE9, 0xA0, 0xBB, 0xF6, 0xE4,
+               0xB8, 0xA6, 0xF6, 0xE5, 0x86, 0xB5, 0xF6, 0xE5,
+               0x85, 0xA8, 0xF6, 0xE4, 0xBE, 0x80, 0xF6, 0xE5,
+               0x85, 0x85, 0xF6, 0xE5, 0x86, 0x80, 0xF6, 0xE5,
+               0x8B, 0x87, 0xF6, 0xE5, 0x8B, 0xBA, 0xF6, 0xE5,
+               0x96, 0x9D, 0xF6, 0xE5, 0x95, 0x95, 0xF6, 0xE5,
+               0x96, 0x99, 0xF6, 0xE5, 0x97, 0xA2, 0xF6, 0xE5,
+               0xA1, 0x9A, 0xF6, 0xE5, 0xA2, 0xB3, 0xF6, 0xE5,
+               0xA5, 0x84, 0xF6, 0xE5, 0xA5, 0x94, 0xF6, 0xE5,
+               0xA9, 0xA2, 0xF6, 0xE5, 0xAC, 0xA8, 0xF6, 0xE5,
+               0xBB, 0x92, 0xF6, 0xE5, 0xBB, 0x99, 0xF6, 0xE5,
+               0xBD, 0xA9, 0xF6, 0xE5, 0xBE, 0xAD, 0xF6, 0xE6,
+               0x83, 0x98, 0xF6, 0xE6, 0x85, 0x8E, 0xF6, 0xE6,
+               0x84, 0x88, 0xF6, 0xE6, 0x86, 0x8E, 0xF6, 0xE6,
+               0x85, 0xA0, 0xF6, 0xE6, 0x87, 0xB2, 0xF6, 0xE6,
+               0x88, 0xB4, 0xF6, 0xE6, 0x8F, 0x84, 0xF6, 0xE6,
+               0x90, 0x9C, 0xF6, 0xE6, 0x91, 0x92, 0xF6, 0xE6,
+               0x95, 0x96, 0xF6, 0xE6, 0x99, 0xB4, 0xF6, 0xE6,
+               0x9C, 0x97, 0xF6, 0xE6, 0x9C, 0x9B, 0xF6, 0xE6,
+               0x9D, 0x96, 0xF6, 0xE6, 0xAD, 0xB9, 0xF6, 0xE6,
+               0xAE, 0xBA, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6,
+               0xBB, 0x9B, 0xF6, 0xE6, 0xBB, 0x8B, 0xF6, 0xE6,
+               0xBC, 0xA2, 0xF6, 0xE7, 0x80, 0x9E, 0xF6, 0xE7,
+               0x85, 0xAE, 0xF6, 0xE7, 0x9E, 0xA7, 0xF6, 0xE7,
+               0x88, 0xB5, 0xF6, 0xE7, 0x8A, 0xAF, 0xF6, 0xE7,
+               0x8C, 0xAA, 0xF6, 0xE7, 0x91, 0xB1, 0xF6, 0xE7,
+               0x94, 0x86, 0xF6, 0xE7, 0x94, 0xBB, 0xF6, 0xE7,
+               0x98, 0x9D, 0xF6, 0xE7, 0x98, 0x9F, 0xF6, 0xE7,
+               0x9B, 0x8A, 0xF6, 0xE7, 0x9B, 0x9B, 0xF6, 0xE7,
+               0x9B, 0xB4, 0xF6, 0xE7, 0x9D, 0x8A, 0xF6, 0xE7,
+               0x9D, 0x80, 0xF6, 0xE7, 0xA3, 0x8C, 0xF6, 0xE7,
+               0xAA, 0xB1, 0xF6, 0xE7, 0xAF, 0x80, 0xF6, 0xE7,
+               0xB1, 0xBB, 0xF6, 0xE7, 0xB5, 0x9B, 0xF6, 0xE7,
+               0xB7, 0xB4, 0xF6, 0xE7, 0xBC, 0xBE, 0xF6, 0xE8,
+               0x80, 0x85, 0xF6, 0xE8, 0x8D, 0x92, 0xF6, 0xE8,
+               0x8F, 0xAF, 0xF6, 0xE8, 0x9D, 0xB9, 0xF6, 0xE8,
+               0xA5, 0x81, 0xF6, 0xE8, 0xA6, 0x86, 0xF6, 0xE8,
+               0xA6, 0x96, 0xF6, 0xE8, 0xAA, 0xBF, 0xF6, 0xE8,
+               0xAB, 0xB8, 0xF6, 0xE8, 0xAB, 0x8B, 0xF6, 0xE8,
+               0xAC, 0x81, 0xF6, 0xE8, 0xAB, 0xBE, 0xF6, 0xE8,
+               0xAB, 0xAD, 0xF6, 0xE8, 0xAC, 0xB9, 0xF6, 0xE8,
+               0xAE, 0x8A, 0xF6, 0xE8, 0xB4, 0x88, 0xF6, 0xE8,
+               0xBC, 0xB8, 0xF6, 0xE9, 0x81, 0xB2, 0xF6, 0xE9,
+               0x86, 0x99, 0xF6, 0xE9, 0x89, 0xB6, 0xF6, 0xE9,
+               0x99, 0xBC, 0xF6, 0xE9, 0x9B, 0xA3, 0xF6, 0xE9,
+               0x9D, 0x96, 0xF6, 0xE9, 0x9F, 0x9B, 0xF6, 0xE9,
+               0x9F, 0xBF, 0xF6, 0xE9, 0xA0, 0x8B, 0xF6, 0xE9,
+               0xA0, 0xBB, 0xF6, 0xE9, 0xAC, 0x92, 0xF6, 0xE9,
+               0xBE, 0x9C, 0xF6, 0xF0, 0xA2, 0xA1, 0x8A, 0xF6,
+               0xF0, 0xA2, 0xA1, 0x84, 0xF6, 0xF0, 0xA3, 0x8F,
+               0x95, 0xF6, 0xE3, 0xAE, 0x9D, 0xF6, 0xE4, 0x80,
+               0x98, 0xF6, 0xE4, 0x80, 0xB9, 0xF6, 0xF0, 0xA5,
+               0x89, 0x89, 0xF6, 0xF0, 0xA5, 0xB3, 0x90, 0xF6,
+               0xF0, 0xA7, 0xBB, 0x93, 0xF6, 0xE9, 0xBD, 0x83,
+               0xF6, 0xE9, 0xBE, 0x8E, 0x66, 0x66, 0x66, 0x69,
+               0x66, 0x6C, 0x66, 0x66, 0x69, 0x66, 0x66, 0x6C,
+               0x73, 0x74, 0x73, 0x74, 0xD5, 0xB4, 0xD5, 0xB6,
+               0xD5, 0xB4, 0xD5, 0xA5, 0xD5, 0xB4, 0xD5, 0xAB,
+               0xD5, 0xBE, 0xD5, 0xB6, 0xD5, 0xB4, 0xD5, 0xAD,
+               0xF6, 0xD7, 0x99, 0xD6, 0xB4, 0xF6, 0xD7, 0xB2,
+               0xD6, 0xB7, 0xD7, 0xA2, 0xD7, 0x90, 0xD7, 0x93,
+               0xD7, 0x94, 0xD7, 0x9B, 0xD7, 0x9C, 0xD7, 0x9D,
+               0xD7, 0xA8, 0xD7, 0xAA, 0x2B, 0xF6, 0xD7, 0xA9,
+               0xD7, 0x81, 0xF6, 0xD7, 0xA9, 0xD7, 0x82, 0xF6,
+               0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0xF6, 0xD7,
+               0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0xF6, 0xD7, 0x90,
+               0xD6, 0xB7, 0xF6, 0xD7, 0x90, 0xD6, 0xB8, 0xF6,
+               0xD7, 0x90, 0xD6, 0xBC, 0xF6, 0xD7, 0x91, 0xD6,
+               0xBC, 0xF6, 0xD7, 0x92, 0xD6, 0xBC, 0xF6, 0xD7,
+               0x93, 0xD6, 0xBC, 0xF6, 0xD7, 0x94, 0xD6, 0xBC,
+               0xF6, 0xD7, 0x95, 0xD6, 0xBC, 0xF6, 0xD7, 0x96,
+               0xD6, 0xBC, 0xF6, 0xD7, 0x98, 0xD6, 0xBC, 0xF6,
+               0xD7, 0x99, 0xD6, 0xBC, 0xF6, 0xD7, 0x9A, 0xD6,
+               0xBC, 0xF6, 0xD7, 0x9B, 0xD6, 0xBC, 0xF6, 0xD7,
+               0x9C, 0xD6, 0xBC, 0xF6, 0xD7, 0x9E, 0xD6, 0xBC,
+               0xF6, 0xD7, 0xA0, 0xD6, 0xBC, 0xF6, 0xD7, 0xA1,
+               0xD6, 0xBC, 0xF6, 0xD7, 0xA3, 0xD6, 0xBC, 0xF6,
+               0xD7, 0xA4, 0xD6, 0xBC, 0xF6, 0xD7, 0xA6, 0xD6,
+               0xBC, 0xF6, 0xD7, 0xA7, 0xD6, 0xBC, 0xF6, 0xD7,
+               0xA8, 0xD6, 0xBC, 0xF6, 0xD7, 0xA9, 0xD6, 0xBC,
+               0xF6, 0xD7, 0xAA, 0xD6, 0xBC, 0xF6, 0xD7, 0x95,
+               0xD6, 0xB9, 0xF6, 0xD7, 0x91, 0xD6, 0xBF, 0xF6,
+               0xD7, 0x9B, 0xD6, 0xBF, 0xF6, 0xD7, 0xA4, 0xD6,
+               0xBF, 0xD7, 0x90, 0xD7, 0x9C, 0xD9, 0xB1, 0xD9,
+               0xB1, 0xD9, 0xBB, 0xD9, 0xBB, 0xD9, 0xBB, 0xD9,
+               0xBB, 0xD9, 0xBE, 0xD9, 0xBE, 0xD9, 0xBE, 0xD9,
+               0xBE, 0xDA, 0x80, 0xDA, 0x80, 0xDA, 0x80, 0xDA,
+               0x80, 0xD9, 0xBA, 0xD9, 0xBA, 0xD9, 0xBA, 0xD9,
+               0xBA, 0xD9, 0xBF, 0xD9, 0xBF, 0xD9, 0xBF, 0xD9,
+               0xBF, 0xD9, 0xB9, 0xD9, 0xB9, 0xD9, 0xB9, 0xD9,
+               0xB9, 0xDA, 0xA4, 0xDA, 0xA4, 0xDA, 0xA4, 0xDA,
+               0xA4, 0xDA, 0xA6, 0xDA, 0xA6, 0xDA, 0xA6, 0xDA,
+               0xA6, 0xDA, 0x84, 0xDA, 0x84, 0xDA, 0x84, 0xDA,
+               0x84, 0xDA, 0x83, 0xDA, 0x83, 0xDA, 0x83, 0xDA,
+               0x83, 0xDA, 0x86, 0xDA, 0x86, 0xDA, 0x86, 0xDA,
+               0x86, 0xDA, 0x87, 0xDA, 0x87, 0xDA, 0x87, 0xDA,
+               0x87, 0xDA, 0x8D, 0xDA, 0x8D, 0xDA, 0x8C, 0xDA,
+               0x8C, 0xDA, 0x8E, 0xDA, 0x8E, 0xDA, 0x88, 0xDA,
+               0x88, 0xDA, 0x98, 0xDA, 0x98, 0xDA, 0x91, 0xDA,
+               0x91, 0xDA, 0xA9, 0xDA, 0xA9, 0xDA, 0xA9, 0xDA,
+               0xA9, 0xDA, 0xAF, 0xDA, 0xAF, 0xDA, 0xAF, 0xDA,
+               0xAF, 0xDA, 0xB3, 0xDA, 0xB3, 0xDA, 0xB3, 0xDA,
+               0xB3, 0xDA, 0xB1, 0xDA, 0xB1, 0xDA, 0xB1, 0xDA,
+               0xB1, 0xDA, 0xBA, 0xDA, 0xBA, 0xDA, 0xBB, 0xDA,
+               0xBB, 0xDA, 0xBB, 0xDA, 0xBB, 0xDB, 0x95, 0xD9,
+               0x94, 0xDB, 0x95, 0xD9, 0x94, 0xDB, 0x81, 0xDB,
+               0x81, 0xDB, 0x81, 0xDB, 0x81, 0xDA, 0xBE, 0xDA,
+               0xBE, 0xDA, 0xBE, 0xDA, 0xBE, 0xDB, 0x92, 0xDB,
+               0x92, 0xDB, 0x92, 0xD9, 0x94, 0xDB, 0x92, 0xD9,
+               0x94, 0xDA, 0xAD, 0xDA, 0xAD, 0xDA, 0xAD, 0xDA,
+               0xAD, 0xDB, 0x87, 0xDB, 0x87, 0xDB, 0x86, 0xDB,
+               0x86, 0xDB, 0x88, 0xDB, 0x88, 0xDB, 0x87, 0xD9,
+               0xB4, 0xDB, 0x8B, 0xDB, 0x8B, 0xDB, 0x85, 0xDB,
+               0x85, 0xDB, 0x89, 0xDB, 0x89, 0xDB, 0x90, 0xDB,
+               0x90, 0xDB, 0x90, 0xDB, 0x90, 0xD9, 0x89, 0xD9,
+               0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9,
+               0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x8A, 0xD9,
+               0x94, 0xDB, 0x95, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
+               0x95, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0xD9,
+               0x8A, 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x8A, 0xD9,
+               0x94, 0xDB, 0x87, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
+               0x87, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0xD9,
+               0x8A, 0xD9, 0x94, 0xDB, 0x86, 0xD9, 0x8A, 0xD9,
+               0x94, 0xDB, 0x88, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
+               0x88, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0xD9,
+               0x8A, 0xD9, 0x94, 0xDB, 0x90, 0xD9, 0x8A, 0xD9,
+               0x94, 0xDB, 0x90, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
+               0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xD9,
+               0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xDB, 0x8C, 0xDB,
+               0x8C, 0xDB, 0x8C, 0xDB, 0x8C, 0xD9, 0x8A, 0xD9,
+               0x94, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
+               0xAD, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9,
+               0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xD9, 0x8A, 0xD9,
+               0x94, 0xD9, 0x8A, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8,
+               0xA8, 0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8,
+               0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x89, 0xD8,
+               0xA8, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD8,
+               0xAA, 0xD8, 0xAD, 0xD8, 0xAA, 0xD8, 0xAE, 0xD8,
+               0xAA, 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x89, 0xD8,
+               0xAA, 0xD9, 0x8A, 0xD8, 0xAB, 0xD8, 0xAC, 0xD8,
+               0xAB, 0xD9, 0x85, 0xD8, 0xAB, 0xD9, 0x89, 0xD8,
+               0xAB, 0xD9, 0x8A, 0xD8, 0xAC, 0xD8, 0xAD, 0xD8,
+               0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8,
+               0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD8,
+               0xAE, 0xD8, 0xAD, 0xD8, 0xAE, 0xD9, 0x85, 0xD8,
+               0xB3, 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,
+               0xB3, 0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,
+               0xB5, 0xD8, 0xAD, 0xD8, 0xB5, 0xD9, 0x85, 0xD8,
+               0xB6, 0xD8, 0xAC, 0xD8, 0xB6, 0xD8, 0xAD, 0xD8,
+               0xB6, 0xD8, 0xAE, 0xD8, 0xB6, 0xD9, 0x85, 0xD8,
+               0xB7, 0xD8, 0xAD, 0xD8, 0xB7, 0xD9, 0x85, 0xD8,
+               0xB8, 0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8,
+               0xB9, 0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8,
+               0xBA, 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9,
+               0x81, 0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9,
+               0x81, 0xD9, 0x85, 0xD9, 0x81, 0xD9, 0x89, 0xD9,
+               0x81, 0xD9, 0x8A, 0xD9, 0x82, 0xD8, 0xAD, 0xD9,
+               0x82, 0xD9, 0x85, 0xD9, 0x82, 0xD9, 0x89, 0xD9,
+               0x82, 0xD9, 0x8A, 0xD9, 0x83, 0xD8, 0xA7, 0xD9,
+               0x83, 0xD8, 0xAC, 0xD9, 0x83, 0xD8, 0xAD, 0xD9,
+               0x83, 0xD8, 0xAE, 0xD9, 0x83, 0xD9, 0x84, 0xD9,
+               0x83, 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x89, 0xD9,
+               0x83, 0xD9, 0x8A, 0xD9, 0x84, 0xD8, 0xAC, 0xD9,
+               0x84, 0xD8, 0xAD, 0xD9, 0x84, 0xD8, 0xAE, 0xD9,
+               0x84, 0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x89, 0xD9,
+               0x84, 0xD9, 0x8A, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
+               0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9,
+               0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x89, 0xD9,
+               0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
+               0x86, 0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9,
+               0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x89, 0xD9,
+               0x86, 0xD9, 0x8A, 0xD9, 0x87, 0xD8, 0xAC, 0xD9,
+               0x87, 0xD9, 0x85, 0xD9, 0x87, 0xD9, 0x89, 0xD9,
+               0x87, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9,
+               0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9,
+               0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x89, 0xD9,
+               0x8A, 0xD9, 0x8A, 0xD8, 0xB0, 0xD9, 0xB0, 0xD8,
+               0xB1, 0xD9, 0xB0, 0xD9, 0x89, 0xD9, 0xB0, 0x20,
+               0xD9, 0x8C, 0xD9, 0x91, 0x20, 0xD9, 0x8D, 0xD9,
+               0x91, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x20, 0xD9,
+               0x8F, 0xD9, 0x91, 0x20, 0xD9, 0x90, 0xD9, 0x91,
+               0x20, 0xD9, 0x91, 0xD9, 0xB0, 0xD9, 0x8A, 0xD9,
+               0x94, 0xD8, 0xB1, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
+               0xB2, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9,
+               0x8A, 0xD9, 0x94, 0xD9, 0x86, 0xD9, 0x8A, 0xD9,
+               0x94, 0xD9, 0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
+               0x8A, 0xD8, 0xA8, 0xD8, 0xB1, 0xD8, 0xA8, 0xD8,
+               0xB2, 0xD8, 0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9,
+               0x86, 0xD8, 0xA8, 0xD9, 0x89, 0xD8, 0xA8, 0xD9,
+               0x8A, 0xD8, 0xAA, 0xD8, 0xB1, 0xD8, 0xAA, 0xD8,
+               0xB2, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA, 0xD9,
+               0x86, 0xD8, 0xAA, 0xD9, 0x89, 0xD8, 0xAA, 0xD9,
+               0x8A, 0xD8, 0xAB, 0xD8, 0xB1, 0xD8, 0xAB, 0xD8,
+               0xB2, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAB, 0xD9,
+               0x86, 0xD8, 0xAB, 0xD9, 0x89, 0xD8, 0xAB, 0xD9,
+               0x8A, 0xD9, 0x81, 0xD9, 0x89, 0xD9, 0x81, 0xD9,
+               0x8A, 0xD9, 0x82, 0xD9, 0x89, 0xD9, 0x82, 0xD9,
+               0x8A, 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x83, 0xD9,
+               0x84, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x83, 0xD9,
+               0x89, 0xD9, 0x83, 0xD9, 0x8A, 0xD9, 0x84, 0xD9,
+               0x85, 0xD9, 0x84, 0xD9, 0x89, 0xD9, 0x84, 0xD9,
+               0x8A, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x85, 0xD9,
+               0x85, 0xD9, 0x86, 0xD8, 0xB1, 0xD9, 0x86, 0xD8,
+               0xB2, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9,
+               0x86, 0xD9, 0x86, 0xD9, 0x89, 0xD9, 0x86, 0xD9,
+               0x8A, 0xD9, 0x89, 0xD9, 0xB0, 0xD9, 0x8A, 0xD8,
+               0xB1, 0xD9, 0x8A, 0xD8, 0xB2, 0xD9, 0x8A, 0xD9,
+               0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x8A, 0xD9,
+               0x89, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9,
+               0x94, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
+               0xAD, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0xD9,
+               0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9,
+               0x94, 0xD9, 0x87, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8,
+               0xA8, 0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8,
+               0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x87, 0xD8,
+               0xAA, 0xD8, 0xAC, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8,
+               0xAA, 0xD8, 0xAE, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,
+               0xAA, 0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8,
+               0xAC, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
+               0xAD, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x85, 0xD8,
+               0xAE, 0xD8, 0xAC, 0xD8, 0xAE, 0xD9, 0x85, 0xD8,
+               0xB3, 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,
+               0xB3, 0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,
+               0xB5, 0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAE, 0xD8,
+               0xB5, 0xD9, 0x85, 0xD8, 0xB6, 0xD8, 0xAC, 0xD8,
+               0xB6, 0xD8, 0xAD, 0xD8, 0xB6, 0xD8, 0xAE, 0xD8,
+               0xB6, 0xD9, 0x85, 0xD8, 0xB7, 0xD8, 0xAD, 0xD8,
+               0xB8, 0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8,
+               0xB9, 0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8,
+               0xBA, 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9,
+               0x81, 0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9,
+               0x81, 0xD9, 0x85, 0xD9, 0x82, 0xD8, 0xAD, 0xD9,
+               0x82, 0xD9, 0x85, 0xD9, 0x83, 0xD8, 0xAC, 0xD9,
+               0x83, 0xD8, 0xAD, 0xD9, 0x83, 0xD8, 0xAE, 0xD9,
+               0x83, 0xD9, 0x84, 0xD9, 0x83, 0xD9, 0x85, 0xD9,
+               0x84, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
+               0x84, 0xD8, 0xAE, 0xD9, 0x84, 0xD9, 0x85, 0xD9,
+               0x84, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
+               0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9,
+               0x85, 0xD9, 0x85, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
+               0x86, 0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9,
+               0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9,
+               0x87, 0xD8, 0xAC, 0xD9, 0x87, 0xD9, 0x85, 0xD9,
+               0x87, 0xD9, 0xB0, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9,
+               0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9,
+               0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9,
+               0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9,
+               0x94, 0xD9, 0x87, 0xD8, 0xA8, 0xD9, 0x85, 0xD8,
+               0xA8, 0xD9, 0x87, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,
+               0xAA, 0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8,
+               0xAB, 0xD9, 0x87, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,
+               0xB3, 0xD9, 0x87, 0xD8, 0xB4, 0xD9, 0x85, 0xD8,
+               0xB4, 0xD9, 0x87, 0xD9, 0x83, 0xD9, 0x84, 0xD9,
+               0x83, 0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x85, 0xD9,
+               0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9,
+               0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9,
+               0x80, 0xD9, 0x8E, 0xD9, 0x91, 0xD9, 0x80, 0xD9,
+               0x8F, 0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x90, 0xD9,
+               0x91, 0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9,
+               0x8A, 0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9,
+               0x8A, 0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9,
+               0x8A, 0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9,
+               0x8A, 0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9,
+               0x8A, 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9,
+               0x8A, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9,
+               0x8A, 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9,
+               0x8A, 0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9,
+               0x8A, 0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9,
+               0x8A, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8,
+               0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9,
+               0x85, 0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8,
+               0xB1, 0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8,
+               0xB1, 0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9,
+               0x8A, 0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9,
+               0x8A, 0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9,
+               0x8A, 0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9,
+               0x8A, 0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9,
+               0x8A, 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9,
+               0x8A, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9,
+               0x8A, 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9,
+               0x8A, 0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9,
+               0x8A, 0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9,
+               0x8A, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8,
+               0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9,
+               0x85, 0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8,
+               0xB1, 0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8,
+               0xB1, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8,
+               0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9,
+               0x85, 0xD8, 0xB3, 0xD9, 0x87, 0xD8, 0xB4, 0xD9,
+               0x87, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xB3, 0xD8,
+               0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3, 0xD8,
+               0xAE, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8,
+               0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB7, 0xD9,
+               0x85, 0xD8, 0xB8, 0xD9, 0x85, 0xD8, 0xA7, 0xD9,
+               0x8B, 0xD8, 0xA7, 0xD9, 0x8B, 0xD8, 0xAA, 0xD8,
+               0xAC, 0xD9, 0x85, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8,
+               0xAC, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8,
+               0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAA, 0xD8,
+               0xAE, 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,
+               0xAC, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0xD8,
+               0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9,
+               0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
+               0xAD, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0xD8,
+               0xAD, 0xD9, 0x85, 0xD9, 0x89, 0xD8, 0xB3, 0xD8,
+               0xAD, 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8,
+               0xAD, 0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0xD8,
+               0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xB3, 0xD9,
+               0x85, 0xD8, 0xAD, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,
+               0xAC, 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0xD8,
+               0xB3, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB5, 0xD8,
+               0xAD, 0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8,
+               0xAD, 0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0xD8,
+               0xB4, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB4, 0xD8,
+               0xAD, 0xD9, 0x85, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9,
+               0x8A, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0xD8,
+               0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9,
+               0x85, 0xD9, 0x85, 0xD8, 0xB4, 0xD9, 0x85, 0xD9,
+               0x85, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0xD8,
+               0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB6, 0xD8,
+               0xAE, 0xD9, 0x85, 0xD8, 0xB7, 0xD9, 0x85, 0xD8,
+               0xAD, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0xD8,
+               0xB7, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB7, 0xD9,
+               0x85, 0xD9, 0x8A, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9,
+               0x85, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0xD8,
+               0xB9, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB9, 0xD9,
+               0x85, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x85, 0xD9,
+               0x85, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0xD8,
+               0xBA, 0xD9, 0x85, 0xD9, 0x89, 0xD9, 0x81, 0xD8,
+               0xAE, 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAE, 0xD9,
+               0x85, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9,
+               0x82, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x84, 0xD8,
+               0xAD, 0xD9, 0x85, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
+               0x8A, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0xD9,
+               0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0xD9, 0x84, 0xD8,
+               0xAC, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAE, 0xD9,
+               0x85, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0xD9,
+               0x84, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x84, 0xD9,
+               0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAD, 0xD8,
+               0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD9,
+               0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0xD9, 0x85, 0xD8,
+               0xAC, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
+               0x85, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9,
+               0x85, 0xD8, 0xAE, 0xD9, 0x85, 0xD9, 0x85, 0xD8,
+               0xAC, 0xD8, 0xAE, 0xD9, 0x87, 0xD9, 0x85, 0xD8,
+               0xAC, 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
+               0x86, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x86, 0xD8,
+               0xAD, 0xD9, 0x89, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
+               0x85, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0xD9,
+               0x86, 0xD8, 0xAC, 0xD9, 0x89, 0xD9, 0x86, 0xD9,
+               0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x85, 0xD9,
+               0x89, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
+               0x8A, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xA8, 0xD8,
+               0xAE, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9,
+               0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0xD8,
+               0xAA, 0xD8, 0xAE, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8,
+               0xAE, 0xD9, 0x89, 0xD8, 0xAA, 0xD9, 0x85, 0xD9,
+               0x8A, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0xD8,
+               0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xAC, 0xD8,
+               0xAD, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x85, 0xD9,
+               0x89, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0xD8,
+               0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xB4, 0xD8,
+               0xAD, 0xD9, 0x8A, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,
+               0x8A, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9,
+               0x84, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8,
+               0xAD, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9,
+               0x8A, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9,
+               0x85, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x82, 0xD9,
+               0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAD, 0xD9,
+               0x8A, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9,
+               0x84, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB9, 0xD9,
+               0x85, 0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9,
+               0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9,
+               0x85, 0xD8, 0xAE, 0xD9, 0x8A, 0xD9, 0x84, 0xD8,
+               0xAC, 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x85, 0xD9,
+               0x85, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0xD9,
+               0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8,
+               0xAD, 0xD9, 0x8A, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9,
+               0x8A, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9,
+               0x81, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xA8, 0xD8,
+               0xAD, 0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9,
+               0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
+               0xB5, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB3, 0xD8,
+               0xAE, 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
+               0x8A, 0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0xD9,
+               0x82, 0xD9, 0x84, 0xDB, 0x92, 0xD8, 0xA7, 0xD9,
+               0x84, 0xD9, 0x84, 0xD9, 0x87, 0xD8, 0xA7, 0xD9,
+               0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0xD9, 0x85, 0xD8,
+               0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0xD8, 0xB5, 0xD9,
+               0x84, 0xD8, 0xB9, 0xD9, 0x85, 0xD8, 0xB1, 0xD8,
+               0xB3, 0xD9, 0x88, 0xD9, 0x84, 0xD8, 0xB9, 0xD9,
+               0x84, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x88, 0xD8,
+               0xB3, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xB5, 0xD9,
+               0x84, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x84, 0xD9,
+               0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84,
+               0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9,
+               0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3,
+               0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x84,
+               0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9,
+               0x84, 0xD9, 0x87, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8,
+               0xA7, 0xD9, 0x84, 0x2C, 0xE3, 0x80, 0x81, 0xE3,
+               0x80, 0x82, 0x3A, 0x3B, 0x21, 0x3F, 0xE3, 0x80,
+               0x96, 0xE3, 0x80, 0x97, 0x2E, 0x2E, 0x2E, 0x2E,
+               0x2E, 0xE2, 0x80, 0x94, 0xE2, 0x80, 0x93, 0x5F,
+               0x5F, 0x28, 0x29, 0x7B, 0x7D, 0xE3, 0x80, 0x94,
+               0xE3, 0x80, 0x95, 0xE3, 0x80, 0x90, 0xE3, 0x80,
+               0x91, 0xE3, 0x80, 0x8A, 0xE3, 0x80, 0x8B, 0xE3,
+               0x80, 0x88, 0xE3, 0x80, 0x89, 0xE3, 0x80, 0x8C,
+               0xE3, 0x80, 0x8D, 0xE3, 0x80, 0x8E, 0xE3, 0x80,
+               0x8F, 0x5B, 0x5D, 0x20, 0xCC, 0x85, 0x20, 0xCC,
+               0x85, 0x20, 0xCC, 0x85, 0x20, 0xCC, 0x85, 0x5F,
+               0x5F, 0x5F, 0x2C, 0xE3, 0x80, 0x81, 0x2E, 0x3B,
+               0x3A, 0x3F, 0x21, 0xE2, 0x80, 0x94, 0x28, 0x29,
+               0x7B, 0x7D, 0xE3, 0x80, 0x94, 0xE3, 0x80, 0x95,
+               0x23, 0x26, 0x2A, 0x2B, 0x2D, 0x3C, 0x3E, 0x3D,
+               0x5C, 0x24, 0x25, 0x40, 0x20, 0xD9, 0x8B, 0xD9,
+               0x80, 0xD9, 0x8B, 0x20, 0xD9, 0x8C, 0x20, 0xD9,
+               0x8D, 0x20, 0xD9, 0x8E, 0xD9, 0x80, 0xD9, 0x8E,
+               0x20, 0xD9, 0x8F, 0xD9, 0x80, 0xD9, 0x8F, 0x20,
+               0xD9, 0x90, 0xD9, 0x80, 0xD9, 0x90, 0x20, 0xD9,
+               0x91, 0xD9, 0x80, 0xD9, 0x91, 0x20, 0xD9, 0x92,
+               0xD9, 0x80, 0xD9, 0x92, 0xD8, 0xA1, 0xD8, 0xA7,
+               0xD9, 0x93, 0xD8, 0xA7, 0xD9, 0x93, 0xD8, 0xA7,
+               0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x94, 0xD9, 0x88,
+               0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x94, 0xD8, 0xA7,
+               0xD9, 0x95, 0xD8, 0xA7, 0xD9, 0x95, 0xD9, 0x8A,
+               0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A,
+               0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7,
+               0xD8, 0xA7, 0xD8, 0xA8, 0xD8, 0xA8, 0xD8, 0xA8,
+               0xD8, 0xA8, 0xD8, 0xA9, 0xD8, 0xA9, 0xD8, 0xAA,
+               0xD8, 0xAA, 0xD8, 0xAA, 0xD8, 0xAA, 0xD8, 0xAB,
+               0xD8, 0xAB, 0xD8, 0xAB, 0xD8, 0xAB, 0xD8, 0xAC,
+               0xD8, 0xAC, 0xD8, 0xAC, 0xD8, 0xAC, 0xD8, 0xAD,
+               0xD8, 0xAD, 0xD8, 0xAD, 0xD8, 0xAD, 0xD8, 0xAE,
+               0xD8, 0xAE, 0xD8, 0xAE, 0xD8, 0xAE, 0xD8, 0xAF,
+               0xD8, 0xAF, 0xD8, 0xB0, 0xD8, 0xB0, 0xD8, 0xB1,
+               0xD8, 0xB1, 0xD8, 0xB2, 0xD8, 0xB2, 0xD8, 0xB3,
+               0xD8, 0xB3, 0xD8, 0xB3, 0xD8, 0xB3, 0xD8, 0xB4,
+               0xD8, 0xB4, 0xD8, 0xB4, 0xD8, 0xB4, 0xD8, 0xB5,
+               0xD8, 0xB5, 0xD8, 0xB5, 0xD8, 0xB5, 0xD8, 0xB6,
+               0xD8, 0xB6, 0xD8, 0xB6, 0xD8, 0xB6, 0xD8, 0xB7,
+               0xD8, 0xB7, 0xD8, 0xB7, 0xD8, 0xB7, 0xD8, 0xB8,
+               0xD8, 0xB8, 0xD8, 0xB8, 0xD8, 0xB8, 0xD8, 0xB9,
+               0xD8, 0xB9, 0xD8, 0xB9, 0xD8, 0xB9, 0xD8, 0xBA,
+               0xD8, 0xBA, 0xD8, 0xBA, 0xD8, 0xBA, 0xD9, 0x81,
+               0xD9, 0x81, 0xD9, 0x81, 0xD9, 0x81, 0xD9, 0x82,
+               0xD9, 0x82, 0xD9, 0x82, 0xD9, 0x82, 0xD9, 0x83,
+               0xD9, 0x83, 0xD9, 0x83, 0xD9, 0x83, 0xD9, 0x84,
+               0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x85,
+               0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x86,
+               0xD9, 0x86, 0xD9, 0x86, 0xD9, 0x86, 0xD9, 0x87,
+               0xD9, 0x87, 0xD9, 0x87, 0xD9, 0x87, 0xD9, 0x88,
+               0xD9, 0x88, 0xD9, 0x89, 0xD9, 0x89, 0xD9, 0x8A,
+               0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x84,
+               0xD8, 0xA7, 0xD9, 0x93, 0xD9, 0x84, 0xD8, 0xA7,
+               0xD9, 0x93, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94,
+               0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xD9, 0x84,
+               0xD8, 0xA7, 0xD9, 0x95, 0xD9, 0x84, 0xD8, 0xA7,
+               0xD9, 0x95, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84,
+               0xD8, 0xA7, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26,
+               0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
+               0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
+               0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E,
+               0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
+               0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
+               0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
+               0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E,
+               0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
+               0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E,
+               0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
+               0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E,
+               0xE2, 0xA6, 0x85, 0xE2, 0xA6, 0x86, 0xE3, 0x80,
+               0x82, 0xE3, 0x80, 0x8C, 0xE3, 0x80, 0x8D, 0xE3,
+               0x80, 0x81, 0xE3, 0x83, 0xBB, 0xE3, 0x83, 0xB2,
+               0xE3, 0x82, 0xA1, 0xE3, 0x82, 0xA3, 0xE3, 0x82,
+               0xA5, 0xE3, 0x82, 0xA7, 0xE3, 0x82, 0xA9, 0xE3,
+               0x83, 0xA3, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xA7,
+               0xE3, 0x83, 0x83, 0xE3, 0x83, 0xBC, 0xE3, 0x82,
+               0xA2, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xA6, 0xE3,
+               0x82, 0xA8, 0xE3, 0x82, 0xAA, 0xE3, 0x82, 0xAB,
+               0xE3, 0x82, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82,
+               0xB1, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB5, 0xE3,
+               0x82, 0xB7, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xBB,
+               0xE3, 0x82, 0xBD, 0xE3, 0x82, 0xBF, 0xE3, 0x83,
+               0x81, 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x86, 0xE3,
+               0x83, 0x88, 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8B,
+               0xE3, 0x83, 0x8C, 0xE3, 0x83, 0x8D, 0xE3, 0x83,
+               0x8E, 0xE3, 0x83, 0x8F, 0xE3, 0x83, 0x92, 0xE3,
+               0x83, 0x95, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0x9B,
+               0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x9F, 0xE3, 0x83,
+               0xA0, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xA2, 0xE3,
+               0x83, 0xA4, 0xE3, 0x83, 0xA6, 0xE3, 0x83, 0xA8,
+               0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xAA, 0xE3, 0x83,
+               0xAB, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAD, 0xE3,
+               0x83, 0xAF, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0x99,
+               0xE3, 0x82, 0x9A, 0xE1, 0x85, 0xA0, 0xE1, 0x84,
+               0x80, 0xE1, 0x84, 0x81, 0xE1, 0x86, 0xAA, 0xE1,
+               0x84, 0x82, 0xE1, 0x86, 0xAC, 0xE1, 0x86, 0xAD,
+               0xE1, 0x84, 0x83, 0xE1, 0x84, 0x84, 0xE1, 0x84,
+               0x85, 0xE1, 0x86, 0xB0, 0xE1, 0x86, 0xB1, 0xE1,
+               0x86, 0xB2, 0xE1, 0x86, 0xB3, 0xE1, 0x86, 0xB4,
+               0xE1, 0x86, 0xB5, 0xE1, 0x84, 0x9A, 0xE1, 0x84,
+               0x86, 0xE1, 0x84, 0x87, 0xE1, 0x84, 0x88, 0xE1,
+               0x84, 0xA1, 0xE1, 0x84, 0x89, 0xE1, 0x84, 0x8A,
+               0xE1, 0x84, 0x8B, 0xE1, 0x84, 0x8C, 0xE1, 0x84,
+               0x8D, 0xE1, 0x84, 0x8E, 0xE1, 0x84, 0x8F, 0xE1,
+               0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1, 0x84, 0x92,
+               0xE1, 0x85, 0xA1, 0xE1, 0x85, 0xA2, 0xE1, 0x85,
+               0xA3, 0xE1, 0x85, 0xA4, 0xE1, 0x85, 0xA5, 0xE1,
+               0x85, 0xA6, 0xE1, 0x85, 0xA7, 0xE1, 0x85, 0xA8,
+               0xE1, 0x85, 0xA9, 0xE1, 0x85, 0xAA, 0xE1, 0x85,
+               0xAB, 0xE1, 0x85, 0xAC, 0xE1, 0x85, 0xAD, 0xE1,
+               0x85, 0xAE, 0xE1, 0x85, 0xAF, 0xE1, 0x85, 0xB0,
+               0xE1, 0x85, 0xB1, 0xE1, 0x85, 0xB2, 0xE1, 0x85,
+               0xB3, 0xE1, 0x85, 0xB4, 0xE1, 0x85, 0xB5, 0xC2,
+               0xA2, 0xC2, 0xA3, 0xC2, 0xAC, 0x20, 0xCC, 0x84,
+               0xC2, 0xA6, 0xC2, 0xA5, 0xE2, 0x82, 0xA9, 0xE2,
+               0x94, 0x82, 0xE2, 0x86, 0x90, 0xE2, 0x86, 0x91,
+               0xE2, 0x86, 0x92, 0xE2, 0x86, 0x93, 0xE2, 0x96,
+               0xA0, 0xE2, 0x97, 0x8B, 0xF6, 0xF0, 0x9D, 0x85,
+               0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xF6, 0xF0, 0x9D,
+               0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF6, 0xF0,
+               0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
+               0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x85, 0x98,
+               0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF,
+               0xF6, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
+               0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xF6, 0xF0, 0x9D,
+               0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,
+               0x85, 0xB1, 0xF6, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
+               0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xF6,
+               0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,
+               0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85,
+               0xA5, 0xF6, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,
+               0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xF6, 0xF0,
+               0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
+               0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x86, 0xB9,
+               0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF,
+               0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85,
+               0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0x41, 0x42, 0x43,
+               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
+               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
+               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E,
+               0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
+               0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44,
+               0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C,
+               0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54,
+               0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, 0x62,
+               0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A,
+               0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72,
+               0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A,
+               0x41, 0x43, 0x44, 0x47, 0x4A, 0x4B, 0x4E, 0x4F,
+               0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
+               0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x66, 0x68,
+               0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44,
+               0x45, 0x46, 0x47, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
+               0x4F, 0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
+               0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E,
+               0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
+               0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44, 0x45,
+               0x46, 0x47, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4F,
+               0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
+               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
+               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
+               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
+               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
+               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
+               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
+               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
+               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
+               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
+               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
+               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
+               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
+               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
+               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
+               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
+               0x7A, 0xC4, 0xB1, 0xC8, 0xB7, 0xCE, 0x91, 0xCE,
+               0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE,
+               0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE,
+               0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE,
+               0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE,
+               0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE,
+               0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2,
+               0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3,
+               0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7,
+               0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB,
+               0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF,
+               0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83,
+               0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87,
+               0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE,
+               0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF,
+               0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE,
+               0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE,
+               0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE,
+               0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE,
+               0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE,
+               0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE,
+               0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87,
+               0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4,
+               0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8,
+               0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC,
+               0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80,
+               0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84,
+               0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88,
+               0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE,
+               0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF,
+               0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE,
+               0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE,
+               0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE,
+               0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE,
+               0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE,
+               0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE,
+               0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1,
+               0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5,
+               0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9,
+               0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD,
+               0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81,
+               0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85,
+               0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89,
+               0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE,
+               0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE,
+               0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE,
+               0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE,
+               0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE,
+               0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE,
+               0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE,
+               0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE,
+               0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2,
+               0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6,
+               0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA,
+               0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE,
+               0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82,
+               0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86,
+               0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88,
+               0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF,
+               0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE,
+               0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE,
+               0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE,
+               0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE,
+               0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE,
+               0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE,
+               0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2,
+               0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3,
+               0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7,
+               0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB,
+               0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF,
+               0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83,
+               0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87,
+               0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE,
+               0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF,
+               0x81, 0xCF, 0x80, 0xCF, 0x9C, 0xCF, 0x9D, 0x30,
+               0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
+               0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
+               0x37, 0x38, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34,
+               0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x31, 0x32,
+               0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30,
+               0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
+               0x39, 0xF6, 0xE4, 0xB8, 0xBD, 0xF6, 0xE4, 0xB8,
+               0xB8, 0xF6, 0xE4, 0xB9, 0x81, 0xF6, 0xF0, 0xA0,
+               0x84, 0xA2, 0xF6, 0xE4, 0xBD, 0xA0, 0xF6, 0xE4,
+               0xBE, 0xAE, 0xF6, 0xE4, 0xBE, 0xBB, 0xF6, 0xE5,
+               0x80, 0x82, 0xF6, 0xE5, 0x81, 0xBA, 0xF6, 0xE5,
+               0x82, 0x99, 0xF6, 0xE5, 0x83, 0xA7, 0xF6, 0xE5,
+               0x83, 0x8F, 0xF6, 0xE3, 0x92, 0x9E, 0xF6, 0xF0,
+               0xA0, 0x98, 0xBA, 0xF6, 0xE5, 0x85, 0x8D, 0xF6,
+               0xE5, 0x85, 0x94, 0xF6, 0xE5, 0x85, 0xA4, 0xF6,
+               0xE5, 0x85, 0xB7, 0xF6, 0xF0, 0xA0, 0x94, 0x9C,
+               0xF6, 0xE3, 0x92, 0xB9, 0xF6, 0xE5, 0x85, 0xA7,
+               0xF6, 0xE5, 0x86, 0x8D, 0xF6, 0xF0, 0xA0, 0x95,
+               0x8B, 0xF6, 0xE5, 0x86, 0x97, 0xF6, 0xE5, 0x86,
+               0xA4, 0xF6, 0xE4, 0xBB, 0x8C, 0xF6, 0xE5, 0x86,
+               0xAC, 0xF6, 0xE5, 0x86, 0xB5, 0xF6, 0xF0, 0xA9,
+               0x87, 0x9F, 0xF6, 0xE5, 0x87, 0xB5, 0xF6, 0xE5,
+               0x88, 0x83, 0xF6, 0xE3, 0x93, 0x9F, 0xF6, 0xE5,
+               0x88, 0xBB, 0xF6, 0xE5, 0x89, 0x86, 0xF6, 0xE5,
+               0x89, 0xB2, 0xF6, 0xE5, 0x89, 0xB7, 0xF6, 0xE3,
+               0x94, 0x95, 0xF6, 0xE5, 0x8B, 0x87, 0xF6, 0xE5,
+               0x8B, 0x89, 0xF6, 0xE5, 0x8B, 0xA4, 0xF6, 0xE5,
+               0x8B, 0xBA, 0xF6, 0xE5, 0x8C, 0x85, 0xF6, 0xE5,
+               0x8C, 0x86, 0xF6, 0xE5, 0x8C, 0x97, 0xF6, 0xE5,
+               0x8D, 0x89, 0xF6, 0xE5, 0x8D, 0x91, 0xF6, 0xE5,
+               0x8D, 0x9A, 0xF6, 0xE5, 0x8D, 0xB3, 0xF6, 0xE5,
+               0x8D, 0xBD, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xE5,
+               0x8D, 0xBF, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xF0,
+               0xA0, 0xA8, 0xAC, 0xF6, 0xE7, 0x81, 0xB0, 0xF6,
+               0xE5, 0x8F, 0x8A, 0xF6, 0xE5, 0x8F, 0x9F, 0xF6,
+               0xF0, 0xA0, 0xAD, 0xA3, 0xF6, 0xE5, 0x8F, 0xAB,
+               0xF6, 0xE5, 0x8F, 0xB1, 0xF6, 0xE5, 0x90, 0x86,
+               0xF6, 0xE5, 0x92, 0x9E, 0xF6, 0xE5, 0x90, 0xB8,
+               0xF6, 0xE5, 0x91, 0x88, 0xF6, 0xE5, 0x91, 0xA8,
+               0xF6, 0xE5, 0x92, 0xA2, 0xF6, 0xE5, 0x93, 0xB6,
+               0xF6, 0xE5, 0x94, 0x90, 0xF6, 0xE5, 0x95, 0x93,
+               0xF6, 0xE5, 0x95, 0xA3, 0xF6, 0xE5, 0x96, 0x84,
+               0xF6, 0xE5, 0x96, 0x84, 0xF6, 0xE5, 0x96, 0x99,
+               0xF6, 0xE5, 0x96, 0xAB, 0xF6, 0xE5, 0x96, 0xB3,
+               0xF6, 0xE5, 0x97, 0x82, 0xF6, 0xE5, 0x9C, 0x96,
+               0xF6, 0xE5, 0x98, 0x86, 0xF6, 0xE5, 0x9C, 0x97,
+               0xF6, 0xE5, 0x99, 0x91, 0xF6, 0xE5, 0x99, 0xB4,
+               0xF6, 0xE5, 0x88, 0x87, 0xF6, 0xE5, 0xA3, 0xAE,
+               0xF6, 0xE5, 0x9F, 0x8E, 0xF6, 0xE5, 0x9F, 0xB4,
+               0xF6, 0xE5, 0xA0, 0x8D, 0xF6, 0xE5, 0x9E, 0x8B,
+               0xF6, 0xE5, 0xA0, 0xB2, 0xF6, 0xE5, 0xA0, 0xB1,
+               0xF6, 0xE5, 0xA2, 0xAC, 0xF6, 0xF0, 0xA1, 0x93,
+               0xA4, 0xF6, 0xE5, 0xA3, 0xB2, 0xF6, 0xE5, 0xA3,
+               0xB7, 0xF6, 0xE5, 0xA4, 0x86, 0xF6, 0xE5, 0xA4,
+               0x9A, 0xF6, 0xE5, 0xA4, 0xA2, 0xF6, 0xE5, 0xA5,
+               0xA2, 0xF6, 0xF0, 0xA1, 0x9A, 0xA8, 0xF6, 0xF0,
+               0xA1, 0x9B, 0xAA, 0xF6, 0xE5, 0xA7, 0xAC, 0xF6,
+               0xE5, 0xA8, 0x9B, 0xF6, 0xE5, 0xA8, 0xA7, 0xF6,
+               0xE5, 0xA7, 0x98, 0xF6, 0xE5, 0xA9, 0xA6, 0xF6,
+               0xE3, 0x9B, 0xAE, 0xF6, 0xE3, 0x9B, 0xBC, 0xF6,
+               0xE5, 0xAC, 0x88, 0xF6, 0xE5, 0xAC, 0xBE, 0xF6,
+               0xE5, 0xAC, 0xBE, 0xF6, 0xF0, 0xA1, 0xA7, 0x88,
+               0xF6, 0xE5, 0xAF, 0x83, 0xF6, 0xE5, 0xAF, 0x98,
+               0xF6, 0xE5, 0xAF, 0xA7, 0xF6, 0xE5, 0xAF, 0xB3,
+               0xF6, 0xF0, 0xA1, 0xAC, 0x98, 0xF6, 0xE5, 0xAF,
+               0xBF, 0xF6, 0xE5, 0xB0, 0x86, 0xF6, 0xE5, 0xBD,
+               0x93, 0xF6, 0xE5, 0xB0, 0xA2, 0xF6, 0xE3, 0x9E,
+               0x81, 0xF6, 0xE5, 0xB1, 0xA0, 0xF6, 0xE5, 0xB1,
+               0xAE, 0xF6, 0xE5, 0xB3, 0x80, 0xF6, 0xE5, 0xB2,
+               0x8D, 0xF6, 0xF0, 0xA1, 0xB7, 0xA4, 0xF6, 0xE5,
+               0xB5, 0x83, 0xF6, 0xF0, 0xA1, 0xB7, 0xA6, 0xF6,
+               0xE5, 0xB5, 0xAE, 0xF6, 0xE5, 0xB5, 0xAB, 0xF6,
+               0xE5, 0xB5, 0xBC, 0xF6, 0xE5, 0xB7, 0xA1, 0xF6,
+               0xE5, 0xB7, 0xA2, 0xF6, 0xE3, 0xA0, 0xAF, 0xF6,
+               0xE5, 0xB7, 0xBD, 0xF6, 0xE5, 0xB8, 0xA8, 0xF6,
+               0xE5, 0xB8, 0xBD, 0xF6, 0xE5, 0xB9, 0xA9, 0xF6,
+               0xE3, 0xA1, 0xA2, 0xF6, 0xF0, 0xA2, 0x86, 0x83,
+               0xF6, 0xE3, 0xA1, 0xBC, 0xF6, 0xE5, 0xBA, 0xB0,
+               0xF6, 0xE5, 0xBA, 0xB3, 0xF6, 0xE5, 0xBA, 0xB6,
+               0xF6, 0xE5, 0xBB, 0x8A, 0xF6, 0xF0, 0xAA, 0x8E,
+               0x92, 0xF6, 0xE5, 0xBB, 0xBE, 0xF6, 0xF0, 0xA2,
+               0x8C, 0xB1, 0xF6, 0xF0, 0xA2, 0x8C, 0xB1, 0xF6,
+               0xE8, 0x88, 0x81, 0xF6, 0xE5, 0xBC, 0xA2, 0xF6,
+               0xE5, 0xBC, 0xA2, 0xF6, 0xE3, 0xA3, 0x87, 0xF6,
+               0xF0, 0xA3, 0x8A, 0xB8, 0xF6, 0xF0, 0xA6, 0x87,
+               0x9A, 0xF6, 0xE5, 0xBD, 0xA2, 0xF6, 0xE5, 0xBD,
+               0xAB, 0xF6, 0xE3, 0xA3, 0xA3, 0xF6, 0xE5, 0xBE,
+               0x9A, 0xF6, 0xE5, 0xBF, 0x8D, 0xF6, 0xE5, 0xBF,
+               0x97, 0xF6, 0xE5, 0xBF, 0xB9, 0xF6, 0xE6, 0x82,
+               0x81, 0xF6, 0xE3, 0xA4, 0xBA, 0xF6, 0xE3, 0xA4,
+               0x9C, 0xF6, 0xE6, 0x82, 0x94, 0xF6, 0xF0, 0xA2,
+               0x9B, 0x94, 0xF6, 0xE6, 0x83, 0x87, 0xF6, 0xE6,
+               0x85, 0x88, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6,
+               0x85, 0x8E, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6,
+               0x85, 0xBA, 0xF6, 0xE6, 0x86, 0x8E, 0xF6, 0xE6,
+               0x86, 0xB2, 0xF6, 0xE6, 0x86, 0xA4, 0xF6, 0xE6,
+               0x86, 0xAF, 0xF6, 0xE6, 0x87, 0x9E, 0xF6, 0xE6,
+               0x87, 0xB2, 0xF6, 0xE6, 0x87, 0xB6, 0xF6, 0xE6,
+               0x88, 0x90, 0xF6, 0xE6, 0x88, 0x9B, 0xF6, 0xE6,
+               0x89, 0x9D, 0xF6, 0xE6, 0x8A, 0xB1, 0xF6, 0xE6,
+               0x8B, 0x94, 0xF6, 0xE6, 0x8D, 0x90, 0xF6, 0xF0,
+               0xA2, 0xAC, 0x8C, 0xF6, 0xE6, 0x8C, 0xBD, 0xF6,
+               0xE6, 0x8B, 0xBC, 0xF6, 0xE6, 0x8D, 0xA8, 0xF6,
+               0xE6, 0x8E, 0x83, 0xF6, 0xE6, 0x8F, 0xA4, 0xF6,
+               0xF0, 0xA2, 0xAF, 0xB1, 0xF6, 0xE6, 0x90, 0xA2,
+               0xF6, 0xE6, 0x8F, 0x85, 0xF6, 0xE6, 0x8E, 0xA9,
+               0xF6, 0xE3, 0xA8, 0xAE, 0xF6, 0xE6, 0x91, 0xA9,
+               0xF6, 0xE6, 0x91, 0xBE, 0xF6, 0xE6, 0x92, 0x9D,
+               0xF6, 0xE6, 0x91, 0xB7, 0xF6, 0xE3, 0xA9, 0xAC,
+               0xF6, 0xE6, 0x95, 0x8F, 0xF6, 0xE6, 0x95, 0xAC,
+               0xF6, 0xF0, 0xA3, 0x80, 0x8A, 0xF6, 0xE6, 0x97,
+               0xA3, 0xF6, 0xE6, 0x9B, 0xB8, 0xF6, 0xE6, 0x99,
+               0x89, 0xF6, 0xE3, 0xAC, 0x99, 0xF6, 0xE6, 0x9A,
+               0x91, 0xF6, 0xE3, 0xAC, 0x88, 0xF6, 0xE3, 0xAB,
+               0xA4, 0xF6, 0xE5, 0x86, 0x92, 0xF6, 0xE5, 0x86,
+               0x95, 0xF6, 0xE6, 0x9C, 0x80, 0xF6, 0xE6, 0x9A,
+               0x9C, 0xF6, 0xE8, 0x82, 0xAD, 0xF6, 0xE4, 0x8F,
+               0x99, 0xF6, 0xE6, 0x9C, 0x97, 0xF6, 0xE6, 0x9C,
+               0x9B, 0xF6, 0xE6, 0x9C, 0xA1, 0xF6, 0xE6, 0x9D,
+               0x9E, 0xF6, 0xE6, 0x9D, 0x93, 0xF6, 0xF0, 0xA3,
+               0x8F, 0x83, 0xF6, 0xE3, 0xAD, 0x89, 0xF6, 0xE6,
+               0x9F, 0xBA, 0xF6, 0xE6, 0x9E, 0x85, 0xF6, 0xE6,
+               0xA1, 0x92, 0xF6, 0xE6, 0xA2, 0x85, 0xF6, 0xF0,
+               0xA3, 0x91, 0xAD, 0xF6, 0xE6, 0xA2, 0x8E, 0xF6,
+               0xE6, 0xA0, 0x9F, 0xF6, 0xE6, 0xA4, 0x94, 0xF6,
+               0xE3, 0xAE, 0x9D, 0xF6, 0xE6, 0xA5, 0x82, 0xF6,
+               0xE6, 0xA6, 0xA3, 0xF6, 0xE6, 0xA7, 0xAA, 0xF6,
+               0xE6, 0xAA, 0xA8, 0xF6, 0xF0, 0xA3, 0x9A, 0xA3,
+               0xF6, 0xE6, 0xAB, 0x9B, 0xF6, 0xE3, 0xB0, 0x98,
+               0xF6, 0xE6, 0xAC, 0xA1, 0xF6, 0xF0, 0xA3, 0xA2,
+               0xA7, 0xF6, 0xE6, 0xAD, 0x94, 0xF6, 0xE3, 0xB1,
+               0x8E, 0xF6, 0xE6, 0xAD, 0xB2, 0xF6, 0xE6, 0xAE,
+               0x9F, 0xF6, 0xE6, 0xAE, 0xBA, 0xF6, 0xE6, 0xAE,
+               0xBB, 0xF6, 0xF0, 0xA3, 0xAA, 0x8D, 0xF6, 0xF0,
+               0xA1, 0xB4, 0x8B, 0xF6, 0xF0, 0xA3, 0xAB, 0xBA,
+               0xF6, 0xE6, 0xB1, 0x8E, 0xF6, 0xF0, 0xA3, 0xB2,
+               0xBC, 0xF6, 0xE6, 0xB2, 0xBF, 0xF6, 0xE6, 0xB3,
+               0x8D, 0xF6, 0xE6, 0xB1, 0xA7, 0xF6, 0xE6, 0xB4,
+               0x96, 0xF6, 0xE6, 0xB4, 0xBE, 0xF6, 0xE6, 0xB5,
+               0xB7, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6, 0xB5,
+               0xA9, 0xF6, 0xE6, 0xB5, 0xB8, 0xF6, 0xE6, 0xB6,
+               0x85, 0xF6, 0xF0, 0xA3, 0xB4, 0x9E, 0xF6, 0xE6,
+               0xB4, 0xB4, 0xF6, 0xE6, 0xB8, 0xAF, 0xF6, 0xE6,
+               0xB9, 0xAE, 0xF6, 0xE3, 0xB4, 0xB3, 0xF6, 0xE6,
+               0xBB, 0x8B, 0xF6, 0xE6, 0xBB, 0x87, 0xF6, 0xF0,
+               0xA3, 0xBB, 0x91, 0xF6, 0xE6, 0xB7, 0xB9, 0xF6,
+               0xE6, 0xBD, 0xAE, 0xF6, 0xF0, 0xA3, 0xBD, 0x9E,
+               0xF6, 0xF0, 0xA3, 0xBE, 0x8E, 0xF6, 0xE6, 0xBF,
+               0x86, 0xF6, 0xE7, 0x80, 0xB9, 0xF6, 0xE7, 0x80,
+               0x9E, 0xF6, 0xE7, 0x80, 0x9B, 0xF6, 0xE3, 0xB6,
+               0x96, 0xF6, 0xE7, 0x81, 0x8A, 0xF6, 0xE7, 0x81,
+               0xBD, 0xF6, 0xE7, 0x81, 0xB7, 0xF6, 0xE7, 0x82,
+               0xAD, 0xF6, 0xF0, 0xA0, 0x94, 0xA5, 0xF6, 0xE7,
+               0x85, 0x85, 0xF6, 0xF0, 0xA4, 0x89, 0xA3, 0xF6,
+               0xE7, 0x86, 0x9C, 0xF6, 0xF0, 0xA4, 0x8E, 0xAB,
+               0xF6, 0xE7, 0x88, 0xA8, 0xF6, 0xE7, 0x88, 0xB5,
+               0xF6, 0xE7, 0x89, 0x90, 0xF6, 0xF0, 0xA4, 0x98,
+               0x88, 0xF6, 0xE7, 0x8A, 0x80, 0xF6, 0xE7, 0x8A,
+               0x95, 0xF6, 0xF0, 0xA4, 0x9C, 0xB5, 0xF6, 0xF0,
+               0xA4, 0xA0, 0x94, 0xF6, 0xE7, 0x8D, 0xBA, 0xF6,
+               0xE7, 0x8E, 0x8B, 0xF6, 0xE3, 0xBA, 0xAC, 0xF6,
+               0xE7, 0x8E, 0xA5, 0xF6, 0xE3, 0xBA, 0xB8, 0xF6,
+               0xE3, 0xBA, 0xB8, 0xF6, 0xE7, 0x91, 0x87, 0xF6,
+               0xE7, 0x91, 0x9C, 0xF6, 0xE7, 0x91, 0xB1, 0xF6,
+               0xE7, 0x92, 0x85, 0xF6, 0xE7, 0x93, 0x8A, 0xF6,
+               0xE3, 0xBC, 0x9B, 0xF6, 0xE7, 0x94, 0xA4, 0xF6,
+               0xF0, 0xA4, 0xB0, 0xB6, 0xF6, 0xE7, 0x94, 0xBE,
+               0xF6, 0xF0, 0xA4, 0xB2, 0x92, 0xF6, 0xE7, 0x95,
+               0xB0, 0xF6, 0xF0, 0xA2, 0x86, 0x9F, 0xF6, 0xE7,
+               0x98, 0x90, 0xF6, 0xF0, 0xA4, 0xBE, 0xA1, 0xF6,
+               0xF0, 0xA4, 0xBE, 0xB8, 0xF6, 0xF0, 0xA5, 0x81,
+               0x84, 0xF6, 0xE3, 0xBF, 0xBC, 0xF6, 0xE4, 0x80,
+               0x88, 0xF6, 0xE7, 0x9B, 0xB4, 0xF6, 0xF0, 0xA5,
+               0x83, 0xB3, 0xF6, 0xF0, 0xA5, 0x83, 0xB2, 0xF6,
+               0xF0, 0xA5, 0x84, 0x99, 0xF6, 0xF0, 0xA5, 0x84,
+               0xB3, 0xF6, 0xE7, 0x9C, 0x9E, 0xF6, 0xE7, 0x9C,
+               0x9F, 0xF6, 0xE7, 0x9C, 0x9F, 0xF6, 0xE7, 0x9D,
+               0x8A, 0xF6, 0xE4, 0x80, 0xB9, 0xF6, 0xE7, 0x9E,
+               0x8B, 0xF6, 0xE4, 0x81, 0x86, 0xF6, 0xE4, 0x82,
+               0x96, 0xF6, 0xF0, 0xA5, 0x90, 0x9D, 0xF6, 0xE7,
+               0xA1, 0x8E, 0xF6, 0xE7, 0xA2, 0x8C, 0xF6, 0xE7,
+               0xA3, 0x8C, 0xF6, 0xE4, 0x83, 0xA3, 0xF6, 0xF0,
+               0xA5, 0x98, 0xA6, 0xF6, 0xE7, 0xA5, 0x96, 0xF6,
+               0xF0, 0xA5, 0x9A, 0x9A, 0xF6, 0xF0, 0xA5, 0x9B,
+               0x85, 0xF6, 0xE7, 0xA6, 0x8F, 0xF6, 0xE7, 0xA7,
+               0xAB, 0xF6, 0xE4, 0x84, 0xAF, 0xF6, 0xE7, 0xA9,
+               0x80, 0xF6, 0xE7, 0xA9, 0x8A, 0xF6, 0xE7, 0xA9,
+               0x8F, 0xF6, 0xF0, 0xA5, 0xA5, 0xBC, 0xF6, 0xF0,
+               0xA5, 0xAA, 0xA7, 0xF6, 0xF0, 0xA5, 0xAA, 0xA7,
+               0xF6, 0xE7, 0xAB, 0xAE, 0xF6, 0xE4, 0x88, 0x82,
+               0xF6, 0xF0, 0xA5, 0xAE, 0xAB, 0xF6, 0xE7, 0xAF,
+               0x86, 0xF6, 0xE7, 0xAF, 0x89, 0xF6, 0xE4, 0x88,
+               0xA7, 0xF6, 0xF0, 0xA5, 0xB2, 0x80, 0xF6, 0xE7,
+               0xB3, 0x92, 0xF6, 0xE4, 0x8A, 0xA0, 0xF6, 0xE7,
+               0xB3, 0xA8, 0xF6, 0xE7, 0xB3, 0xA3, 0xF6, 0xE7,
+               0xB4, 0x80, 0xF6, 0xF0, 0xA5, 0xBE, 0x86, 0xF6,
+               0xE7, 0xB5, 0xA3, 0xF6, 0xE4, 0x8C, 0x81, 0xF6,
+               0xE7, 0xB7, 0x87, 0xF6, 0xE7, 0xB8, 0x82, 0xF6,
+               0xE7, 0xB9, 0x85, 0xF6, 0xE4, 0x8C, 0xB4, 0xF6,
+               0xF0, 0xA6, 0x88, 0xA8, 0xF6, 0xF0, 0xA6, 0x89,
+               0x87, 0xF6, 0xE4, 0x8D, 0x99, 0xF6, 0xF0, 0xA6,
+               0x8B, 0x99, 0xF6, 0xE7, 0xBD, 0xBA, 0xF6, 0xF0,
+               0xA6, 0x8C, 0xBE, 0xF6, 0xE7, 0xBE, 0x95, 0xF6,
+               0xE7, 0xBF, 0xBA, 0xF6, 0xE8, 0x80, 0x85, 0xF6,
+               0xF0, 0xA6, 0x93, 0x9A, 0xF6, 0xF0, 0xA6, 0x94,
+               0xA3, 0xF6, 0xE8, 0x81, 0xA0, 0xF6, 0xF0, 0xA6,
+               0x96, 0xA8, 0xF6, 0xE8, 0x81, 0xB0, 0xF6, 0xF0,
+               0xA3, 0x8D, 0x9F, 0xF6, 0xE4, 0x8F, 0x95, 0xF6,
+               0xE8, 0x82, 0xB2, 0xF6, 0xE8, 0x84, 0x83, 0xF6,
+               0xE4, 0x90, 0x8B, 0xF6, 0xE8, 0x84, 0xBE, 0xF6,
+               0xE5, 0xAA, 0xB5, 0xF6, 0xF0, 0xA6, 0x9E, 0xA7,
+               0xF6, 0xF0, 0xA6, 0x9E, 0xB5, 0xF6, 0xF0, 0xA3,
+               0x8E, 0x93, 0xF6, 0xF0, 0xA3, 0x8E, 0x9C, 0xF6,
+               0xE8, 0x88, 0x81, 0xF6, 0xE8, 0x88, 0x84, 0xF6,
+               0xE8, 0xBE, 0x9E, 0xF6, 0xE4, 0x91, 0xAB, 0xF6,
+               0xE8, 0x8A, 0x91, 0xF6, 0xE8, 0x8A, 0x8B, 0xF6,
+               0xE8, 0x8A, 0x9D, 0xF6, 0xE5, 0x8A, 0xB3, 0xF6,
+               0xE8, 0x8A, 0xB1, 0xF6, 0xE8, 0x8A, 0xB3, 0xF6,
+               0xE8, 0x8A, 0xBD, 0xF6, 0xE8, 0x8B, 0xA6, 0xF6,
+               0xF0, 0xA6, 0xAC, 0xBC, 0xF6, 0xE8, 0x8B, 0xA5,
+               0xF6, 0xE8, 0x8C, 0x9D, 0xF6, 0xE8, 0x8D, 0xA3,
+               0xF6, 0xE8, 0x8E, 0xAD, 0xF6, 0xE8, 0x8C, 0xA3,
+               0xF6, 0xE8, 0x8E, 0xBD, 0xF6, 0xE8, 0x8F, 0xA7,
+               0xF6, 0xE8, 0x91, 0x97, 0xF6, 0xE8, 0x8D, 0x93,
+               0xF6, 0xE8, 0x8F, 0x8A, 0xF6, 0xE8, 0x8F, 0x8C,
+               0xF6, 0xE8, 0x8F, 0x9C, 0xF6, 0xF0, 0xA6, 0xB0,
+               0xB6, 0xF6, 0xF0, 0xA6, 0xB5, 0xAB, 0xF6, 0xF0,
+               0xA6, 0xB3, 0x95, 0xF6, 0xE4, 0x94, 0xAB, 0xF6,
+               0xE8, 0x93, 0xB1, 0xF6, 0xE8, 0x93, 0xB3, 0xF6,
+               0xE8, 0x94, 0x96, 0xF6, 0xF0, 0xA7, 0x8F, 0x8A,
+               0xF6, 0xE8, 0x95, 0xA4, 0xF6, 0xF0, 0xA6, 0xBC,
+               0xAC, 0xF6, 0xE4, 0x95, 0x9D, 0xF6, 0xE4, 0x95,
+               0xA1, 0xF6, 0xF0, 0xA6, 0xBE, 0xB1, 0xF6, 0xF0,
+               0xA7, 0x83, 0x92, 0xF6, 0xE4, 0x95, 0xAB, 0xF6,
+               0xE8, 0x99, 0x90, 0xF6, 0xE8, 0x99, 0x9C, 0xF6,
+               0xE8, 0x99, 0xA7, 0xF6, 0xE8, 0x99, 0xA9, 0xF6,
+               0xE8, 0x9A, 0xA9, 0xF6, 0xE8, 0x9A, 0x88, 0xF6,
+               0xE8, 0x9C, 0x8E, 0xF6, 0xE8, 0x9B, 0xA2, 0xF6,
+               0xE8, 0x9D, 0xB9, 0xF6, 0xE8, 0x9C, 0xA8, 0xF6,
+               0xE8, 0x9D, 0xAB, 0xF6, 0xE8, 0x9E, 0x86, 0xF6,
+               0xE4, 0x97, 0x97, 0xF6, 0xE8, 0x9F, 0xA1, 0xF6,
+               0xE8, 0xA0, 0x81, 0xF6, 0xE4, 0x97, 0xB9, 0xF6,
+               0xE8, 0xA1, 0xA0, 0xF6, 0xE8, 0xA1, 0xA3, 0xF6,
+               0xF0, 0xA7, 0x99, 0xA7, 0xF6, 0xE8, 0xA3, 0x97,
+               0xF6, 0xE8, 0xA3, 0x9E, 0xF6, 0xE4, 0x98, 0xB5,
+               0xF6, 0xE8, 0xA3, 0xBA, 0xF6, 0xE3, 0x92, 0xBB,
+               0xF6, 0xF0, 0xA7, 0xA2, 0xAE, 0xF6, 0xF0, 0xA7,
+               0xA5, 0xA6, 0xF6, 0xE4, 0x9A, 0xBE, 0xF6, 0xE4,
+               0x9B, 0x87, 0xF6, 0xE8, 0xAA, 0xA0, 0xF6, 0xE8,
+               0xAB, 0xAD, 0xF6, 0xE8, 0xAE, 0x8A, 0xF6, 0xE8,
+               0xB1, 0x95, 0xF6, 0xF0, 0xA7, 0xB2, 0xA8, 0xF6,
+               0xE8, 0xB2, 0xAB, 0xF6, 0xE8, 0xB3, 0x81, 0xF6,
+               0xE8, 0xB4, 0x9B, 0xF6, 0xE8, 0xB5, 0xB7, 0xF6,
+               0xF0, 0xA7, 0xBC, 0xAF, 0xF6, 0xF0, 0xA0, 0xA0,
+               0x84, 0xF6, 0xE8, 0xB7, 0x8B, 0xF6, 0xE8, 0xB6,
+               0xBC, 0xF6, 0xE8, 0xB7, 0xB0, 0xF6, 0xF0, 0xA0,
+               0xA3, 0x9E, 0xF6, 0xE8, 0xBB, 0x94, 0xF6, 0xE8,
+               0xBC, 0xB8, 0xF6, 0xF0, 0xA8, 0x97, 0x92, 0xF6,
+               0xF0, 0xA8, 0x97, 0xAD, 0xF6, 0xE9, 0x82, 0x94,
+               0xF6, 0xE9, 0x83, 0xB1, 0xF6, 0xE9, 0x84, 0x91,
+               0xF6, 0xF0, 0xA8, 0x9C, 0xAE, 0xF6, 0xE9, 0x84,
+               0x9B, 0xF6, 0xE9, 0x88, 0xB8, 0xF6, 0xE9, 0x8B,
+               0x97, 0xF6, 0xE9, 0x8B, 0x98, 0xF6, 0xE9, 0x89,
+               0xBC, 0xF6, 0xE9, 0x8F, 0xB9, 0xF6, 0xE9, 0x90,
+               0x95, 0xF6, 0xF0, 0xA8, 0xAF, 0xBA, 0xF6, 0xE9,
+               0x96, 0x8B, 0xF6, 0xE4, 0xA6, 0x95, 0xF6, 0xE9,
+               0x96, 0xB7, 0xF6, 0xF0, 0xA8, 0xB5, 0xB7, 0xF6,
+               0xE4, 0xA7, 0xA6, 0xF6, 0xE9, 0x9B, 0x83, 0xF6,
+               0xE5, 0xB6, 0xB2, 0xF6, 0xE9, 0x9C, 0xA3, 0xF6,
+               0xF0, 0xA9, 0x85, 0x85, 0xF6, 0xF0, 0xA9, 0x88,
+               0x9A, 0xF6, 0xE4, 0xA9, 0xAE, 0xF6, 0xE4, 0xA9,
+               0xB6, 0xF6, 0xE9, 0x9F, 0xA0, 0xF6, 0xF0, 0xA9,
+               0x90, 0x8A, 0xF6, 0xE4, 0xAA, 0xB2, 0xF6, 0xF0,
+               0xA9, 0x92, 0x96, 0xF6, 0xE9, 0xA0, 0x8B, 0xF6,
+               0xE9, 0xA0, 0x8B, 0xF6, 0xE9, 0xA0, 0xA9, 0xF6,
+               0xF0, 0xA9, 0x96, 0xB6, 0xF6, 0xE9, 0xA3, 0xA2,
+               0xF6, 0xE4, 0xAC, 0xB3, 0xF6, 0xE9, 0xA4, 0xA9,
+               0xF6, 0xE9, 0xA6, 0xA7, 0xF6, 0xE9, 0xA7, 0x82,
+               0xF6, 0xE9, 0xA7, 0xBE, 0xF6, 0xE4, 0xAF, 0x8E,
+               0xF6, 0xF0, 0xA9, 0xAC, 0xB0, 0xF6, 0xE9, 0xAC,
+               0x92, 0xF6, 0xE9, 0xB1, 0x80, 0xF6, 0xE9, 0xB3,
+               0xBD, 0xF6, 0xE4, 0xB3, 0x8E, 0xF6, 0xE4, 0xB3,
+               0xAD, 0xF6, 0xE9, 0xB5, 0xA7, 0xF6, 0xF0, 0xAA,
+               0x83, 0x8E, 0xF6, 0xE4, 0xB3, 0xB8, 0xF6, 0xF0,
+               0xAA, 0x84, 0x85, 0xF6, 0xF0, 0xAA, 0x88, 0x8E,
+               0xF6, 0xF0, 0xAA, 0x8A, 0x91, 0xF6, 0xE9, 0xBA,
+               0xBB, 0xF6, 0xE4, 0xB5, 0x96, 0xF6, 0xE9, 0xBB,
+               0xB9, 0xF6, 0xE9, 0xBB, 0xBE, 0xF6, 0xE9, 0xBC,
+               0x85, 0xF6, 0xE9, 0xBC, 0x8F, 0xF6, 0xE9, 0xBC,
+               0x96, 0xF6, 0xE9, 0xBC, 0xBB, 0xF6, 0xF0, 0xAA,
+               0x98, 0x80,
+       },
+};
+
+static const uchar_t u8_case_common_b2_tbl[2][2][256] = {
+       {
+               {
+                       0,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, 1,  2,  N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, 3,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       4,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+
+       },
+       {
+               {
+                       0,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, 1,  2,  N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, 3,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+               {
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       4,  N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+                       N_, N_, N_, N_, N_, N_, N_, N_,
+               },
+
+       },
+
+};
+
+static const u8_displacement_t u8_tolower_b3_tbl[2][5][256] = {
+       {
+               {       /* Third byte table 0. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { 0, 0 },
+                       { 1, 60 }, { 2, 123 }, { 3, 185 }, { 4, 257 },
+                       { 5, 321 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 6, 373 }, { 7, 439 },
+                       { 8, 465 }, { 9, 561 }, { 10, 593 }, { 11, 649 },
+                       { 12, 703 }, { 13, 749 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 1. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 14, 795 }, { 15, 891 }, { 16, 987 }, { 17, 1068 },
+                       { 18, 1155 }, { 19, 1245 }, { 20, 1299 }, { 21, 1386 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 2. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 22, 1443 }, { 23, 1448 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 24, 1496 }, { 25, 1526 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 3. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 26, 1574 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 4. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 27, 1652 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+       },
+       {
+               {       /* Third byte table 0. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { 0, 0 },
+                       { 1, 60 }, { 2, 123 }, { 3, 185 }, { 4, 257 },
+                       { 5, 321 }, { 6, 383 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 7, 401 }, { 8, 467 },
+                       { 9, 505 }, { 10, 601 }, { 11, 633 }, { 12, 689 },
+                       { 13, 753 }, { 14, 803 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 1. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 15, 849 }, { 16, 945 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 17, 963 }, { 18, 1059 }, { 19, 1155 }, { 20, 1236 },
+                       { 21, 1323 }, { 22, 1413 }, { 23, 1467 }, { 24, 1554 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 2. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 25, 1611 }, { 26, 1619 }, { 27, 1667 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 28, 1670 }, { 29, 1700 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 30, 1748 }, { 31, 1889 }, { 32, 1911 }, { 33, 2007 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 3. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 34, 2061 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 4. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 35, 2139 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+       },
+};
+
+static const uchar_t u8_tolower_b4_tbl[2][36][257] = {
+       {
+               {       /* Fourth byte table 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,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       46,  48,  50,  52,  54,  56,  58,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,
+               },
+               {       /* Fourth byte table 1. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  26,  26,  28,  28,  30,  30,  32,
+                       32,  34,  34,  36,  36,  38,  38,  40,
+                       40,  42,  42,  44,  44,  46,  46,  48,
+                       48,  49,  49,  51,  51,  53,  53,  55,
+                       55,  55,  57,  57,  59,  59,  61,  61,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,
+               },
+               {       /* Fourth byte table 2. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   4,   4,   6,   6,
+                       8,   8,   8,   10,  10,  12,  12,  14,
+                       14,  16,  16,  18,  18,  20,  20,  22,
+                       22,  24,  24,  26,  26,  28,  28,  30,
+                       30,  32,  32,  34,  34,  36,  36,  38,
+                       38,  40,  40,  42,  42,  44,  44,  46,
+                       46,  48,  48,  50,  50,  52,  52,  54,
+                       54,  56,  58,  58,  60,  60,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,
+               },
+               {       /* Fourth byte table 3. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   4,   4,   6,   6,   8,
+                       10,  10,  12,  14,  16,  16,  16,  18,
+                       20,  22,  24,  24,  26,  28,  28,  30,
+                       32,  34,  34,  34,  34,  36,  38,  38,
+                       40,  42,  42,  44,  44,  46,  46,  48,
+                       50,  50,  52,  52,  52,  54,  54,  56,
+                       58,  58,  60,  62,  64,  64,  66,  66,
+                       68,  70,  70,  70,  70,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,
+               },
+               {       /* Fourth byte table 4. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   2,   4,   4,
+                       6,   8,   8,   10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  28,  30,
+                       30,  32,  32,  34,  34,  36,  36,  38,
+                       38,  40,  40,  42,  42,  44,  44,  46,
+                       46,  46,  48,  50,  50,  52,  52,  54,
+                       56,  58,  58,  60,  60,  62,  62,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 5. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  26,  26,  28,  28,  30,  30,  32,
+                       32,  34,  34,  36,  36,  38,  38,  40,
+                       40,  42,  42,  44,  44,  46,  46,  48,
+                       48,  50,  50,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,
+               },
+               {       /* Fourth byte table 6. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   2,
+                       2,   4,   6,   8,   8,   10,  10,  12,
+                       14,  14,  16,  18,  20,  22,  24,  26,
+                       28,  30,  32,  34,  36,  38,  40,  42,
+                       44,  46,  48,  48,  50,  52,  54,  56,
+                       58,  60,  62,  64,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,
+               },
+               {       /* Fourth byte table 7. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   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,   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,   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,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  24,  24,  24,  24,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,
+               },
+               {       /* Fourth byte table 8. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       48,  50,  52,  54,  56,  58,  60,  62,
+                       64,  66,  68,  70,  72,  74,  76,  78,
+                       80,  82,  84,  86,  88,  90,  92,  94,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 9. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  26,  26,  28,  28,  30,  30,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,
+               },
+               {       /* Fourth byte table 10. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  26,  26,  28,  28,  30,  30,  32,
+                       32,  34,  34,  36,  36,  38,  38,  40,
+                       40,  42,  42,  44,  44,  46,  46,  48,
+                       48,  50,  50,  52,  52,  54,  54,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,
+               },
+               {       /* Fourth byte table 11. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   4,   4,   6,   6,
+                       8,   8,   10,  10,  12,  12,  14,  14,
+                       14,  16,  16,  18,  18,  20,  20,  22,
+                       22,  24,  24,  26,  26,  28,  28,  30,
+                       30,  32,  32,  34,  34,  36,  36,  38,
+                       38,  40,  40,  42,  42,  44,  44,  46,
+                       46,  48,  48,  50,  50,  52,  52,  52,
+                       52,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,
+               },
+               {       /* Fourth byte table 12. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   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,   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,   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,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  18,  20,  22,  24,  26,  28,
+                       30,  32,  34,  36,  38,  40,  42,  44,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,
+               },
+               {       /* Fourth byte table 13. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,
+               },
+               {       /* Fourth byte table 14. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   6,   6,   9,   9,   12,
+                       12,  15,  15,  18,  18,  21,  21,  24,
+                       24,  27,  27,  30,  30,  33,  33,  36,
+                       36,  39,  39,  42,  42,  45,  45,  48,
+                       48,  51,  51,  54,  54,  57,  57,  60,
+                       60,  63,  63,  66,  66,  69,  69,  72,
+                       72,  75,  75,  78,  78,  81,  81,  84,
+                       84,  87,  87,  90,  90,  93,  93,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 15. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   6,   6,   9,   9,   12,
+                       12,  15,  15,  18,  18,  21,  21,  24,
+                       24,  27,  27,  30,  30,  33,  33,  36,
+                       36,  39,  39,  42,  42,  45,  45,  48,
+                       48,  51,  51,  54,  54,  57,  57,  60,
+                       60,  63,  63,  66,  66,  69,  69,  72,
+                       72,  75,  75,  78,  78,  81,  81,  84,
+                       84,  87,  87,  90,  90,  93,  93,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 16. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   6,   6,   9,   9,   12,
+                       12,  15,  15,  18,  18,  21,  21,  24,
+                       24,  27,  27,  30,  30,  33,  33,  33,
+                       33,  33,  33,  33,  33,  33,  33,  33,
+                       33,  36,  36,  39,  39,  42,  42,  45,
+                       45,  48,  48,  51,  51,  54,  54,  57,
+                       57,  60,  60,  63,  63,  66,  66,  69,
+                       69,  72,  72,  75,  75,  78,  78,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,
+               },
+               {       /* Fourth byte table 17. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   6,   6,   9,   9,   12,
+                       12,  15,  15,  18,  18,  21,  21,  24,
+                       24,  27,  27,  30,  30,  33,  33,  36,
+                       36,  39,  39,  42,  42,  45,  45,  48,
+                       48,  51,  51,  54,  54,  57,  57,  60,
+                       60,  63,  63,  66,  66,  69,  69,  72,
+                       72,  75,  75,  78,  78,  81,  81,  84,
+                       84,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,
+               },
+               {       /* Fourth byte table 18. */
+                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  27,  30,  33,  36,  39,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  45,  48,  51,  54,  57,  60,  63,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  69,  72,  75,  78,  81,  84,  87,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,
+               },
+               {       /* Fourth byte table 19. */
+                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  21,  21,  24,  24,  27,  27,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  33,  36,  39,  42,  45,  48,  51,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,
+               },
+               {       /* Fourth byte table 20. */
+                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  75,  78,  81,  84,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,
+               },
+               {       /* Fourth byte table 21. */
+                       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,   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,   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,   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,   3,   6,   9,   12,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  18,  21,  24,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  30,  33,  36,  39,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  45,  48,  51,  54,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,
+               },
+               {       /* Fourth byte table 22. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   2,
+                       2,   2,   2,   3,   5,   5,   5,   5,
+                       5,   5,   5,   5,   5,   5,   5,   5,
+                       5,   5,   5,   5,   5,   5,   5,   5,
+                       5,   5,   5,   5,   5,   5,   5,   5,
+                       5,   5,   5,   5,   5,   5,   5,   5,
+                       5,   5,   5,   5,   5,   5,   5,   5,
+                       5,   5,   5,   5,   5,   5,   5,   5,
+                       5,   5,   5,   5,   5,   5,   5,   5,
+                       5,   5,   5,   5,   5,   5,   5,   5,
+                       5,   5,   5,   5,   5,   5,   5,   5,
+                       5,   5,   5,   5,   5,   5,   5,   5,
+                       5,
+               },
+               {       /* Fourth byte table 23. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,
+               },
+               {       /* Fourth byte table 24. */
+                       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,   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,   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,   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,   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,   3,
+                       6,   9,   12,  15,  18,  21,  24,  27,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,
+               },
+               {       /* Fourth byte table 25. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,
+               },
+               {       /* Fourth byte table 26. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   6,   9,   12,  15,  18,
+                       21,  24,  27,  30,  33,  36,  39,  42,
+                       45,  48,  51,  54,  57,  60,  63,  66,
+                       69,  72,  75,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,
+               },
+               {       /* Fourth byte table 27. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  68,  72,  76,  80,  84,  88,  92,
+                       96,  100, 104, 108, 112, 116, 120, 124,
+                       128, 132, 136, 140, 144, 148, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152, 152, 152, 152, 152, 152, 152, 152,
+                       152,
+               },
+               {       /* Fourth byte table 28. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 29. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 30. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 31. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 32. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 33. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 34. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 35. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+       },
+       {
+               {       /* Fourth byte table 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,   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,   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,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       46,  48,  50,  52,  54,  56,  58,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,  60,  60,  60,  60,  60,  60,  60,
+                       60,
+               },
+               {       /* Fourth byte table 1. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  26,  26,  28,  28,  30,  30,  32,
+                       32,  34,  34,  36,  36,  38,  38,  40,
+                       40,  42,  42,  44,  44,  46,  46,  48,
+                       48,  49,  49,  51,  51,  53,  53,  55,
+                       55,  55,  57,  57,  59,  59,  61,  61,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,
+               },
+               {       /* Fourth byte table 2. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   4,   4,   6,   6,
+                       8,   8,   8,   10,  10,  12,  12,  14,
+                       14,  16,  16,  18,  18,  20,  20,  22,
+                       22,  24,  24,  26,  26,  28,  28,  30,
+                       30,  32,  32,  34,  34,  36,  36,  38,
+                       38,  40,  40,  42,  42,  44,  44,  46,
+                       46,  48,  48,  50,  50,  52,  52,  54,
+                       54,  56,  58,  58,  60,  60,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,
+               },
+               {       /* Fourth byte table 3. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   4,   4,   6,   6,   8,
+                       10,  10,  12,  14,  16,  16,  16,  18,
+                       20,  22,  24,  24,  26,  28,  28,  30,
+                       32,  34,  34,  34,  34,  36,  38,  38,
+                       40,  42,  42,  44,  44,  46,  46,  48,
+                       50,  50,  52,  52,  52,  54,  54,  56,
+                       58,  58,  60,  62,  64,  64,  66,  66,
+                       68,  70,  70,  70,  70,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,
+               },
+               {       /* Fourth byte table 4. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   2,   4,   4,
+                       6,   8,   8,   10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  28,  30,
+                       30,  32,  32,  34,  34,  36,  36,  38,
+                       38,  40,  40,  42,  42,  44,  44,  46,
+                       46,  46,  48,  50,  50,  52,  52,  54,
+                       56,  58,  58,  60,  60,  62,  62,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 5. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  26,  26,  28,  28,  30,  30,  32,
+                       32,  34,  34,  36,  36,  38,  38,  40,
+                       40,  42,  42,  44,  44,  46,  46,  48,
+                       48,  50,  50,  52,  52,  52,  52,  52,
+                       52,  52,  52,  55,  57,  57,  59,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,
+               },
+               {       /* Fourth byte table 6. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   4,   6,   8,   10,
+                       10,  12,  12,  14,  14,  16,  16,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,
+               },
+               {       /* Fourth byte table 7. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   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,   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,   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,   2,
+                       2,   4,   6,   8,   8,   10,  10,  12,
+                       14,  14,  16,  18,  20,  22,  24,  26,
+                       28,  30,  32,  34,  36,  38,  40,  42,
+                       44,  46,  48,  48,  50,  52,  54,  56,
+                       58,  60,  62,  64,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,
+               },
+               {       /* Fourth byte table 8. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  24,  24,  24,  24,  26,  26,  26,
+                       28,  28,  30,  32,  32,  32,  34,  36,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,
+               },
+               {       /* Fourth byte table 9. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       48,  50,  52,  54,  56,  58,  60,  62,
+                       64,  66,  68,  70,  72,  74,  76,  78,
+                       80,  82,  84,  86,  88,  90,  92,  94,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 10. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  26,  26,  28,  28,  30,  30,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,
+               },
+               {       /* Fourth byte table 11. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  26,  26,  28,  28,  30,  30,  32,
+                       32,  34,  34,  36,  36,  38,  38,  40,
+                       40,  42,  42,  44,  44,  46,  46,  48,
+                       48,  50,  50,  52,  52,  54,  54,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,
+               },
+               {       /* Fourth byte table 12. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   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,   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,   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,   2,   4,   4,   6,   6,   8,   8,
+                       10,  10,  12,  12,  14,  14,  16,  16,
+                       16,  18,  18,  20,  20,  22,  22,  24,
+                       24,  26,  26,  28,  28,  30,  30,  32,
+                       32,  34,  34,  36,  36,  38,  38,  40,
+                       40,  42,  42,  44,  44,  46,  46,  48,
+                       48,  50,  50,  52,  52,  54,  54,  56,
+                       56,  58,  58,  60,  60,  62,  62,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 13. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  12,  12,  14,  14,  16,
+                       16,  18,  18,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  22,  24,  26,  28,  30,  32,
+                       34,  36,  38,  40,  42,  44,  46,  48,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,
+               },
+               {       /* Fourth byte table 14. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,  46,  46,  46,  46,  46,  46,  46,
+                       46,
+               },
+               {       /* Fourth byte table 15. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 16. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,
+               },
+               {       /* Fourth byte table 17. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   6,   6,   9,   9,   12,
+                       12,  15,  15,  18,  18,  21,  21,  24,
+                       24,  27,  27,  30,  30,  33,  33,  36,
+                       36,  39,  39,  42,  42,  45,  45,  48,
+                       48,  51,  51,  54,  54,  57,  57,  60,
+                       60,  63,  63,  66,  66,  69,  69,  72,
+                       72,  75,  75,  78,  78,  81,  81,  84,
+                       84,  87,  87,  90,  90,  93,  93,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 18. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   6,   6,   9,   9,   12,
+                       12,  15,  15,  18,  18,  21,  21,  24,
+                       24,  27,  27,  30,  30,  33,  33,  36,
+                       36,  39,  39,  42,  42,  45,  45,  48,
+                       48,  51,  51,  54,  54,  57,  57,  60,
+                       60,  63,  63,  66,  66,  69,  69,  72,
+                       72,  75,  75,  78,  78,  81,  81,  84,
+                       84,  87,  87,  90,  90,  93,  93,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 19. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   6,   6,   9,   9,   12,
+                       12,  15,  15,  18,  18,  21,  21,  24,
+                       24,  27,  27,  30,  30,  33,  33,  33,
+                       33,  33,  33,  33,  33,  33,  33,  33,
+                       33,  36,  36,  39,  39,  42,  42,  45,
+                       45,  48,  48,  51,  51,  54,  54,  57,
+                       57,  60,  60,  63,  63,  66,  66,  69,
+                       69,  72,  72,  75,  75,  78,  78,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  81,
+                       81,
+               },
+               {       /* Fourth byte table 20. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   6,   6,   9,   9,   12,
+                       12,  15,  15,  18,  18,  21,  21,  24,
+                       24,  27,  27,  30,  30,  33,  33,  36,
+                       36,  39,  39,  42,  42,  45,  45,  48,
+                       48,  51,  51,  54,  54,  57,  57,  60,
+                       60,  63,  63,  66,  66,  69,  69,  72,
+                       72,  75,  75,  78,  78,  81,  81,  84,
+                       84,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,
+               },
+               {       /* Fourth byte table 21. */
+                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  27,  30,  33,  36,  39,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  45,  48,  51,  54,  57,  60,  63,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  69,  72,  75,  78,  81,  84,  87,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,
+               },
+               {       /* Fourth byte table 22. */
+                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  21,  21,  24,  24,  27,  27,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  33,  36,  39,  42,  45,  48,  51,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,
+               },
+               {       /* Fourth byte table 23. */
+                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  75,  78,  81,  84,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,
+               },
+               {       /* Fourth byte table 24. */
+                       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,   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,   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,   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,   3,   6,   9,   12,  15,  15,  15,
+                       15,  15,  15,  15,  15,  15,  15,  15,
+                       15,  18,  21,  24,  27,  27,  27,  27,
+                       27,  27,  27,  27,  27,  27,  27,  27,
+                       27,  30,  33,  36,  39,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  45,  48,  51,  54,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,  57,  57,  57,  57,  57,  57,  57,
+                       57,
+               },
+               {       /* Fourth byte table 25. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   2,
+                       2,   2,   2,   3,   5,   5,   5,   5,
+                       5,   5,   5,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,
+               },
+               {       /* Fourth byte table 26. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,
+               },
+               {       /* Fourth byte table 27. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 28. */
+                       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,   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,   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,   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,   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,   3,
+                       6,   9,   12,  15,  18,  21,  24,  27,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,
+               },
+               {       /* Fourth byte table 29. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,
+               },
+               {       /* Fourth byte table 30. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 117,
+                       120, 123, 126, 129, 132, 135, 138, 141,
+                       141, 141, 141, 141, 141, 141, 141, 141,
+                       141, 141, 141, 141, 141, 141, 141, 141,
+                       141, 141, 141, 141, 141, 141, 141, 141,
+                       141, 141, 141, 141, 141, 141, 141, 141,
+                       141, 141, 141, 141, 141, 141, 141, 141,
+                       141, 141, 141, 141, 141, 141, 141, 141,
+                       141, 141, 141, 141, 141, 141, 141, 141,
+                       141, 141, 141, 141, 141, 141, 141, 141,
+                       141, 141, 141, 141, 141, 141, 141, 141,
+                       141, 141, 141, 141, 141, 141, 141, 141,
+                       141,
+               },
+               {       /* Fourth byte table 31. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   5,   8,   10,  10,  10,
+                       13,  13,  16,  16,  19,  19,  19,  19,
+                       19,  19,  19,  19,  19,  19,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,  22,  22,  22,  22,  22,  22,  22,
+                       22,
+               },
+               {       /* Fourth byte table 32. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   6,   6,   9,   9,   12,
+                       12,  15,  15,  18,  18,  21,  21,  24,
+                       24,  27,  27,  30,  30,  33,  33,  36,
+                       36,  39,  39,  42,  42,  45,  45,  48,
+                       48,  51,  51,  54,  54,  57,  57,  60,
+                       60,  63,  63,  66,  66,  69,  69,  72,
+                       72,  75,  75,  78,  78,  81,  81,  84,
+                       84,  87,  87,  90,  90,  93,  93,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 33. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   3,   6,   6,   9,   9,   12,
+                       12,  15,  15,  18,  18,  21,  21,  24,
+                       24,  27,  27,  30,  30,  33,  33,  36,
+                       36,  39,  39,  42,  42,  45,  45,  48,
+                       48,  51,  51,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,
+               },
+               {       /* Fourth byte table 34. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   6,   9,   12,  15,  18,
+                       21,  24,  27,  30,  33,  36,  39,  42,
+                       45,  48,  51,  54,  57,  60,  63,  66,
+                       69,  72,  75,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,
+               },
+               {       /* Fourth byte table 35. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  68,  72,  76,  80,  84,  88,  92,
+                       96,  100, 104, 108, 112, 116, 120, 124,
+                       128, 132, 136, 140, 144, 148, 152, 156,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160, 160, 160, 160, 160, 160, 160, 160,
+                       160,
+               },
+       },
+};
+
+static const uchar_t u8_tolower_final_tbl[2][2299] = {
+       {
+               0xC3, 0xA0, 0xC3, 0xA1, 0xC3, 0xA2, 0xC3, 0xA3,
+               0xC3, 0xA4, 0xC3, 0xA5, 0xC3, 0xA6, 0xC3, 0xA7,
+               0xC3, 0xA8, 0xC3, 0xA9, 0xC3, 0xAA, 0xC3, 0xAB,
+               0xC3, 0xAC, 0xC3, 0xAD, 0xC3, 0xAE, 0xC3, 0xAF,
+               0xC3, 0xB0, 0xC3, 0xB1, 0xC3, 0xB2, 0xC3, 0xB3,
+               0xC3, 0xB4, 0xC3, 0xB5, 0xC3, 0xB6, 0xC3, 0xB8,
+               0xC3, 0xB9, 0xC3, 0xBA, 0xC3, 0xBB, 0xC3, 0xBC,
+               0xC3, 0xBD, 0xC3, 0xBE, 0xC4, 0x81, 0xC4, 0x83,
+               0xC4, 0x85, 0xC4, 0x87, 0xC4, 0x89, 0xC4, 0x8B,
+               0xC4, 0x8D, 0xC4, 0x8F, 0xC4, 0x91, 0xC4, 0x93,
+               0xC4, 0x95, 0xC4, 0x97, 0xC4, 0x99, 0xC4, 0x9B,
+               0xC4, 0x9D, 0xC4, 0x9F, 0xC4, 0xA1, 0xC4, 0xA3,
+               0xC4, 0xA5, 0xC4, 0xA7, 0xC4, 0xA9, 0xC4, 0xAB,
+               0xC4, 0xAD, 0xC4, 0xAF, 0x69, 0xC4, 0xB3, 0xC4,
+               0xB5, 0xC4, 0xB7, 0xC4, 0xBA, 0xC4, 0xBC, 0xC4,
+               0xBE, 0xC5, 0x80, 0xC5, 0x82, 0xC5, 0x84, 0xC5,
+               0x86, 0xC5, 0x88, 0xC5, 0x8B, 0xC5, 0x8D, 0xC5,
+               0x8F, 0xC5, 0x91, 0xC5, 0x93, 0xC5, 0x95, 0xC5,
+               0x97, 0xC5, 0x99, 0xC5, 0x9B, 0xC5, 0x9D, 0xC5,
+               0x9F, 0xC5, 0xA1, 0xC5, 0xA3, 0xC5, 0xA5, 0xC5,
+               0xA7, 0xC5, 0xA9, 0xC5, 0xAB, 0xC5, 0xAD, 0xC5,
+               0xAF, 0xC5, 0xB1, 0xC5, 0xB3, 0xC5, 0xB5, 0xC5,
+               0xB7, 0xC3, 0xBF, 0xC5, 0xBA, 0xC5, 0xBC, 0xC5,
+               0xBE, 0xC9, 0x93, 0xC6, 0x83, 0xC6, 0x85, 0xC9,
+               0x94, 0xC6, 0x88, 0xC9, 0x96, 0xC9, 0x97, 0xC6,
+               0x8C, 0xC7, 0x9D, 0xC9, 0x99, 0xC9, 0x9B, 0xC6,
+               0x92, 0xC9, 0xA0, 0xC9, 0xA3, 0xC9, 0xA9, 0xC9,
+               0xA8, 0xC6, 0x99, 0xC9, 0xAF, 0xC9, 0xB2, 0xC9,
+               0xB5, 0xC6, 0xA1, 0xC6, 0xA3, 0xC6, 0xA5, 0xCA,
+               0x80, 0xC6, 0xA8, 0xCA, 0x83, 0xC6, 0xAD, 0xCA,
+               0x88, 0xC6, 0xB0, 0xCA, 0x8A, 0xCA, 0x8B, 0xC6,
+               0xB4, 0xC6, 0xB6, 0xCA, 0x92, 0xC6, 0xB9, 0xC6,
+               0xBD, 0xC7, 0x86, 0xC7, 0x86, 0xC7, 0x89, 0xC7,
+               0x89, 0xC7, 0x8C, 0xC7, 0x8C, 0xC7, 0x8E, 0xC7,
+               0x90, 0xC7, 0x92, 0xC7, 0x94, 0xC7, 0x96, 0xC7,
+               0x98, 0xC7, 0x9A, 0xC7, 0x9C, 0xC7, 0x9F, 0xC7,
+               0xA1, 0xC7, 0xA3, 0xC7, 0xA5, 0xC7, 0xA7, 0xC7,
+               0xA9, 0xC7, 0xAB, 0xC7, 0xAD, 0xC7, 0xAF, 0xC7,
+               0xB3, 0xC7, 0xB3, 0xC7, 0xB5, 0xC6, 0x95, 0xC6,
+               0xBF, 0xC7, 0xB9, 0xC7, 0xBB, 0xC7, 0xBD, 0xC7,
+               0xBF, 0xC8, 0x81, 0xC8, 0x83, 0xC8, 0x85, 0xC8,
+               0x87, 0xC8, 0x89, 0xC8, 0x8B, 0xC8, 0x8D, 0xC8,
+               0x8F, 0xC8, 0x91, 0xC8, 0x93, 0xC8, 0x95, 0xC8,
+               0x97, 0xC8, 0x99, 0xC8, 0x9B, 0xC8, 0x9D, 0xC8,
+               0x9F, 0xC6, 0x9E, 0xC8, 0xA3, 0xC8, 0xA5, 0xC8,
+               0xA7, 0xC8, 0xA9, 0xC8, 0xAB, 0xC8, 0xAD, 0xC8,
+               0xAF, 0xC8, 0xB1, 0xC8, 0xB3, 0xCE, 0xAC, 0xCE,
+               0xAD, 0xCE, 0xAE, 0xCE, 0xAF, 0xCF, 0x8C, 0xCF,
+               0x8D, 0xCF, 0x8E, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE,
+               0xB3, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE,
+               0xB7, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE,
+               0xBB, 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE,
+               0xBF, 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x83, 0xCF,
+               0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xCF,
+               0x88, 0xCF, 0x89, 0xCF, 0x8A, 0xCF, 0x8B, 0xCF,
+               0x99, 0xCF, 0x9B, 0xCF, 0x9D, 0xCF, 0x9F, 0xCF,
+               0xA1, 0xCF, 0xA3, 0xCF, 0xA5, 0xCF, 0xA7, 0xCF,
+               0xA9, 0xCF, 0xAB, 0xCF, 0xAD, 0xCF, 0xAF, 0xCE,
+               0xB8, 0xD1, 0x90, 0xD1, 0x91, 0xD1, 0x92, 0xD1,
+               0x93, 0xD1, 0x94, 0xD1, 0x95, 0xD1, 0x96, 0xD1,
+               0x97, 0xD1, 0x98, 0xD1, 0x99, 0xD1, 0x9A, 0xD1,
+               0x9B, 0xD1, 0x9C, 0xD1, 0x9D, 0xD1, 0x9E, 0xD1,
+               0x9F, 0xD0, 0xB0, 0xD0, 0xB1, 0xD0, 0xB2, 0xD0,
+               0xB3, 0xD0, 0xB4, 0xD0, 0xB5, 0xD0, 0xB6, 0xD0,
+               0xB7, 0xD0, 0xB8, 0xD0, 0xB9, 0xD0, 0xBA, 0xD0,
+               0xBB, 0xD0, 0xBC, 0xD0, 0xBD, 0xD0, 0xBE, 0xD0,
+               0xBF, 0xD1, 0x80, 0xD1, 0x81, 0xD1, 0x82, 0xD1,
+               0x83, 0xD1, 0x84, 0xD1, 0x85, 0xD1, 0x86, 0xD1,
+               0x87, 0xD1, 0x88, 0xD1, 0x89, 0xD1, 0x8A, 0xD1,
+               0x8B, 0xD1, 0x8C, 0xD1, 0x8D, 0xD1, 0x8E, 0xD1,
+               0x8F, 0xD1, 0xA1, 0xD1, 0xA3, 0xD1, 0xA5, 0xD1,
+               0xA7, 0xD1, 0xA9, 0xD1, 0xAB, 0xD1, 0xAD, 0xD1,
+               0xAF, 0xD1, 0xB1, 0xD1, 0xB3, 0xD1, 0xB5, 0xD1,
+               0xB7, 0xD1, 0xB9, 0xD1, 0xBB, 0xD1, 0xBD, 0xD1,
+               0xBF, 0xD2, 0x81, 0xD2, 0x8B, 0xD2, 0x8D, 0xD2,
+               0x8F, 0xD2, 0x91, 0xD2, 0x93, 0xD2, 0x95, 0xD2,
+               0x97, 0xD2, 0x99, 0xD2, 0x9B, 0xD2, 0x9D, 0xD2,
+               0x9F, 0xD2, 0xA1, 0xD2, 0xA3, 0xD2, 0xA5, 0xD2,
+               0xA7, 0xD2, 0xA9, 0xD2, 0xAB, 0xD2, 0xAD, 0xD2,
+               0xAF, 0xD2, 0xB1, 0xD2, 0xB3, 0xD2, 0xB5, 0xD2,
+               0xB7, 0xD2, 0xB9, 0xD2, 0xBB, 0xD2, 0xBD, 0xD2,
+               0xBF, 0xD3, 0x82, 0xD3, 0x84, 0xD3, 0x86, 0xD3,
+               0x88, 0xD3, 0x8A, 0xD3, 0x8C, 0xD3, 0x8E, 0xD3,
+               0x91, 0xD3, 0x93, 0xD3, 0x95, 0xD3, 0x97, 0xD3,
+               0x99, 0xD3, 0x9B, 0xD3, 0x9D, 0xD3, 0x9F, 0xD3,
+               0xA1, 0xD3, 0xA3, 0xD3, 0xA5, 0xD3, 0xA7, 0xD3,
+               0xA9, 0xD3, 0xAB, 0xD3, 0xAD, 0xD3, 0xAF, 0xD3,
+               0xB1, 0xD3, 0xB3, 0xD3, 0xB5, 0xD3, 0xB9, 0xD4,
+               0x81, 0xD4, 0x83, 0xD4, 0x85, 0xD4, 0x87, 0xD4,
+               0x89, 0xD4, 0x8B, 0xD4, 0x8D, 0xD4, 0x8F, 0xD5,
+               0xA1, 0xD5, 0xA2, 0xD5, 0xA3, 0xD5, 0xA4, 0xD5,
+               0xA5, 0xD5, 0xA6, 0xD5, 0xA7, 0xD5, 0xA8, 0xD5,
+               0xA9, 0xD5, 0xAA, 0xD5, 0xAB, 0xD5, 0xAC, 0xD5,
+               0xAD, 0xD5, 0xAE, 0xD5, 0xAF, 0xD5, 0xB0, 0xD5,
+               0xB1, 0xD5, 0xB2, 0xD5, 0xB3, 0xD5, 0xB4, 0xD5,
+               0xB5, 0xD5, 0xB6, 0xD5, 0xB7, 0xD5, 0xB8, 0xD5,
+               0xB9, 0xD5, 0xBA, 0xD5, 0xBB, 0xD5, 0xBC, 0xD5,
+               0xBD, 0xD5, 0xBE, 0xD5, 0xBF, 0xD6, 0x80, 0xD6,
+               0x81, 0xD6, 0x82, 0xD6, 0x83, 0xD6, 0x84, 0xD6,
+               0x85, 0xD6, 0x86, 0xE1, 0xB8, 0x81, 0xE1, 0xB8,
+               0x83, 0xE1, 0xB8, 0x85, 0xE1, 0xB8, 0x87, 0xE1,
+               0xB8, 0x89, 0xE1, 0xB8, 0x8B, 0xE1, 0xB8, 0x8D,
+               0xE1, 0xB8, 0x8F, 0xE1, 0xB8, 0x91, 0xE1, 0xB8,
+               0x93, 0xE1, 0xB8, 0x95, 0xE1, 0xB8, 0x97, 0xE1,
+               0xB8, 0x99, 0xE1, 0xB8, 0x9B, 0xE1, 0xB8, 0x9D,
+               0xE1, 0xB8, 0x9F, 0xE1, 0xB8, 0xA1, 0xE1, 0xB8,
+               0xA3, 0xE1, 0xB8, 0xA5, 0xE1, 0xB8, 0xA7, 0xE1,
+               0xB8, 0xA9, 0xE1, 0xB8, 0xAB, 0xE1, 0xB8, 0xAD,
+               0xE1, 0xB8, 0xAF, 0xE1, 0xB8, 0xB1, 0xE1, 0xB8,
+               0xB3, 0xE1, 0xB8, 0xB5, 0xE1, 0xB8, 0xB7, 0xE1,
+               0xB8, 0xB9, 0xE1, 0xB8, 0xBB, 0xE1, 0xB8, 0xBD,
+               0xE1, 0xB8, 0xBF, 0xE1, 0xB9, 0x81, 0xE1, 0xB9,
+               0x83, 0xE1, 0xB9, 0x85, 0xE1, 0xB9, 0x87, 0xE1,
+               0xB9, 0x89, 0xE1, 0xB9, 0x8B, 0xE1, 0xB9, 0x8D,
+               0xE1, 0xB9, 0x8F, 0xE1, 0xB9, 0x91, 0xE1, 0xB9,
+               0x93, 0xE1, 0xB9, 0x95, 0xE1, 0xB9, 0x97, 0xE1,
+               0xB9, 0x99, 0xE1, 0xB9, 0x9B, 0xE1, 0xB9, 0x9D,
+               0xE1, 0xB9, 0x9F, 0xE1, 0xB9, 0xA1, 0xE1, 0xB9,
+               0xA3, 0xE1, 0xB9, 0xA5, 0xE1, 0xB9, 0xA7, 0xE1,
+               0xB9, 0xA9, 0xE1, 0xB9, 0xAB, 0xE1, 0xB9, 0xAD,
+               0xE1, 0xB9, 0xAF, 0xE1, 0xB9, 0xB1, 0xE1, 0xB9,
+               0xB3, 0xE1, 0xB9, 0xB5, 0xE1, 0xB9, 0xB7, 0xE1,
+               0xB9, 0xB9, 0xE1, 0xB9, 0xBB, 0xE1, 0xB9, 0xBD,
+               0xE1, 0xB9, 0xBF, 0xE1, 0xBA, 0x81, 0xE1, 0xBA,
+               0x83, 0xE1, 0xBA, 0x85, 0xE1, 0xBA, 0x87, 0xE1,
+               0xBA, 0x89, 0xE1, 0xBA, 0x8B, 0xE1, 0xBA, 0x8D,
+               0xE1, 0xBA, 0x8F, 0xE1, 0xBA, 0x91, 0xE1, 0xBA,
+               0x93, 0xE1, 0xBA, 0x95, 0xE1, 0xBA, 0xA1, 0xE1,
+               0xBA, 0xA3, 0xE1, 0xBA, 0xA5, 0xE1, 0xBA, 0xA7,
+               0xE1, 0xBA, 0xA9, 0xE1, 0xBA, 0xAB, 0xE1, 0xBA,
+               0xAD, 0xE1, 0xBA, 0xAF, 0xE1, 0xBA, 0xB1, 0xE1,
+               0xBA, 0xB3, 0xE1, 0xBA, 0xB5, 0xE1, 0xBA, 0xB7,
+               0xE1, 0xBA, 0xB9, 0xE1, 0xBA, 0xBB, 0xE1, 0xBA,
+               0xBD, 0xE1, 0xBA, 0xBF, 0xE1, 0xBB, 0x81, 0xE1,
+               0xBB, 0x83, 0xE1, 0xBB, 0x85, 0xE1, 0xBB, 0x87,
+               0xE1, 0xBB, 0x89, 0xE1, 0xBB, 0x8B, 0xE1, 0xBB,
+               0x8D, 0xE1, 0xBB, 0x8F, 0xE1, 0xBB, 0x91, 0xE1,
+               0xBB, 0x93, 0xE1, 0xBB, 0x95, 0xE1, 0xBB, 0x97,
+               0xE1, 0xBB, 0x99, 0xE1, 0xBB, 0x9B, 0xE1, 0xBB,
+               0x9D, 0xE1, 0xBB, 0x9F, 0xE1, 0xBB, 0xA1, 0xE1,
+               0xBB, 0xA3, 0xE1, 0xBB, 0xA5, 0xE1, 0xBB, 0xA7,
+               0xE1, 0xBB, 0xA9, 0xE1, 0xBB, 0xAB, 0xE1, 0xBB,
+               0xAD, 0xE1, 0xBB, 0xAF, 0xE1, 0xBB, 0xB1, 0xE1,
+               0xBB, 0xB3, 0xE1, 0xBB, 0xB5, 0xE1, 0xBB, 0xB7,
+               0xE1, 0xBB, 0xB9, 0xE1, 0xBC, 0x80, 0xE1, 0xBC,
+               0x81, 0xE1, 0xBC, 0x82, 0xE1, 0xBC, 0x83, 0xE1,
+               0xBC, 0x84, 0xE1, 0xBC, 0x85, 0xE1, 0xBC, 0x86,
+               0xE1, 0xBC, 0x87, 0xE1, 0xBC, 0x90, 0xE1, 0xBC,
+               0x91, 0xE1, 0xBC, 0x92, 0xE1, 0xBC, 0x93, 0xE1,
+               0xBC, 0x94, 0xE1, 0xBC, 0x95, 0xE1, 0xBC, 0xA0,
+               0xE1, 0xBC, 0xA1, 0xE1, 0xBC, 0xA2, 0xE1, 0xBC,
+               0xA3, 0xE1, 0xBC, 0xA4, 0xE1, 0xBC, 0xA5, 0xE1,
+               0xBC, 0xA6, 0xE1, 0xBC, 0xA7, 0xE1, 0xBC, 0xB0,
+               0xE1, 0xBC, 0xB1, 0xE1, 0xBC, 0xB2, 0xE1, 0xBC,
+               0xB3, 0xE1, 0xBC, 0xB4, 0xE1, 0xBC, 0xB5, 0xE1,
+               0xBC, 0xB6, 0xE1, 0xBC, 0xB7, 0xE1, 0xBD, 0x80,
+               0xE1, 0xBD, 0x81, 0xE1, 0xBD, 0x82, 0xE1, 0xBD,
+               0x83, 0xE1, 0xBD, 0x84, 0xE1, 0xBD, 0x85, 0xE1,
+               0xBD, 0x91, 0xE1, 0xBD, 0x93, 0xE1, 0xBD, 0x95,
+               0xE1, 0xBD, 0x97, 0xE1, 0xBD, 0xA0, 0xE1, 0xBD,
+               0xA1, 0xE1, 0xBD, 0xA2, 0xE1, 0xBD, 0xA3, 0xE1,
+               0xBD, 0xA4, 0xE1, 0xBD, 0xA5, 0xE1, 0xBD, 0xA6,
+               0xE1, 0xBD, 0xA7, 0xE1, 0xBE, 0x80, 0xE1, 0xBE,
+               0x81, 0xE1, 0xBE, 0x82, 0xE1, 0xBE, 0x83, 0xE1,
+               0xBE, 0x84, 0xE1, 0xBE, 0x85, 0xE1, 0xBE, 0x86,
+               0xE1, 0xBE, 0x87, 0xE1, 0xBE, 0x90, 0xE1, 0xBE,
+               0x91, 0xE1, 0xBE, 0x92, 0xE1, 0xBE, 0x93, 0xE1,
+               0xBE, 0x94, 0xE1, 0xBE, 0x95, 0xE1, 0xBE, 0x96,
+               0xE1, 0xBE, 0x97, 0xE1, 0xBE, 0xA0, 0xE1, 0xBE,
+               0xA1, 0xE1, 0xBE, 0xA2, 0xE1, 0xBE, 0xA3, 0xE1,
+               0xBE, 0xA4, 0xE1, 0xBE, 0xA5, 0xE1, 0xBE, 0xA6,
+               0xE1, 0xBE, 0xA7, 0xE1, 0xBE, 0xB0, 0xE1, 0xBE,
+               0xB1, 0xE1, 0xBD, 0xB0, 0xE1, 0xBD, 0xB1, 0xE1,
+               0xBE, 0xB3, 0xE1, 0xBD, 0xB2, 0xE1, 0xBD, 0xB3,
+               0xE1, 0xBD, 0xB4, 0xE1, 0xBD, 0xB5, 0xE1, 0xBF,
+               0x83, 0xE1, 0xBF, 0x90, 0xE1, 0xBF, 0x91, 0xE1,
+               0xBD, 0xB6, 0xE1, 0xBD, 0xB7, 0xE1, 0xBF, 0xA0,
+               0xE1, 0xBF, 0xA1, 0xE1, 0xBD, 0xBA, 0xE1, 0xBD,
+               0xBB, 0xE1, 0xBF, 0xA5, 0xE1, 0xBD, 0xB8, 0xE1,
+               0xBD, 0xB9, 0xE1, 0xBD, 0xBC, 0xE1, 0xBD, 0xBD,
+               0xE1, 0xBF, 0xB3, 0xCF, 0x89, 0x6B, 0xC3, 0xA5,
+               0xE2, 0x85, 0xB0, 0xE2, 0x85, 0xB1, 0xE2, 0x85,
+               0xB2, 0xE2, 0x85, 0xB3, 0xE2, 0x85, 0xB4, 0xE2,
+               0x85, 0xB5, 0xE2, 0x85, 0xB6, 0xE2, 0x85, 0xB7,
+               0xE2, 0x85, 0xB8, 0xE2, 0x85, 0xB9, 0xE2, 0x85,
+               0xBA, 0xE2, 0x85, 0xBB, 0xE2, 0x85, 0xBC, 0xE2,
+               0x85, 0xBD, 0xE2, 0x85, 0xBE, 0xE2, 0x85, 0xBF,
+               0xE2, 0x93, 0x90, 0xE2, 0x93, 0x91, 0xE2, 0x93,
+               0x92, 0xE2, 0x93, 0x93, 0xE2, 0x93, 0x94, 0xE2,
+               0x93, 0x95, 0xE2, 0x93, 0x96, 0xE2, 0x93, 0x97,
+               0xE2, 0x93, 0x98, 0xE2, 0x93, 0x99, 0xE2, 0x93,
+               0x9A, 0xE2, 0x93, 0x9B, 0xE2, 0x93, 0x9C, 0xE2,
+               0x93, 0x9D, 0xE2, 0x93, 0x9E, 0xE2, 0x93, 0x9F,
+               0xE2, 0x93, 0xA0, 0xE2, 0x93, 0xA1, 0xE2, 0x93,
+               0xA2, 0xE2, 0x93, 0xA3, 0xE2, 0x93, 0xA4, 0xE2,
+               0x93, 0xA5, 0xE2, 0x93, 0xA6, 0xE2, 0x93, 0xA7,
+               0xE2, 0x93, 0xA8, 0xE2, 0x93, 0xA9, 0xEF, 0xBD,
+               0x81, 0xEF, 0xBD, 0x82, 0xEF, 0xBD, 0x83, 0xEF,
+               0xBD, 0x84, 0xEF, 0xBD, 0x85, 0xEF, 0xBD, 0x86,
+               0xEF, 0xBD, 0x87, 0xEF, 0xBD, 0x88, 0xEF, 0xBD,
+               0x89, 0xEF, 0xBD, 0x8A, 0xEF, 0xBD, 0x8B, 0xEF,
+               0xBD, 0x8C, 0xEF, 0xBD, 0x8D, 0xEF, 0xBD, 0x8E,
+               0xEF, 0xBD, 0x8F, 0xEF, 0xBD, 0x90, 0xEF, 0xBD,
+               0x91, 0xEF, 0xBD, 0x92, 0xEF, 0xBD, 0x93, 0xEF,
+               0xBD, 0x94, 0xEF, 0xBD, 0x95, 0xEF, 0xBD, 0x96,
+               0xEF, 0xBD, 0x97, 0xEF, 0xBD, 0x98, 0xEF, 0xBD,
+               0x99, 0xEF, 0xBD, 0x9A, 0xF0, 0x90, 0x90, 0xA8,
+               0xF0, 0x90, 0x90, 0xA9, 0xF0, 0x90, 0x90, 0xAA,
+               0xF0, 0x90, 0x90, 0xAB, 0xF0, 0x90, 0x90, 0xAC,
+               0xF0, 0x90, 0x90, 0xAD, 0xF0, 0x90, 0x90, 0xAE,
+               0xF0, 0x90, 0x90, 0xAF, 0xF0, 0x90, 0x90, 0xB0,
+               0xF0, 0x90, 0x90, 0xB1, 0xF0, 0x90, 0x90, 0xB2,
+               0xF0, 0x90, 0x90, 0xB3, 0xF0, 0x90, 0x90, 0xB4,
+               0xF0, 0x90, 0x90, 0xB5, 0xF0, 0x90, 0x90, 0xB6,
+               0xF0, 0x90, 0x90, 0xB7, 0xF0, 0x90, 0x90, 0xB8,
+               0xF0, 0x90, 0x90, 0xB9, 0xF0, 0x90, 0x90, 0xBA,
+               0xF0, 0x90, 0x90, 0xBB, 0xF0, 0x90, 0x90, 0xBC,
+               0xF0, 0x90, 0x90, 0xBD, 0xF0, 0x90, 0x90, 0xBE,
+               0xF0, 0x90, 0x90, 0xBF, 0xF0, 0x90, 0x91, 0x80,
+               0xF0, 0x90, 0x91, 0x81, 0xF0, 0x90, 0x91, 0x82,
+               0xF0, 0x90, 0x91, 0x83, 0xF0, 0x90, 0x91, 0x84,
+               0xF0, 0x90, 0x91, 0x85, 0xF0, 0x90, 0x91, 0x86,
+               0xF0, 0x90, 0x91, 0x87, 0xF0, 0x90, 0x91, 0x88,
+               0xF0, 0x90, 0x91, 0x89, 0xF0, 0x90, 0x91, 0x8A,
+               0xF0, 0x90, 0x91, 0x8B, 0xF0, 0x90, 0x91, 0x8C,
+               0xF0, 0x90, 0x91, 0x8D, 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,    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,    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,    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,
+               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,    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,    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,    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,    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,    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,    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,    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,
+               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,    0,    0,    0,
+               0,    0,    0,    0,    0,    0,    0,    0,
+               0,    0,    0,
+       },
+       {
+               0xC3, 0xA0, 0xC3, 0xA1, 0xC3, 0xA2, 0xC3, 0xA3,
+               0xC3, 0xA4, 0xC3, 0xA5, 0xC3, 0xA6, 0xC3, 0xA7,
+               0xC3, 0xA8, 0xC3, 0xA9, 0xC3, 0xAA, 0xC3, 0xAB,
+               0xC3, 0xAC, 0xC3, 0xAD, 0xC3, 0xAE, 0xC3, 0xAF,
+               0xC3, 0xB0, 0xC3, 0xB1, 0xC3, 0xB2, 0xC3, 0xB3,
+               0xC3, 0xB4, 0xC3, 0xB5, 0xC3, 0xB6, 0xC3, 0xB8,
+               0xC3, 0xB9, 0xC3, 0xBA, 0xC3, 0xBB, 0xC3, 0xBC,
+               0xC3, 0xBD, 0xC3, 0xBE, 0xC4, 0x81, 0xC4, 0x83,
+               0xC4, 0x85, 0xC4, 0x87, 0xC4, 0x89, 0xC4, 0x8B,
+               0xC4, 0x8D, 0xC4, 0x8F, 0xC4, 0x91, 0xC4, 0x93,
+               0xC4, 0x95, 0xC4, 0x97, 0xC4, 0x99, 0xC4, 0x9B,
+               0xC4, 0x9D, 0xC4, 0x9F, 0xC4, 0xA1, 0xC4, 0xA3,
+               0xC4, 0xA5, 0xC4, 0xA7, 0xC4, 0xA9, 0xC4, 0xAB,
+               0xC4, 0xAD, 0xC4, 0xAF, 0x69, 0xC4, 0xB3, 0xC4,
+               0xB5, 0xC4, 0xB7, 0xC4, 0xBA, 0xC4, 0xBC, 0xC4,
+               0xBE, 0xC5, 0x80, 0xC5, 0x82, 0xC5, 0x84, 0xC5,
+               0x86, 0xC5, 0x88, 0xC5, 0x8B, 0xC5, 0x8D, 0xC5,
+               0x8F, 0xC5, 0x91, 0xC5, 0x93, 0xC5, 0x95, 0xC5,
+               0x97, 0xC5, 0x99, 0xC5, 0x9B, 0xC5, 0x9D, 0xC5,
+               0x9F, 0xC5, 0xA1, 0xC5, 0xA3, 0xC5, 0xA5, 0xC5,
+               0xA7, 0xC5, 0xA9, 0xC5, 0xAB, 0xC5, 0xAD, 0xC5,
+               0xAF, 0xC5, 0xB1, 0xC5, 0xB3, 0xC5, 0xB5, 0xC5,
+               0xB7, 0xC3, 0xBF, 0xC5, 0xBA, 0xC5, 0xBC, 0xC5,
+               0xBE, 0xC9, 0x93, 0xC6, 0x83, 0xC6, 0x85, 0xC9,
+               0x94, 0xC6, 0x88, 0xC9, 0x96, 0xC9, 0x97, 0xC6,
+               0x8C, 0xC7, 0x9D, 0xC9, 0x99, 0xC9, 0x9B, 0xC6,
+               0x92, 0xC9, 0xA0, 0xC9, 0xA3, 0xC9, 0xA9, 0xC9,
+               0xA8, 0xC6, 0x99, 0xC9, 0xAF, 0xC9, 0xB2, 0xC9,
+               0xB5, 0xC6, 0xA1, 0xC6, 0xA3, 0xC6, 0xA5, 0xCA,
+               0x80, 0xC6, 0xA8, 0xCA, 0x83, 0xC6, 0xAD, 0xCA,
+               0x88, 0xC6, 0xB0, 0xCA, 0x8A, 0xCA, 0x8B, 0xC6,
+               0xB4, 0xC6, 0xB6, 0xCA, 0x92, 0xC6, 0xB9, 0xC6,
+               0xBD, 0xC7, 0x86, 0xC7, 0x86, 0xC7, 0x89, 0xC7,
+               0x89, 0xC7, 0x8C, 0xC7, 0x8C, 0xC7, 0x8E, 0xC7,
+               0x90, 0xC7, 0x92, 0xC7, 0x94, 0xC7, 0x96, 0xC7,
+               0x98, 0xC7, 0x9A, 0xC7, 0x9C, 0xC7, 0x9F, 0xC7,
+               0xA1, 0xC7, 0xA3, 0xC7, 0xA5, 0xC7, 0xA7, 0xC7,
+               0xA9, 0xC7, 0xAB, 0xC7, 0xAD, 0xC7, 0xAF, 0xC7,
+               0xB3, 0xC7, 0xB3, 0xC7, 0xB5, 0xC6, 0x95, 0xC6,
+               0xBF, 0xC7, 0xB9, 0xC7, 0xBB, 0xC7, 0xBD, 0xC7,
+               0xBF, 0xC8, 0x81, 0xC8, 0x83, 0xC8, 0x85, 0xC8,
+               0x87, 0xC8, 0x89, 0xC8, 0x8B, 0xC8, 0x8D, 0xC8,
+               0x8F, 0xC8, 0x91, 0xC8, 0x93, 0xC8, 0x95, 0xC8,
+               0x97, 0xC8, 0x99, 0xC8, 0x9B, 0xC8, 0x9D, 0xC8,
+               0x9F, 0xC6, 0x9E, 0xC8, 0xA3, 0xC8, 0xA5, 0xC8,
+               0xA7, 0xC8, 0xA9, 0xC8, 0xAB, 0xC8, 0xAD, 0xC8,
+               0xAF, 0xC8, 0xB1, 0xC8, 0xB3, 0xE2, 0xB1, 0xA5,
+               0xC8, 0xBC, 0xC6, 0x9A, 0xE2, 0xB1, 0xA6, 0xC9,
+               0x82, 0xC6, 0x80, 0xCA, 0x89, 0xCA, 0x8C, 0xC9,
+               0x87, 0xC9, 0x89, 0xC9, 0x8B, 0xC9, 0x8D, 0xC9,
+               0x8F, 0xCE, 0xAC, 0xCE, 0xAD, 0xCE, 0xAE, 0xCE,
+               0xAF, 0xCF, 0x8C, 0xCF, 0x8D, 0xCF, 0x8E, 0xCE,
+               0xB1, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE,
+               0xB5, 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE,
+               0xB9, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE,
+               0xBD, 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF,
+               0x81, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, 0xCF,
+               0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, 0xCF,
+               0x8A, 0xCF, 0x8B, 0xCF, 0x99, 0xCF, 0x9B, 0xCF,
+               0x9D, 0xCF, 0x9F, 0xCF, 0xA1, 0xCF, 0xA3, 0xCF,
+               0xA5, 0xCF, 0xA7, 0xCF, 0xA9, 0xCF, 0xAB, 0xCF,
+               0xAD, 0xCF, 0xAF, 0xCE, 0xB8, 0xCF, 0xB8, 0xCF,
+               0xB2, 0xCF, 0xBB, 0xCD, 0xBB, 0xCD, 0xBC, 0xCD,
+               0xBD, 0xD1, 0x90, 0xD1, 0x91, 0xD1, 0x92, 0xD1,
+               0x93, 0xD1, 0x94, 0xD1, 0x95, 0xD1, 0x96, 0xD1,
+               0x97, 0xD1, 0x98, 0xD1, 0x99, 0xD1, 0x9A, 0xD1,
+               0x9B, 0xD1, 0x9C, 0xD1, 0x9D, 0xD1, 0x9E, 0xD1,
+               0x9F, 0xD0, 0xB0, 0xD0, 0xB1, 0xD0, 0xB2, 0xD0,
+               0xB3, 0xD0, 0xB4, 0xD0, 0xB5, 0xD0, 0xB6, 0xD0,
+               0xB7, 0xD0, 0xB8, 0xD0, 0xB9, 0xD0, 0xBA, 0xD0,
+               0xBB, 0xD0, 0xBC, 0xD0, 0xBD, 0xD0, 0xBE, 0xD0,
+               0xBF, 0xD1, 0x80, 0xD1, 0x81, 0xD1, 0x82, 0xD1,
+               0x83, 0xD1, 0x84, 0xD1, 0x85, 0xD1, 0x86, 0xD1,
+               0x87, 0xD1, 0x88, 0xD1, 0x89, 0xD1, 0x8A, 0xD1,
+               0x8B, 0xD1, 0x8C, 0xD1, 0x8D, 0xD1, 0x8E, 0xD1,
+               0x8F, 0xD1, 0xA1, 0xD1, 0xA3, 0xD1, 0xA5, 0xD1,
+               0xA7, 0xD1, 0xA9, 0xD1, 0xAB, 0xD1, 0xAD, 0xD1,
+               0xAF, 0xD1, 0xB1, 0xD1, 0xB3, 0xD1, 0xB5, 0xD1,
+               0xB7, 0xD1, 0xB9, 0xD1, 0xBB, 0xD1, 0xBD, 0xD1,
+               0xBF, 0xD2, 0x81, 0xD2, 0x8B, 0xD2, 0x8D, 0xD2,
+               0x8F, 0xD2, 0x91, 0xD2, 0x93, 0xD2, 0x95, 0xD2,
+               0x97, 0xD2, 0x99, 0xD2, 0x9B, 0xD2, 0x9D, 0xD2,
+               0x9F, 0xD2, 0xA1, 0xD2, 0xA3, 0xD2, 0xA5, 0xD2,
+               0xA7, 0xD2, 0xA9, 0xD2, 0xAB, 0xD2, 0xAD, 0xD2,
+               0xAF, 0xD2, 0xB1, 0xD2, 0xB3, 0xD2, 0xB5, 0xD2,
+               0xB7, 0xD2, 0xB9, 0xD2, 0xBB, 0xD2, 0xBD, 0xD2,
+               0xBF, 0xD3, 0x8F, 0xD3, 0x82, 0xD3, 0x84, 0xD3,
+               0x86, 0xD3, 0x88, 0xD3, 0x8A, 0xD3, 0x8C, 0xD3,
+               0x8E, 0xD3, 0x91, 0xD3, 0x93, 0xD3, 0x95, 0xD3,
+               0x97, 0xD3, 0x99, 0xD3, 0x9B, 0xD3, 0x9D, 0xD3,
+               0x9F, 0xD3, 0xA1, 0xD3, 0xA3, 0xD3, 0xA5, 0xD3,
+               0xA7, 0xD3, 0xA9, 0xD3, 0xAB, 0xD3, 0xAD, 0xD3,
+               0xAF, 0xD3, 0xB1, 0xD3, 0xB3, 0xD3, 0xB5, 0xD3,
+               0xB7, 0xD3, 0xB9, 0xD3, 0xBB, 0xD3, 0xBD, 0xD3,
+               0xBF, 0xD4, 0x81, 0xD4, 0x83, 0xD4, 0x85, 0xD4,
+               0x87, 0xD4, 0x89, 0xD4, 0x8B, 0xD4, 0x8D, 0xD4,
+               0x8F, 0xD4, 0x91, 0xD4, 0x93, 0xD5, 0xA1, 0xD5,
+               0xA2, 0xD5, 0xA3, 0xD5, 0xA4, 0xD5, 0xA5, 0xD5,
+               0xA6, 0xD5, 0xA7, 0xD5, 0xA8, 0xD5, 0xA9, 0xD5,
+               0xAA, 0xD5, 0xAB, 0xD5, 0xAC, 0xD5, 0xAD, 0xD5,
+               0xAE, 0xD5, 0xAF, 0xD5, 0xB0, 0xD5, 0xB1, 0xD5,
+               0xB2, 0xD5, 0xB3, 0xD5, 0xB4, 0xD5, 0xB5, 0xD5,
+               0xB6, 0xD5, 0xB7, 0xD5, 0xB8, 0xD5, 0xB9, 0xD5,
+               0xBA, 0xD5, 0xBB, 0xD5, 0xBC, 0xD5, 0xBD, 0xD5,
+               0xBE, 0xD5, 0xBF, 0xD6, 0x80, 0xD6, 0x81, 0xD6,
+               0x82, 0xD6, 0x83, 0xD6, 0x84, 0xD6, 0x85, 0xD6,
+               0x86, 0xE2, 0xB4, 0x80, 0xE2, 0xB4, 0x81, 0xE2,
+               0xB4, 0x82, 0xE2, 0xB4, 0x83, 0xE2, 0xB4, 0x84,
+               0xE2, 0xB4, 0x85, 0xE2, 0xB4, 0x86, 0xE2, 0xB4,
+               0x87, 0xE2, 0xB4, 0x88, 0xE2, 0xB4, 0x89, 0xE2,
+               0xB4, 0x8A, 0xE2, 0xB4, 0x8B, 0xE2, 0xB4, 0x8C,
+               0xE2, 0xB4, 0x8D, 0xE2, 0xB4, 0x8E, 0xE2, 0xB4,
+               0x8F, 0xE2, 0xB4, 0x90, 0xE2, 0xB4, 0x91, 0xE2,
+               0xB4, 0x92, 0xE2, 0xB4, 0x93, 0xE2, 0xB4, 0x94,
+               0xE2, 0xB4, 0x95, 0xE2, 0xB4, 0x96, 0xE2, 0xB4,
+               0x97, 0xE2, 0xB4, 0x98, 0xE2, 0xB4, 0x99, 0xE2,
+               0xB4, 0x9A, 0xE2, 0xB4, 0x9B, 0xE2, 0xB4, 0x9C,
+               0xE2, 0xB4, 0x9D, 0xE2, 0xB4, 0x9E, 0xE2, 0xB4,
+               0x9F, 0xE2, 0xB4, 0xA0, 0xE2, 0xB4, 0xA1, 0xE2,
+               0xB4, 0xA2, 0xE2, 0xB4, 0xA3, 0xE2, 0xB4, 0xA4,
+               0xE2, 0xB4, 0xA5, 0xE1, 0xB8, 0x81, 0xE1, 0xB8,
+               0x83, 0xE1, 0xB8, 0x85, 0xE1, 0xB8, 0x87, 0xE1,
+               0xB8, 0x89, 0xE1, 0xB8, 0x8B, 0xE1, 0xB8, 0x8D,
+               0xE1, 0xB8, 0x8F, 0xE1, 0xB8, 0x91, 0xE1, 0xB8,
+               0x93, 0xE1, 0xB8, 0x95, 0xE1, 0xB8, 0x97, 0xE1,
+               0xB8, 0x99, 0xE1, 0xB8, 0x9B, 0xE1, 0xB8, 0x9D,
+               0xE1, 0xB8, 0x9F, 0xE1, 0xB8, 0xA1, 0xE1, 0xB8,
+               0xA3, 0xE1, 0xB8, 0xA5, 0xE1, 0xB8, 0xA7, 0xE1,
+               0xB8, 0xA9, 0xE1, 0xB8, 0xAB, 0xE1, 0xB8, 0xAD,
+               0xE1, 0xB8, 0xAF, 0xE1, 0xB8, 0xB1, 0xE1, 0xB8,
+               0xB3, 0xE1, 0xB8, 0xB5, 0xE1, 0xB8, 0xB7, 0xE1,
+               0xB8, 0xB9, 0xE1, 0xB8, 0xBB, 0xE1, 0xB8, 0xBD,
+               0xE1, 0xB8, 0xBF, 0xE1, 0xB9, 0x81, 0xE1, 0xB9,
+               0x83, 0xE1, 0xB9, 0x85, 0xE1, 0xB9, 0x87, 0xE1,
+               0xB9, 0x89, 0xE1, 0xB9, 0x8B, 0xE1, 0xB9, 0x8D,
+               0xE1, 0xB9, 0x8F, 0xE1, 0xB9, 0x91, 0xE1, 0xB9,
+               0x93, 0xE1, 0xB9, 0x95, 0xE1, 0xB9, 0x97, 0xE1,
+               0xB9, 0x99, 0xE1, 0xB9, 0x9B, 0xE1, 0xB9, 0x9D,
+               0xE1, 0xB9, 0x9F, 0xE1, 0xB9, 0xA1, 0xE1, 0xB9,
+               0xA3, 0xE1, 0xB9, 0xA5, 0xE1, 0xB9, 0xA7, 0xE1,
+               0xB9, 0xA9, 0xE1, 0xB9, 0xAB, 0xE1, 0xB9, 0xAD,
+               0xE1, 0xB9, 0xAF, 0xE1, 0xB9, 0xB1, 0xE1, 0xB9,
+               0xB3, 0xE1, 0xB9, 0xB5, 0xE1, 0xB9, 0xB7, 0xE1,
+               0xB9, 0xB9, 0xE1, 0xB9, 0xBB, 0xE1, 0xB9, 0xBD,
+               0xE1, 0xB9, 0xBF, 0xE1, 0xBA, 0x81, 0xE1, 0xBA,
+               0x83, 0xE1, 0xBA, 0x85, 0xE1, 0xBA, 0x87, 0xE1,
+               0xBA, 0x89, 0xE1, 0xBA, 0x8B, 0xE1, 0xBA, 0x8D,
+               0xE1, 0xBA, 0x8F, 0xE1, 0xBA, 0x91, 0xE1, 0xBA,
+               0x93, 0xE1, 0xBA, 0x95, 0xE1, 0xBA, 0xA1, 0xE1,
+               0xBA, 0xA3, 0xE1, 0xBA, 0xA5, 0xE1, 0xBA, 0xA7,
+               0xE1, 0xBA, 0xA9, 0xE1, 0xBA, 0xAB, 0xE1, 0xBA,
+               0xAD, 0xE1, 0xBA, 0xAF, 0xE1, 0xBA, 0xB1, 0xE1,
+               0xBA, 0xB3, 0xE1, 0xBA, 0xB5, 0xE1, 0xBA, 0xB7,
+               0xE1, 0xBA, 0xB9, 0xE1, 0xBA, 0xBB, 0xE1, 0xBA,
+               0xBD, 0xE1, 0xBA, 0xBF, 0xE1, 0xBB, 0x81, 0xE1,
+               0xBB, 0x83, 0xE1, 0xBB, 0x85, 0xE1, 0xBB, 0x87,
+               0xE1, 0xBB, 0x89, 0xE1, 0xBB, 0x8B, 0xE1, 0xBB,
+               0x8D, 0xE1, 0xBB, 0x8F, 0xE1, 0xBB, 0x91, 0xE1,
+               0xBB, 0x93, 0xE1, 0xBB, 0x95, 0xE1, 0xBB, 0x97,
+               0xE1, 0xBB, 0x99, 0xE1, 0xBB, 0x9B, 0xE1, 0xBB,
+               0x9D, 0xE1, 0xBB, 0x9F, 0xE1, 0xBB, 0xA1, 0xE1,
+               0xBB, 0xA3, 0xE1, 0xBB, 0xA5, 0xE1, 0xBB, 0xA7,
+               0xE1, 0xBB, 0xA9, 0xE1, 0xBB, 0xAB, 0xE1, 0xBB,
+               0xAD, 0xE1, 0xBB, 0xAF, 0xE1, 0xBB, 0xB1, 0xE1,
+               0xBB, 0xB3, 0xE1, 0xBB, 0xB5, 0xE1, 0xBB, 0xB7,
+               0xE1, 0xBB, 0xB9, 0xE1, 0xBC, 0x80, 0xE1, 0xBC,
+               0x81, 0xE1, 0xBC, 0x82, 0xE1, 0xBC, 0x83, 0xE1,
+               0xBC, 0x84, 0xE1, 0xBC, 0x85, 0xE1, 0xBC, 0x86,
+               0xE1, 0xBC, 0x87, 0xE1, 0xBC, 0x90, 0xE1, 0xBC,
+               0x91, 0xE1, 0xBC, 0x92, 0xE1, 0xBC, 0x93, 0xE1,
+               0xBC, 0x94, 0xE1, 0xBC, 0x95, 0xE1, 0xBC, 0xA0,
+               0xE1, 0xBC, 0xA1, 0xE1, 0xBC, 0xA2, 0xE1, 0xBC,
+               0xA3, 0xE1, 0xBC, 0xA4, 0xE1, 0xBC, 0xA5, 0xE1,
+               0xBC, 0xA6, 0xE1, 0xBC, 0xA7, 0xE1, 0xBC, 0xB0,
+               0xE1, 0xBC, 0xB1, 0xE1, 0xBC, 0xB2, 0xE1, 0xBC,
+               0xB3, 0xE1, 0xBC, 0xB4, 0xE1, 0xBC, 0xB5, 0xE1,
+               0xBC, 0xB6, 0xE1, 0xBC, 0xB7, 0xE1, 0xBD, 0x80,
+               0xE1, 0xBD, 0x81, 0xE1, 0xBD, 0x82, 0xE1, 0xBD,
+               0x83, 0xE1, 0xBD, 0x84, 0xE1, 0xBD, 0x85, 0xE1,
+               0xBD, 0x91, 0xE1, 0xBD, 0x93, 0xE1, 0xBD, 0x95,
+               0xE1, 0xBD, 0x97, 0xE1, 0xBD, 0xA0, 0xE1, 0xBD,
+               0xA1, 0xE1, 0xBD, 0xA2, 0xE1, 0xBD, 0xA3, 0xE1,
+               0xBD, 0xA4, 0xE1, 0xBD, 0xA5, 0xE1, 0xBD, 0xA6,
+               0xE1, 0xBD, 0xA7, 0xE1, 0xBE, 0x80, 0xE1, 0xBE,
+               0x81, 0xE1, 0xBE, 0x82, 0xE1, 0xBE, 0x83, 0xE1,
+               0xBE, 0x84, 0xE1, 0xBE, 0x85, 0xE1, 0xBE, 0x86,
+               0xE1, 0xBE, 0x87, 0xE1, 0xBE, 0x90, 0xE1, 0xBE,
+               0x91, 0xE1, 0xBE, 0x92, 0xE1, 0xBE, 0x93, 0xE1,
+               0xBE, 0x94, 0xE1, 0xBE, 0x95, 0xE1, 0xBE, 0x96,
+               0xE1, 0xBE, 0x97, 0xE1, 0xBE, 0xA0, 0xE1, 0xBE,
+               0xA1, 0xE1, 0xBE, 0xA2, 0xE1, 0xBE, 0xA3, 0xE1,
+               0xBE, 0xA4, 0xE1, 0xBE, 0xA5, 0xE1, 0xBE, 0xA6,
+               0xE1, 0xBE, 0xA7, 0xE1, 0xBE, 0xB0, 0xE1, 0xBE,
+               0xB1, 0xE1, 0xBD, 0xB0, 0xE1, 0xBD, 0xB1, 0xE1,
+               0xBE, 0xB3, 0xE1, 0xBD, 0xB2, 0xE1, 0xBD, 0xB3,
+               0xE1, 0xBD, 0xB4, 0xE1, 0xBD, 0xB5, 0xE1, 0xBF,
+               0x83, 0xE1, 0xBF, 0x90, 0xE1, 0xBF, 0x91, 0xE1,
+               0xBD, 0xB6, 0xE1, 0xBD, 0xB7, 0xE1, 0xBF, 0xA0,
+               0xE1, 0xBF, 0xA1, 0xE1, 0xBD, 0xBA, 0xE1, 0xBD,
+               0xBB, 0xE1, 0xBF, 0xA5, 0xE1, 0xBD, 0xB8, 0xE1,
+               0xBD, 0xB9, 0xE1, 0xBD, 0xBC, 0xE1, 0xBD, 0xBD,
+               0xE1, 0xBF, 0xB3, 0xCF, 0x89, 0x6B, 0xC3, 0xA5,
+               0xE2, 0x85, 0x8E, 0xE2, 0x85, 0xB0, 0xE2, 0x85,
+               0xB1, 0xE2, 0x85, 0xB2, 0xE2, 0x85, 0xB3, 0xE2,
+               0x85, 0xB4, 0xE2, 0x85, 0xB5, 0xE2, 0x85, 0xB6,
+               0xE2, 0x85, 0xB7, 0xE2, 0x85, 0xB8, 0xE2, 0x85,
+               0xB9, 0xE2, 0x85, 0xBA, 0xE2, 0x85, 0xBB, 0xE2,
+               0x85, 0xBC, 0xE2, 0x85, 0xBD, 0xE2, 0x85, 0xBE,
+               0xE2, 0x85, 0xBF, 0xE2, 0x86, 0x84, 0xE2, 0x93,
+               0x90, 0xE2, 0x93, 0x91, 0xE2, 0x93, 0x92, 0xE2,
+               0x93, 0x93, 0xE2, 0x93, 0x94, 0xE2, 0x93, 0x95,
+               0xE2, 0x93, 0x96, 0xE2, 0x93, 0x97, 0xE2, 0x93,
+               0x98, 0xE2, 0x93, 0x99, 0xE2, 0x93, 0x9A, 0xE2,
+               0x93, 0x9B, 0xE2, 0x93, 0x9C, 0xE2, 0x93, 0x9D,
+               0xE2, 0x93, 0x9E, 0xE2, 0x93, 0x9F, 0xE2, 0x93,
+               0xA0, 0xE2, 0x93, 0xA1, 0xE2, 0x93, 0xA2, 0xE2,
+               0x93, 0xA3, 0xE2, 0x93, 0xA4, 0xE2, 0x93, 0xA5,
+               0xE2, 0x93, 0xA6, 0xE2, 0x93, 0xA7, 0xE2, 0x93,
+               0xA8, 0xE2, 0x93, 0xA9, 0xE2, 0xB0, 0xB0, 0xE2,
+               0xB0, 0xB1, 0xE2, 0xB0, 0xB2, 0xE2, 0xB0, 0xB3,
+               0xE2, 0xB0, 0xB4, 0xE2, 0xB0, 0xB5, 0xE2, 0xB0,
+               0xB6, 0xE2, 0xB0, 0xB7, 0xE2, 0xB0, 0xB8, 0xE2,
+               0xB0, 0xB9, 0xE2, 0xB0, 0xBA, 0xE2, 0xB0, 0xBB,
+               0xE2, 0xB0, 0xBC, 0xE2, 0xB0, 0xBD, 0xE2, 0xB0,
+               0xBE, 0xE2, 0xB0, 0xBF, 0xE2, 0xB1, 0x80, 0xE2,
+               0xB1, 0x81, 0xE2, 0xB1, 0x82, 0xE2, 0xB1, 0x83,
+               0xE2, 0xB1, 0x84, 0xE2, 0xB1, 0x85, 0xE2, 0xB1,
+               0x86, 0xE2, 0xB1, 0x87, 0xE2, 0xB1, 0x88, 0xE2,
+               0xB1, 0x89, 0xE2, 0xB1, 0x8A, 0xE2, 0xB1, 0x8B,
+               0xE2, 0xB1, 0x8C, 0xE2, 0xB1, 0x8D, 0xE2, 0xB1,
+               0x8E, 0xE2, 0xB1, 0x8F, 0xE2, 0xB1, 0x90, 0xE2,
+               0xB1, 0x91, 0xE2, 0xB1, 0x92, 0xE2, 0xB1, 0x93,
+               0xE2, 0xB1, 0x94, 0xE2, 0xB1, 0x95, 0xE2, 0xB1,
+               0x96, 0xE2, 0xB1, 0x97, 0xE2, 0xB1, 0x98, 0xE2,
+               0xB1, 0x99, 0xE2, 0xB1, 0x9A, 0xE2, 0xB1, 0x9B,
+               0xE2, 0xB1, 0x9C, 0xE2, 0xB1, 0x9D, 0xE2, 0xB1,
+               0x9E, 0xE2, 0xB1, 0xA1, 0xC9, 0xAB, 0xE1, 0xB5,
+               0xBD, 0xC9, 0xBD, 0xE2, 0xB1, 0xA8, 0xE2, 0xB1,
+               0xAA, 0xE2, 0xB1, 0xAC, 0xE2, 0xB1, 0xB6, 0xE2,
+               0xB2, 0x81, 0xE2, 0xB2, 0x83, 0xE2, 0xB2, 0x85,
+               0xE2, 0xB2, 0x87, 0xE2, 0xB2, 0x89, 0xE2, 0xB2,
+               0x8B, 0xE2, 0xB2, 0x8D, 0xE2, 0xB2, 0x8F, 0xE2,
+               0xB2, 0x91, 0xE2, 0xB2, 0x93, 0xE2, 0xB2, 0x95,
+               0xE2, 0xB2, 0x97, 0xE2, 0xB2, 0x99, 0xE2, 0xB2,
+               0x9B, 0xE2, 0xB2, 0x9D, 0xE2, 0xB2, 0x9F, 0xE2,
+               0xB2, 0xA1, 0xE2, 0xB2, 0xA3, 0xE2, 0xB2, 0xA5,
+               0xE2, 0xB2, 0xA7, 0xE2, 0xB2, 0xA9, 0xE2, 0xB2,
+               0xAB, 0xE2, 0xB2, 0xAD, 0xE2, 0xB2, 0xAF, 0xE2,
+               0xB2, 0xB1, 0xE2, 0xB2, 0xB3, 0xE2, 0xB2, 0xB5,
+               0xE2, 0xB2, 0xB7, 0xE2, 0xB2, 0xB9, 0xE2, 0xB2,
+               0xBB, 0xE2, 0xB2, 0xBD, 0xE2, 0xB2, 0xBF, 0xE2,
+               0xB3, 0x81, 0xE2, 0xB3, 0x83, 0xE2, 0xB3, 0x85,
+               0xE2, 0xB3, 0x87, 0xE2, 0xB3, 0x89, 0xE2, 0xB3,
+               0x8B, 0xE2, 0xB3, 0x8D, 0xE2, 0xB3, 0x8F, 0xE2,
+               0xB3, 0x91, 0xE2, 0xB3, 0x93, 0xE2, 0xB3, 0x95,
+               0xE2, 0xB3, 0x97, 0xE2, 0xB3, 0x99, 0xE2, 0xB3,
+               0x9B, 0xE2, 0xB3, 0x9D, 0xE2, 0xB3, 0x9F, 0xE2,
+               0xB3, 0xA1, 0xE2, 0xB3, 0xA3, 0xEF, 0xBD, 0x81,
+               0xEF, 0xBD, 0x82, 0xEF, 0xBD, 0x83, 0xEF, 0xBD,
+               0x84, 0xEF, 0xBD, 0x85, 0xEF, 0xBD, 0x86, 0xEF,
+               0xBD, 0x87, 0xEF, 0xBD, 0x88, 0xEF, 0xBD, 0x89,
+               0xEF, 0xBD, 0x8A, 0xEF, 0xBD, 0x8B, 0xEF, 0xBD,
+               0x8C, 0xEF, 0xBD, 0x8D, 0xEF, 0xBD, 0x8E, 0xEF,
+               0xBD, 0x8F, 0xEF, 0xBD, 0x90, 0xEF, 0xBD, 0x91,
+               0xEF, 0xBD, 0x92, 0xEF, 0xBD, 0x93, 0xEF, 0xBD,
+               0x94, 0xEF, 0xBD, 0x95, 0xEF, 0xBD, 0x96, 0xEF,
+               0xBD, 0x97, 0xEF, 0xBD, 0x98, 0xEF, 0xBD, 0x99,
+               0xEF, 0xBD, 0x9A, 0xF0, 0x90, 0x90, 0xA8, 0xF0,
+               0x90, 0x90, 0xA9, 0xF0, 0x90, 0x90, 0xAA, 0xF0,
+               0x90, 0x90, 0xAB, 0xF0, 0x90, 0x90, 0xAC, 0xF0,
+               0x90, 0x90, 0xAD, 0xF0, 0x90, 0x90, 0xAE, 0xF0,
+               0x90, 0x90, 0xAF, 0xF0, 0x90, 0x90, 0xB0, 0xF0,
+               0x90, 0x90, 0xB1, 0xF0, 0x90, 0x90, 0xB2, 0xF0,
+               0x90, 0x90, 0xB3, 0xF0, 0x90, 0x90, 0xB4, 0xF0,
+               0x90, 0x90, 0xB5, 0xF0, 0x90, 0x90, 0xB6, 0xF0,
+               0x90, 0x90, 0xB7, 0xF0, 0x90, 0x90, 0xB8, 0xF0,
+               0x90, 0x90, 0xB9, 0xF0, 0x90, 0x90, 0xBA, 0xF0,
+               0x90, 0x90, 0xBB, 0xF0, 0x90, 0x90, 0xBC, 0xF0,
+               0x90, 0x90, 0xBD, 0xF0, 0x90, 0x90, 0xBE, 0xF0,
+               0x90, 0x90, 0xBF, 0xF0, 0x90, 0x91, 0x80, 0xF0,
+               0x90, 0x91, 0x81, 0xF0, 0x90, 0x91, 0x82, 0xF0,
+               0x90, 0x91, 0x83, 0xF0, 0x90, 0x91, 0x84, 0xF0,
+               0x90, 0x91, 0x85, 0xF0, 0x90, 0x91, 0x86, 0xF0,
+               0x90, 0x91, 0x87, 0xF0, 0x90, 0x91, 0x88, 0xF0,
+               0x90, 0x91, 0x89, 0xF0, 0x90, 0x91, 0x8A, 0xF0,
+               0x90, 0x91, 0x8B, 0xF0, 0x90, 0x91, 0x8C, 0xF0,
+               0x90, 0x91, 0x8D, 0xF0, 0x90, 0x91, 0x8E, 0xF0,
+               0x90, 0x91, 0x8F,
+       },
+};
+
+static const u8_displacement_t u8_toupper_b3_tbl[2][5][256] = {
+       {
+               {       /* Third byte table 0. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 0, 0 }, { 1, 2 },
+                       { 2, 64 }, { 3, 125 }, { 4, 188 }, { 5, 226 },
+                       { 6, 288 }, { 7, 338 }, { 8, 364 }, { N_, 0 },
+                       { N_, 0 }, { 9, 376 }, { 10, 378 }, { 11, 416 },
+                       { 12, 486 }, { 13, 518 }, { 14, 614 }, { 15, 670 },
+                       { 16, 724 }, { 17, 740 }, { 18, 802 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 1. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 19, 816 }, { 20, 912 }, { 21, 1008 }, { 22, 1092 },
+                       { 23, 1179 }, { 24, 1269 }, { 25, 1365 }, { 26, 1448 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 2. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 27, 1469 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { 28, 1517 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 3. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 29, 1595 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 4. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 30, 1673 }, { 31, 1769 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+       },
+       {
+               {       /* Third byte table 0. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { 0, 0 }, { 1, 2 },
+                       { 2, 64 }, { 3, 125 }, { 4, 188 }, { 5, 230 },
+                       { 6, 292 }, { 7, 344 }, { 8, 388 }, { N_, 0 },
+                       { N_, 0 }, { 9, 404 }, { 10, 412 }, { 11, 450 },
+                       { 12, 524 }, { 13, 556 }, { 14, 652 }, { 15, 708 },
+                       { 16, 772 }, { 17, 792 }, { 18, 854 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 1. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 19, 868 }, { N_, 0 }, { N_, 0 },
+                       { 20, 871 }, { 21, 967 }, { 22, 1063 }, { 23, 1147 },
+                       { 24, 1234 }, { 25, 1324 }, { 26, 1420 }, { 27, 1503 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 2. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 28, 1524 }, { 29, 1575 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { 30, 1578 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 31, 1656 }, { 32, 1704 }, { 33, 1816 }, { 34, 1912 },
+                       { 35, 1966 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 3. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { 36, 2080 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+               {       /* Third byte table 4. */
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { 37, 2158 }, { 38, 2254 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
+               },
+       },
+};
+
+static const uchar_t u8_toupper_b4_tbl[2][39][257] = {
+       {
+               {       /* Fourth byte table 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,   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,   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,   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,   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,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,
+               },
+               {       /* Fourth byte table 1. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       46,  48,  50,  52,  54,  56,  58,  60,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,
+               },
+               {       /* Fourth byte table 2. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   4,   4,   6,   6,
+                       8,   8,   10,  10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  30,  30,
+                       32,  32,  34,  34,  36,  36,  38,  38,
+                       40,  40,  42,  42,  44,  44,  46,  46,
+                       48,  48,  49,  49,  51,  51,  53,  53,
+                       55,  55,  55,  57,  57,  59,  59,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,
+               },
+               {       /* Fourth byte table 3. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  30,  30,
+                       32,  32,  34,  34,  36,  36,  38,  38,
+                       40,  40,  42,  42,  44,  44,  46,  46,
+                       48,  48,  50,  50,  52,  52,  54,  54,
+                       56,  56,  56,  58,  58,  60,  60,  62,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,
+               },
+               {       /* Fourth byte table 4. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   2,   2,   4,   4,
+                       4,   6,   6,   6,   6,   8,   8,   8,
+                       8,   8,   8,   10,  10,  10,  12,  12,
+                       12,  12,  14,  14,  14,  14,  14,  16,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       22,  24,  24,  24,  24,  24,  26,  26,
+                       26,  28,  28,  28,  28,  30,  30,  32,
+                       32,  32,  34,  34,  34,  34,  36,  36,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,
+               },
+               {       /* Fourth byte table 5. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   2,   4,
+                       4,   6,   8,   8,   10,  12,  12,  14,
+                       14,  16,  16,  18,  18,  20,  20,  22,
+                       22,  24,  24,  26,  26,  28,  30,  30,
+                       32,  32,  34,  34,  36,  36,  38,  38,
+                       40,  40,  42,  42,  44,  44,  46,  46,
+                       48,  48,  48,  50,  52,  52,  54,  54,
+                       54,  54,  56,  56,  58,  58,  60,  60,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,
+               },
+               {       /* Fourth byte table 6. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   4,   4,   6,   6,
+                       8,   8,   10,  10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  30,  30,
+                       32,  32,  32,  32,  34,  34,  36,  36,
+                       38,  38,  40,  40,  42,  42,  44,  44,
+                       46,  46,  48,  48,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  50,  50,  50,
+                       50,
+               },
+               {       /* Fourth byte table 7. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   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,   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,   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,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   2,   4,   4,   6,
+                       8,   8,   10,  10,  12,  12,  12,  12,
+                       12,  14,  14,  14,  16,  16,  16,  16,
+                       16,  18,  20,  20,  20,  20,  20,  20,
+                       22,  22,  22,  24,  24,  24,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,  26,  26,  26,  26,  26,  26,  26,
+                       26,
+               },
+               {       /* Fourth byte table 8. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   2,   4,   4,   4,   4,
+                       4,   6,   6,   8,   10,  10,  10,  10,
+                       10,  10,  10,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,  12,  12,  12,  12,  12,  12,  12,
+                       12,
+               },
+               {       /* Fourth byte table 9. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,
+               },
+               {       /* Fourth byte table 10. */
+                       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,   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,   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,   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,   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,   2,   4,   6,
+                       8,   8,   10,  12,  14,  16,  18,  20,
+                       22,  24,  26,  28,  30,  32,  34,  36,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,
+               },
+               {       /* Fourth byte table 11. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       30,  32,  34,  34,  34,  34,  36,  38,
+                       38,  38,  40,  40,  42,  42,  44,  44,
+                       46,  46,  48,  48,  50,  50,  52,  52,
+                       54,  54,  56,  56,  58,  58,  60,  60,
+                       62,  64,  66,  68,  68,  68,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,  70,  70,  70,  70,  70,  70,  70,
+                       70,
+               },
+               {       /* Fourth byte table 12. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   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,   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,   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,   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,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,
+               },
+               {       /* Fourth byte table 13. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       48,  50,  52,  54,  56,  58,  60,  62,
+                       64,  64,  66,  66,  68,  68,  70,  70,
+                       72,  72,  74,  74,  76,  76,  78,  78,
+                       80,  80,  82,  82,  84,  84,  86,  86,
+                       88,  88,  90,  90,  92,  92,  94,  94,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 14. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   4,   4,   6,   6,
+                       8,   8,   10,  10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  30,  30,
+                       32,  32,  34,  34,  36,  36,  38,  38,
+                       40,  40,  42,  42,  44,  44,  46,  46,
+                       48,  48,  50,  50,  52,  52,  54,  54,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,
+               },
+               {       /* Fourth byte table 15. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   2,   2,   4,   4,   6,
+                       6,   8,   8,   10,  10,  12,  12,  14,
+                       14,  14,  16,  16,  18,  18,  20,  20,
+                       22,  22,  24,  24,  26,  26,  28,  28,
+                       30,  30,  32,  32,  34,  34,  36,  36,
+                       38,  38,  40,  40,  42,  42,  44,  44,
+                       46,  46,  48,  48,  50,  50,  52,  52,
+                       52,  52,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,
+               },
+               {       /* Fourth byte table 16. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   4,   4,   6,   6,
+                       8,   8,   10,  10,  12,  12,  14,  14,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,
+               },
+               {       /* Fourth byte table 17. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   4,   6,   8,   10,  12,
+                       14,  16,  18,  20,  22,  24,  26,  28,
+                       30,  32,  34,  36,  38,  40,  42,  44,
+                       46,  48,  50,  52,  54,  56,  58,  60,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,
+               },
+               {       /* Fourth byte table 18. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,
+               },
+               {       /* Fourth byte table 19. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   3,   6,   6,   9,   9,
+                       12,  12,  15,  15,  18,  18,  21,  21,
+                       24,  24,  27,  27,  30,  30,  33,  33,
+                       36,  36,  39,  39,  42,  42,  45,  45,
+                       48,  48,  51,  51,  54,  54,  57,  57,
+                       60,  60,  63,  63,  66,  66,  69,  69,
+                       72,  72,  75,  75,  78,  78,  81,  81,
+                       84,  84,  87,  87,  90,  90,  93,  93,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 20. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   3,   6,   6,   9,   9,
+                       12,  12,  15,  15,  18,  18,  21,  21,
+                       24,  24,  27,  27,  30,  30,  33,  33,
+                       36,  36,  39,  39,  42,  42,  45,  45,
+                       48,  48,  51,  51,  54,  54,  57,  57,
+                       60,  60,  63,  63,  66,  66,  69,  69,
+                       72,  72,  75,  75,  78,  78,  81,  81,
+                       84,  84,  87,  87,  90,  90,  93,  93,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 21. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   3,   6,   6,   9,   9,
+                       12,  12,  15,  15,  18,  18,  21,  21,
+                       24,  24,  27,  27,  30,  30,  33,  33,
+                       33,  33,  33,  33,  36,  36,  36,  36,
+                       36,  36,  39,  39,  42,  42,  45,  45,
+                       48,  48,  51,  51,  54,  54,  57,  57,
+                       60,  60,  63,  63,  66,  66,  69,  69,
+                       72,  72,  75,  75,  78,  78,  81,  81,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,
+               },
+               {       /* Fourth byte table 22. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   3,   6,   6,   9,   9,
+                       12,  12,  15,  15,  18,  18,  21,  21,
+                       24,  24,  27,  27,  30,  30,  33,  33,
+                       36,  36,  39,  39,  42,  42,  45,  45,
+                       48,  48,  51,  51,  54,  54,  57,  57,
+                       60,  60,  63,  63,  66,  66,  69,  69,
+                       72,  72,  75,  75,  78,  78,  81,  81,
+                       84,  84,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,
+               },
+               {       /* Fourth byte table 23. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  27,  30,  33,  36,  39,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  45,  48,  51,  54,  57,  60,  63,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  69,  72,  75,  78,  81,  84,  87,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,
+               },
+               {       /* Fourth byte table 24. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  21,  21,  24,  24,  27,  27,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  33,  36,  39,  42,  45,  48,  51,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  57,  60,  63,  66,  69,  72,  75,
+                       78,  81,  84,  87,  90,  93,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 25. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  75,  78,  78,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,
+               },
+               {       /* Fourth byte table 26. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   6,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   12,  15,  15,  15,  15,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 27. */
+                       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,   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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,
+               },
+               {       /* Fourth byte table 28. */
+                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,
+               },
+               {       /* Fourth byte table 29. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   6,   9,   12,  15,  18,
+                       21,  24,  27,  30,  33,  36,  39,  42,
+                       45,  48,  51,  54,  57,  60,  63,  66,
+                       69,  72,  75,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,
+               },
+               {       /* Fourth byte table 30. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  68,  72,  76,  80,  84,  88,  92,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 31. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,
+               },
+               {       /* Fourth byte table 32. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 33. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 34. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 35. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 36. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 37. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+               {       /* Fourth byte table 38. */
+                       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,   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,   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,   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,   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,   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,   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,
+               },
+       },
+       {
+               {       /* Fourth byte table 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,   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,   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,   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,   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,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,
+               },
+               {       /* Fourth byte table 1. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       46,  48,  50,  52,  54,  56,  58,  60,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,
+               },
+               {       /* Fourth byte table 2. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   4,   4,   6,   6,
+                       8,   8,   10,  10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  30,  30,
+                       32,  32,  34,  34,  36,  36,  38,  38,
+                       40,  40,  42,  42,  44,  44,  46,  46,
+                       48,  48,  49,  49,  51,  51,  53,  53,
+                       55,  55,  55,  57,  57,  59,  59,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,  61,  61,  61,  61,  61,  61,  61,
+                       61,
+               },
+               {       /* Fourth byte table 3. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   4,   4,   6,   6,   8,
+                       8,   10,  10,  10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  30,  30,
+                       32,  32,  34,  34,  36,  36,  38,  38,
+                       40,  40,  42,  42,  44,  44,  46,  46,
+                       48,  48,  50,  50,  52,  52,  54,  54,
+                       56,  56,  56,  58,  58,  60,  60,  62,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,  63,  63,  63,  63,  63,  63,  63,
+                       63,
+               },
+               {       /* Fourth byte table 4. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   2,   4,   4,   6,   6,
+                       6,   8,   8,   8,   8,   10,  10,  10,
+                       10,  10,  10,  12,  12,  12,  14,  14,
+                       14,  14,  16,  18,  18,  18,  18,  20,
+                       20,  20,  22,  22,  24,  24,  26,  26,
+                       26,  28,  28,  28,  28,  28,  30,  30,
+                       30,  32,  32,  32,  32,  34,  34,  36,
+                       36,  36,  38,  38,  38,  38,  40,  40,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,
+               },
+               {       /* Fourth byte table 5. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   2,   4,
+                       4,   6,   8,   8,   10,  12,  12,  14,
+                       14,  16,  16,  18,  18,  20,  20,  22,
+                       22,  24,  24,  26,  26,  28,  30,  30,
+                       32,  32,  34,  34,  36,  36,  38,  38,
+                       40,  40,  42,  42,  44,  44,  46,  46,
+                       48,  48,  48,  50,  52,  52,  54,  54,
+                       54,  54,  56,  56,  58,  58,  60,  60,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,
+               },
+               {       /* Fourth byte table 6. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   4,   4,   6,   6,
+                       8,   8,   10,  10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  30,  30,
+                       32,  32,  32,  32,  34,  34,  36,  36,
+                       38,  38,  40,  40,  42,  42,  44,  44,
+                       46,  46,  48,  48,  50,  50,  50,  50,
+                       50,  50,  50,  50,  50,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,  52,  52,  52,  52,  52,  52,  52,
+                       52,
+               },
+               {       /* Fourth byte table 7. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   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,   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,   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,   2,   2,   2,   2,   2,
+                       4,   4,   6,   6,   8,   8,   10,  10,
+                       12,  12,  12,  12,  14,  16,  16,  18,
+                       20,  20,  22,  22,  24,  24,  24,  24,
+                       24,  26,  26,  26,  28,  28,  28,  28,
+                       28,  30,  32,  32,  35,  35,  35,  35,
+                       37,  37,  37,  39,  39,  39,  41,  41,
+                       41,  41,  41,  41,  41,  41,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,  44,  44,  44,  44,  44,  44,  44,
+                       44,
+               },
+               {       /* Fourth byte table 8. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   2,   2,   4,   4,   4,   4,
+                       4,   6,   8,   10,  12,  14,  14,  14,
+                       14,  14,  14,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,  16,  16,  16,  16,  16,  16,  16,
+                       16,
+               },
+               {       /* Fourth byte table 9. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   4,   6,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,   8,   8,   8,   8,   8,   8,   8,
+                       8,
+               },
+               {       /* Fourth byte table 10. */
+                       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,   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,   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,   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,   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,   2,   4,   6,
+                       8,   8,   10,  12,  14,  16,  18,  20,
+                       22,  24,  26,  28,  30,  32,  34,  36,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,  38,  38,  38,  38,  38,  38,  38,
+                       38,
+               },
+               {       /* Fourth byte table 11. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       30,  32,  34,  34,  34,  34,  36,  38,
+                       38,  38,  40,  40,  42,  42,  44,  44,
+                       46,  46,  48,  48,  50,  50,  52,  52,
+                       54,  54,  56,  56,  58,  58,  60,  60,
+                       62,  64,  66,  68,  68,  68,  70,  70,
+                       70,  72,  72,  72,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,  74,  74,  74,  74,  74,  74,  74,
+                       74,
+               },
+               {       /* Fourth byte table 12. */
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   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,   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,   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,   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,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,  32,  32,  32,  32,  32,  32,  32,
+                       32,
+               },
+               {       /* Fourth byte table 13. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       16,  18,  20,  22,  24,  26,  28,  30,
+                       32,  34,  36,  38,  40,  42,  44,  46,
+                       48,  50,  52,  54,  56,  58,  60,  62,
+                       64,  64,  66,  66,  68,  68,  70,  70,
+                       72,  72,  74,  74,  76,  76,  78,  78,
+                       80,  80,  82,  82,  84,  84,  86,  86,
+                       88,  88,  90,  90,  92,  92,  94,  94,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 14. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   2,   2,   2,   2,
+                       2,   2,   2,   2,   4,   4,   6,   6,
+                       8,   8,   10,  10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  30,  30,
+                       32,  32,  34,  34,  36,  36,  38,  38,
+                       40,  40,  42,  42,  44,  44,  46,  46,
+                       48,  48,  50,  50,  52,  52,  54,  54,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,  56,  56,  56,  56,  56,  56,  56,
+                       56,
+               },
+               {       /* Fourth byte table 15. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   2,   2,   4,   4,   6,
+                       6,   8,   8,   10,  10,  12,  12,  14,
+                       16,  16,  18,  18,  20,  20,  22,  22,
+                       24,  24,  26,  26,  28,  28,  30,  30,
+                       32,  32,  34,  34,  36,  36,  38,  38,
+                       40,  40,  42,  42,  44,  44,  46,  46,
+                       48,  48,  50,  50,  52,  52,  54,  54,
+                       56,  56,  58,  58,  60,  60,  62,  62,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+               {       /* Fourth byte table 16. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   2,   4,   4,   6,   6,
+                       8,   8,   10,  10,  12,  12,  14,  14,
+                       16,  16,  18,  18,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,  20,  20,  20,  20,  20,  20,  20,
+                       20,
+               },
+               {       /* Fourth byte table 17. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   2,   4,   6,   8,   10,  12,
+                       14,  16,  18,  20,  22,  24,  26,  28,
+                       30,  32,  34,  36,  38,  40,  42,  44,
+                       46,  48,  50,  52,  54,  56,  58,  60,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,  62,  62,  62,  62,  62,  62,  62,
+                       62,
+               },
+               {       /* Fourth byte table 18. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   2,   4,   6,   8,   10,  12,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,  14,  14,  14,  14,  14,  14,  14,
+                       14,
+               },
+               {       /* Fourth byte table 19. */
+                       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,   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,   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,   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,   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,   0,   0,   0,   0,   0,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 20. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   3,   6,   6,   9,   9,
+                       12,  12,  15,  15,  18,  18,  21,  21,
+                       24,  24,  27,  27,  30,  30,  33,  33,
+                       36,  36,  39,  39,  42,  42,  45,  45,
+                       48,  48,  51,  51,  54,  54,  57,  57,
+                       60,  60,  63,  63,  66,  66,  69,  69,
+                       72,  72,  75,  75,  78,  78,  81,  81,
+                       84,  84,  87,  87,  90,  90,  93,  93,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 21. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   3,   6,   6,   9,   9,
+                       12,  12,  15,  15,  18,  18,  21,  21,
+                       24,  24,  27,  27,  30,  30,  33,  33,
+                       36,  36,  39,  39,  42,  42,  45,  45,
+                       48,  48,  51,  51,  54,  54,  57,  57,
+                       60,  60,  63,  63,  66,  66,  69,  69,
+                       72,  72,  75,  75,  78,  78,  81,  81,
+                       84,  84,  87,  87,  90,  90,  93,  93,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 22. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   3,   6,   6,   9,   9,
+                       12,  12,  15,  15,  18,  18,  21,  21,
+                       24,  24,  27,  27,  30,  30,  33,  33,
+                       33,  33,  33,  33,  36,  36,  36,  36,
+                       36,  36,  39,  39,  42,  42,  45,  45,
+                       48,  48,  51,  51,  54,  54,  57,  57,
+                       60,  60,  63,  63,  66,  66,  69,  69,
+                       72,  72,  75,  75,  78,  78,  81,  81,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,  84,  84,  84,  84,  84,  84,  84,
+                       84,
+               },
+               {       /* Fourth byte table 23. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   3,   6,   6,   9,   9,
+                       12,  12,  15,  15,  18,  18,  21,  21,
+                       24,  24,  27,  27,  30,  30,  33,  33,
+                       36,  36,  39,  39,  42,  42,  45,  45,
+                       48,  48,  51,  51,  54,  54,  57,  57,
+                       60,  60,  63,  63,  66,  66,  69,  69,
+                       72,  72,  75,  75,  78,  78,  81,  81,
+                       84,  84,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,  87,  87,  87,  87,  87,  87,  87,
+                       87,
+               },
+               {       /* Fourth byte table 24. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  27,  30,  33,  36,  39,  42,  42,
+                       42,  42,  42,  42,  42,  42,  42,  42,
+                       42,  45,  48,  51,  54,  57,  60,  63,
+                       66,  66,  66,  66,  66,  66,  66,  66,
+                       66,  69,  72,  75,  78,  81,  84,  87,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,  90,  90,  90,  90,  90,  90,  90,
+                       90,
+               },
+               {       /* Fourth byte table 25. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  21,  21,  24,  24,  27,  27,
+                       30,  30,  30,  30,  30,  30,  30,  30,
+                       30,  33,  36,  39,  42,  45,  48,  51,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  57,  60,  63,  66,  69,  72,  75,
+                       78,  81,  84,  87,  90,  93,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 26. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  24,  24,  24,  24,  24,  24,  24,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  72,  72,  72,  72,  72,  72,  72,
+                       72,  75,  78,  78,  81,  81,  81,  81,
+                       81,  81,  81,  81,  81,  81,  81,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,  83,  83,  83,  83,  83,  83,  83,
+                       83,
+               },
+               {       /* Fourth byte table 27. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   6,   9,   9,   9,   9,   9,   9,
+                       9,   9,   9,   9,   9,   9,   9,   9,
+                       9,   12,  15,  15,  15,  15,  18,  18,
+                       18,  18,  18,  18,  18,  18,  18,  18,
+                       18,  18,  18,  18,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,  21,  21,  21,  21,  21,  21,  21,
+                       21,
+               },
+               {       /* Fourth byte table 28. */
+                       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,   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,   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,   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,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   6,   9,   12,  15,  18,  21,  24,
+                       27,  30,  33,  36,  39,  42,  45,  48,
+                       51,  51,  51,  51,  51,  51,  51,  51,
+                       51,  51,  51,  51,  51,  51,  51,  51,
+                       51,  51,  51,  51,  51,  51,  51,  51,
+                       51,  51,  51,  51,  51,  51,  51,  51,
+                       51,  51,  51,  51,  51,  51,  51,  51,
+                       51,  51,  51,  51,  51,  51,  51,  51,
+                       51,  51,  51,  51,  51,  51,  51,  51,
+                       51,  51,  51,  51,  51,  51,  51,  51,
+                       51,
+               },
+               {       /* Fourth byte table 29. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,   3,   3,   3,   3,   3,   3,   3,
+                       3,
+               },
+               {       /* Fourth byte table 30. */
+                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,
+               },
+               {       /* Fourth byte table 31. */
+                       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,   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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,  48,  48,  48,  48,  48,  48,  48,
+                       48,
+               },
+               {       /* Fourth byte table 32. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       93,  93,  96,  96,  96,  96,  98,  100,
+                       100, 103, 103, 106, 106, 109, 109, 109,
+                       109, 109, 109, 109, 109, 109, 109, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112, 112, 112, 112, 112, 112, 112, 112,
+                       112,
+               },
+               {       /* Fourth byte table 33. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   3,   6,   6,   9,   9,
+                       12,  12,  15,  15,  18,  18,  21,  21,
+                       24,  24,  27,  27,  30,  30,  33,  33,
+                       36,  36,  39,  39,  42,  42,  45,  45,
+                       48,  48,  51,  51,  54,  54,  57,  57,
+                       60,  60,  63,  63,  66,  66,  69,  69,
+                       72,  72,  75,  75,  78,  78,  81,  81,
+                       84,  84,  87,  87,  90,  90,  93,  93,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 34. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   3,   6,   6,   9,   9,
+                       12,  12,  15,  15,  18,  18,  21,  21,
+                       24,  24,  27,  27,  30,  30,  33,  33,
+                       36,  36,  39,  39,  42,  42,  45,  45,
+                       48,  48,  51,  51,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,  54,  54,  54,  54,  54,  54,  54,
+                       54,
+               },
+               {       /* Fourth byte table 35. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   3,   6,   9,   12,  15,  18,  21,
+                       24,  27,  30,  33,  36,  39,  42,  45,
+                       48,  51,  54,  57,  60,  63,  66,  69,
+                       72,  75,  78,  81,  84,  87,  90,  93,
+                       96,  99,  102, 105, 108, 111, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114, 114, 114, 114, 114, 114, 114, 114,
+                       114,
+               },
+               {       /* Fourth byte table 36. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   3,   6,   9,   12,  15,  18,
+                       21,  24,  27,  30,  33,  36,  39,  42,
+                       45,  48,  51,  54,  57,  60,  63,  66,
+                       69,  72,  75,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,  78,  78,  78,  78,  78,  78,  78,
+                       78,
+               },
+               {       /* Fourth byte table 37. */
+                       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,   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,   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,   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,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  68,  72,  76,  80,  84,  88,  92,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,  96,  96,  96,  96,  96,  96,  96,
+                       96,
+               },
+               {       /* Fourth byte table 38. */
+                       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,   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,   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,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   0,   0,   0,   0,   0,   0,   0,
+                       0,   4,   8,   12,  16,  20,  24,  28,
+                       32,  36,  40,  44,  48,  52,  56,  60,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,  64,  64,  64,  64,  64,  64,  64,
+                       64,
+               },
+       },
+};
+
+static const uchar_t u8_toupper_final_tbl[2][2318] = {
+       {
+               0xCE, 0x9C, 0xC3, 0x80, 0xC3, 0x81, 0xC3, 0x82,
+               0xC3, 0x83, 0xC3, 0x84, 0xC3, 0x85, 0xC3, 0x86,
+               0xC3, 0x87, 0xC3, 0x88, 0xC3, 0x89, 0xC3, 0x8A,
+               0xC3, 0x8B, 0xC3, 0x8C, 0xC3, 0x8D, 0xC3, 0x8E,
+               0xC3, 0x8F, 0xC3, 0x90, 0xC3, 0x91, 0xC3, 0x92,
+               0xC3, 0x93, 0xC3, 0x94, 0xC3, 0x95, 0xC3, 0x96,
+               0xC3, 0x98, 0xC3, 0x99, 0xC3, 0x9A, 0xC3, 0x9B,
+               0xC3, 0x9C, 0xC3, 0x9D, 0xC3, 0x9E, 0xC5, 0xB8,
+               0xC4, 0x80, 0xC4, 0x82, 0xC4, 0x84, 0xC4, 0x86,
+               0xC4, 0x88, 0xC4, 0x8A, 0xC4, 0x8C, 0xC4, 0x8E,
+               0xC4, 0x90, 0xC4, 0x92, 0xC4, 0x94, 0xC4, 0x96,
+               0xC4, 0x98, 0xC4, 0x9A, 0xC4, 0x9C, 0xC4, 0x9E,
+               0xC4, 0xA0, 0xC4, 0xA2, 0xC4, 0xA4, 0xC4, 0xA6,
+               0xC4, 0xA8, 0xC4, 0xAA, 0xC4, 0xAC, 0xC4, 0xAE,
+               0x49, 0xC4, 0xB2, 0xC4, 0xB4, 0xC4, 0xB6, 0xC4,
+               0xB9, 0xC4, 0xBB, 0xC4, 0xBD, 0xC4, 0xBF, 0xC5,
+               0x81, 0xC5, 0x83, 0xC5, 0x85, 0xC5, 0x87, 0xC5,
+               0x8A, 0xC5, 0x8C, 0xC5, 0x8E, 0xC5, 0x90, 0xC5,
+               0x92, 0xC5, 0x94, 0xC5, 0x96, 0xC5, 0x98, 0xC5,
+               0x9A, 0xC5, 0x9C, 0xC5, 0x9E, 0xC5, 0xA0, 0xC5,
+               0xA2, 0xC5, 0xA4, 0xC5, 0xA6, 0xC5, 0xA8, 0xC5,
+               0xAA, 0xC5, 0xAC, 0xC5, 0xAE, 0xC5, 0xB0, 0xC5,
+               0xB2, 0xC5, 0xB4, 0xC5, 0xB6, 0xC5, 0xB9, 0xC5,
+               0xBB, 0xC5, 0xBD, 0x53, 0xC6, 0x82, 0xC6, 0x84,
+               0xC6, 0x87, 0xC6, 0x8B, 0xC6, 0x91, 0xC7, 0xB6,
+               0xC6, 0x98, 0xC8, 0xA0, 0xC6, 0xA0, 0xC6, 0xA2,
+               0xC6, 0xA4, 0xC6, 0xA7, 0xC6, 0xAC, 0xC6, 0xAF,
+               0xC6, 0xB3, 0xC6, 0xB5, 0xC6, 0xB8, 0xC6, 0xBC,
+               0xC7, 0xB7, 0xC7, 0x84, 0xC7, 0x84, 0xC7, 0x87,
+               0xC7, 0x87, 0xC7, 0x8A, 0xC7, 0x8A, 0xC7, 0x8D,
+               0xC7, 0x8F, 0xC7, 0x91, 0xC7, 0x93, 0xC7, 0x95,
+               0xC7, 0x97, 0xC7, 0x99, 0xC7, 0x9B, 0xC6, 0x8E,
+               0xC7, 0x9E, 0xC7, 0xA0, 0xC7, 0xA2, 0xC7, 0xA4,
+               0xC7, 0xA6, 0xC7, 0xA8, 0xC7, 0xAA, 0xC7, 0xAC,
+               0xC7, 0xAE, 0xC7, 0xB1, 0xC7, 0xB1, 0xC7, 0xB4,
+               0xC7, 0xB8, 0xC7, 0xBA, 0xC7, 0xBC, 0xC7, 0xBE,
+               0xC8, 0x80, 0xC8, 0x82, 0xC8, 0x84, 0xC8, 0x86,
+               0xC8, 0x88, 0xC8, 0x8A, 0xC8, 0x8C, 0xC8, 0x8E,
+               0xC8, 0x90, 0xC8, 0x92, 0xC8, 0x94, 0xC8, 0x96,
+               0xC8, 0x98, 0xC8, 0x9A, 0xC8, 0x9C, 0xC8, 0x9E,
+               0xC8, 0xA2, 0xC8, 0xA4, 0xC8, 0xA6, 0xC8, 0xA8,
+               0xC8, 0xAA, 0xC8, 0xAC, 0xC8, 0xAE, 0xC8, 0xB0,
+               0xC8, 0xB2, 0xC6, 0x81, 0xC6, 0x86, 0xC6, 0x89,
+               0xC6, 0x8A, 0xC6, 0x8F, 0xC6, 0x90, 0xC6, 0x93,
+               0xC6, 0x94, 0xC6, 0x97, 0xC6, 0x96, 0xC6, 0x9C,
+               0xC6, 0x9D, 0xC6, 0x9F, 0xC6, 0xA6, 0xC6, 0xA9,
+               0xC6, 0xAE, 0xC6, 0xB1, 0xC6, 0xB2, 0xC6, 0xB7,
+               0xCE, 0x99, 0xCE, 0x86, 0xCE, 0x88, 0xCE, 0x89,
+               0xCE, 0x8A, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93,
+               0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97,
+               0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B,
+               0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F,
+               0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0xA3, 0xCE, 0xA3,
+               0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7,
+               0xCE, 0xA8, 0xCE, 0xA9, 0xCE, 0xAA, 0xCE, 0xAB,
+               0xCE, 0x8C, 0xCE, 0x8E, 0xCE, 0x8F, 0xCE, 0x92,
+               0xCE, 0x98, 0xCE, 0xA6, 0xCE, 0xA0, 0xCF, 0x98,
+               0xCF, 0x9A, 0xCF, 0x9C, 0xCF, 0x9E, 0xCF, 0xA0,
+               0xCF, 0xA2, 0xCF, 0xA4, 0xCF, 0xA6, 0xCF, 0xA8,
+               0xCF, 0xAA, 0xCF, 0xAC, 0xCF, 0xAE, 0xCE, 0x9A,
+               0xCE, 0xA1, 0xCE, 0xA3, 0xCE, 0x95, 0xD0, 0x90,
+               0xD0, 0x91, 0xD0, 0x92, 0xD0, 0x93, 0xD0, 0x94,
+               0xD0, 0x95, 0xD0, 0x96, 0xD0, 0x97, 0xD0, 0x98,
+               0xD0, 0x99, 0xD0, 0x9A, 0xD0, 0x9B, 0xD0, 0x9C,
+               0xD0, 0x9D, 0xD0, 0x9E, 0xD0, 0x9F, 0xD0, 0xA0,
+               0xD0, 0xA1, 0xD0, 0xA2, 0xD0, 0xA3, 0xD0, 0xA4,
+               0xD0, 0xA5, 0xD0, 0xA6, 0xD0, 0xA7, 0xD0, 0xA8,
+               0xD0, 0xA9, 0xD0, 0xAA, 0xD0, 0xAB, 0xD0, 0xAC,
+               0xD0, 0xAD, 0xD0, 0xAE, 0xD0, 0xAF, 0xD0, 0x80,
+               0xD0, 0x81, 0xD0, 0x82, 0xD0, 0x83, 0xD0, 0x84,
+               0xD0, 0x85, 0xD0, 0x86, 0xD0, 0x87, 0xD0, 0x88,
+               0xD0, 0x89, 0xD0, 0x8A, 0xD0, 0x8B, 0xD0, 0x8C,
+               0xD0, 0x8D, 0xD0, 0x8E, 0xD0, 0x8F, 0xD1, 0xA0,
+               0xD1, 0xA2, 0xD1, 0xA4, 0xD1, 0xA6, 0xD1, 0xA8,
+               0xD1, 0xAA, 0xD1, 0xAC, 0xD1, 0xAE, 0xD1, 0xB0,
+               0xD1, 0xB2, 0xD1, 0xB4, 0xD1, 0xB6, 0xD1, 0xB8,
+               0xD1, 0xBA, 0xD1, 0xBC, 0xD1, 0xBE, 0xD2, 0x80,
+               0xD2, 0x8A, 0xD2, 0x8C, 0xD2, 0x8E, 0xD2, 0x90,
+               0xD2, 0x92, 0xD2, 0x94, 0xD2, 0x96, 0xD2, 0x98,
+               0xD2, 0x9A, 0xD2, 0x9C, 0xD2, 0x9E, 0xD2, 0xA0,
+               0xD2, 0xA2, 0xD2, 0xA4, 0xD2, 0xA6, 0xD2, 0xA8,
+               0xD2, 0xAA, 0xD2, 0xAC, 0xD2, 0xAE, 0xD2, 0xB0,
+               0xD2, 0xB2, 0xD2, 0xB4, 0xD2, 0xB6, 0xD2, 0xB8,
+               0xD2, 0xBA, 0xD2, 0xBC, 0xD2, 0xBE, 0xD3, 0x81,
+               0xD3, 0x83, 0xD3, 0x85, 0xD3, 0x87, 0xD3, 0x89,
+               0xD3, 0x8B, 0xD3, 0x8D, 0xD3, 0x90, 0xD3, 0x92,
+               0xD3, 0x94, 0xD3, 0x96, 0xD3, 0x98, 0xD3, 0x9A,
+               0xD3, 0x9C, 0xD3, 0x9E, 0xD3, 0xA0, 0xD3, 0xA2,
+               0xD3, 0xA4, 0xD3, 0xA6, 0xD3, 0xA8, 0xD3, 0xAA,
+               0xD3, 0xAC, 0xD3, 0xAE, 0xD3, 0xB0, 0xD3, 0xB2,
+               0xD3, 0xB4, 0xD3, 0xB8, 0xD4, 0x80, 0xD4, 0x82,
+               0xD4, 0x84, 0xD4, 0x86, 0xD4, 0x88, 0xD4, 0x8A,
+               0xD4, 0x8C, 0xD4, 0x8E, 0xD4, 0xB1, 0xD4, 0xB2,
+               0xD4, 0xB3, 0xD4, 0xB4, 0xD4, 0xB5, 0xD4, 0xB6,
+               0xD4, 0xB7, 0xD4, 0xB8, 0xD4, 0xB9, 0xD4, 0xBA,
+               0xD4, 0xBB, 0xD4, 0xBC, 0xD4, 0xBD, 0xD4, 0xBE,
+               0xD4, 0xBF, 0xD5, 0x80, 0xD5, 0x81, 0xD5, 0x82,
+               0xD5, 0x83, 0xD5, 0x84, 0xD5, 0x85, 0xD5, 0x86,
+               0xD5, 0x87, 0xD5, 0x88, 0xD5, 0x89, 0xD5, 0x8A,
+               0xD5, 0x8B, 0xD5, 0x8C, 0xD5, 0x8D, 0xD5, 0x8E,
+               0xD5, 0x8F, 0xD5, 0x90, 0xD5, 0x91, 0xD5, 0x92,
+               0xD5, 0x93, 0xD5, 0x94, 0xD5, 0x95, 0xD5, 0x96,
+               0xE1, 0xB8, 0x80, 0xE1, 0xB8, 0x82, 0xE1, 0xB8,
+               0x84, 0xE1, 0xB8, 0x86, 0xE1, 0xB8, 0x88, 0xE1,
+               0xB8, 0x8A, 0xE1, 0xB8, 0x8C, 0xE1, 0xB8, 0x8E,
+               0xE1, 0xB8, 0x90, 0xE1, 0xB8, 0x92, 0xE1, 0xB8,
+               0x94, 0xE1, 0xB8, 0x96, 0xE1, 0xB8, 0x98, 0xE1,
+               0xB8, 0x9A, 0xE1, 0xB8, 0x9C, 0xE1, 0xB8, 0x9E,
+               0xE1, 0xB8, 0xA0, 0xE1, 0xB8, 0xA2, 0xE1, 0xB8,
+               0xA4, 0xE1, 0xB8, 0xA6, 0xE1, 0xB8, 0xA8, 0xE1,
+               0xB8, 0xAA, 0xE1, 0xB8, 0xAC, 0xE1, 0xB8, 0xAE,
+               0xE1, 0xB8, 0xB0, 0xE1, 0xB8, 0xB2, 0xE1, 0xB8,
+               0xB4, 0xE1, 0xB8, 0xB6, 0xE1, 0xB8, 0xB8, 0xE1,
+               0xB8, 0xBA, 0xE1, 0xB8, 0xBC, 0xE1, 0xB8, 0xBE,
+               0xE1, 0xB9, 0x80, 0xE1, 0xB9, 0x82, 0xE1, 0xB9,
+               0x84, 0xE1, 0xB9, 0x86, 0xE1, 0xB9, 0x88, 0xE1,
+               0xB9, 0x8A, 0xE1, 0xB9, 0x8C, 0xE1, 0xB9, 0x8E,
+               0xE1, 0xB9, 0x90, 0xE1, 0xB9, 0x92, 0xE1, 0xB9,
+               0x94, 0xE1, 0xB9, 0x96, 0xE1, 0xB9, 0x98, 0xE1,
+               0xB9, 0x9A, 0xE1, 0xB9, 0x9C, 0xE1, 0xB9, 0x9E,
+               0xE1, 0xB9, 0xA0, 0xE1, 0xB9, 0xA2, 0xE1, 0xB9,
+               0xA4, 0xE1, 0xB9, 0xA6, 0xE1, 0xB9, 0xA8, 0xE1,
+               0xB9, 0xAA, 0xE1, 0xB9, 0xAC, 0xE1, 0xB9, 0xAE,
+               0xE1, 0xB9, 0xB0, 0xE1, 0xB9, 0xB2, 0xE1, 0xB9,
+               0xB4, 0xE1, 0xB9, 0xB6, 0xE1, 0xB9, 0xB8, 0xE1,
+               0xB9, 0xBA, 0xE1, 0xB9, 0xBC, 0xE1, 0xB9, 0xBE,
+               0xE1, 0xBA, 0x80, 0xE1, 0xBA, 0x82, 0xE1, 0xBA,
+               0x84, 0xE1, 0xBA, 0x86, 0xE1, 0xBA, 0x88, 0xE1,
+               0xBA, 0x8A, 0xE1, 0xBA, 0x8C, 0xE1, 0xBA, 0x8E,
+               0xE1, 0xBA, 0x90, 0xE1, 0xBA, 0x92, 0xE1, 0xBA,
+               0x94, 0xE1, 0xB9, 0xA0, 0xE1, 0xBA, 0xA0, 0xE1,
+               0xBA, 0xA2, 0xE1, 0xBA, 0xA4, 0xE1, 0xBA, 0xA6,
+               0xE1, 0xBA, 0xA8, 0xE1, 0xBA, 0xAA, 0xE1, 0xBA,
+               0xAC, 0xE1, 0xBA, 0xAE, 0xE1, 0xBA, 0xB0, 0xE1,
+               0xBA, 0xB2, 0xE1, 0xBA, 0xB4, 0xE1, 0xBA, 0xB6,
+               0xE1, 0xBA, 0xB8, 0xE1, 0xBA, 0xBA, 0xE1, 0xBA,
+               0xBC, 0xE1, 0xBA, 0xBE, 0xE1, 0xBB, 0x80, 0xE1,
+               0xBB, 0x82, 0xE1, 0xBB, 0x84, 0xE1, 0xBB, 0x86,
+               0xE1, 0xBB, 0x88, 0xE1, 0xBB, 0x8A, 0xE1, 0xBB,
+               0x8C, 0xE1, 0xBB, 0x8E, 0xE1, 0xBB, 0x90, 0xE1,
+               0xBB, 0x92, 0xE1, 0xBB, 0x94, 0xE1, 0xBB, 0x96,
+               0xE1, 0xBB, 0x98, 0xE1, 0xBB, 0x9A, 0xE1, 0xBB,
+               0x9C, 0xE1, 0xBB, 0x9E, 0xE1, 0xBB, 0xA0, 0xE1,
+               0xBB, 0xA2, 0xE1, 0xBB, 0xA4, 0xE1, 0xBB, 0xA6,
+               0xE1, 0xBB, 0xA8, 0xE1, 0xBB, 0xAA, 0xE1, 0xBB,
+               0xAC, 0xE1, 0xBB, 0xAE, 0xE1, 0xBB, 0xB0, 0xE1,
+               0xBB, 0xB2, 0xE1, 0xBB, 0xB4, 0xE1, 0xBB, 0xB6,
+               0xE1, 0xBB, 0xB8, 0xE1, 0xBC, 0x88, 0xE1, 0xBC,
+               0x89, 0xE1, 0xBC, 0x8A, 0xE1, 0xBC, 0x8B, 0xE1,
+               0xBC, 0x8C, 0xE1, 0xBC, 0x8D, 0xE1, 0xBC, 0x8E,
+               0xE1, 0xBC, 0x8F, 0xE1, 0xBC, 0x98, 0xE1, 0xBC,
+               0x99, 0xE1, 0xBC, 0x9A, 0xE1, 0xBC, 0x9B, 0xE1,
+               0xBC, 0x9C, 0xE1, 0xBC, 0x9D, 0xE1, 0xBC, 0xA8,
+               0xE1, 0xBC, 0xA9, 0xE1, 0xBC, 0xAA, 0xE1, 0xBC,
+               0xAB, 0xE1, 0xBC, 0xAC, 0xE1, 0xBC, 0xAD, 0xE1,
+               0xBC, 0xAE, 0xE1, 0xBC, 0xAF, 0xE1, 0xBC, 0xB8,
+               0xE1, 0xBC, 0xB9, 0xE1, 0xBC, 0xBA, 0xE1, 0xBC,
+               0xBB, 0xE1, 0xBC, 0xBC, 0xE1, 0xBC, 0xBD, 0xE1,
+               0xBC, 0xBE, 0xE1, 0xBC, 0xBF, 0xE1, 0xBD, 0x88,
+               0xE1, 0xBD, 0x89, 0xE1, 0xBD, 0x8A, 0xE1, 0xBD,
+               0x8B, 0xE1, 0xBD, 0x8C, 0xE1, 0xBD, 0x8D, 0xE1,
+               0xBD, 0x99, 0xE1, 0xBD, 0x9B, 0xE1, 0xBD, 0x9D,
+               0xE1, 0xBD, 0x9F, 0xE1, 0xBD, 0xA8, 0xE1, 0xBD,
+               0xA9, 0xE1, 0xBD, 0xAA, 0xE1, 0xBD, 0xAB, 0xE1,
+               0xBD, 0xAC, 0xE1, 0xBD, 0xAD, 0xE1, 0xBD, 0xAE,
+               0xE1, 0xBD, 0xAF, 0xE1, 0xBE, 0xBA, 0xE1, 0xBE,
+               0xBB, 0xE1, 0xBF, 0x88, 0xE1, 0xBF, 0x89, 0xE1,
+               0xBF, 0x8A, 0xE1, 0xBF, 0x8B, 0xE1, 0xBF, 0x9A,
+               0xE1, 0xBF, 0x9B, 0xE1, 0xBF, 0xB8, 0xE1, 0xBF,
+               0xB9, 0xE1, 0xBF, 0xAA, 0xE1, 0xBF, 0xAB, 0xE1,
+               0xBF, 0xBA, 0xE1, 0xBF, 0xBB, 0xE1, 0xBE, 0x88,
+               0xE1, 0xBE, 0x89, 0xE1, 0xBE, 0x8A, 0xE1, 0xBE,
+               0x8B, 0xE1, 0xBE, 0x8C, 0xE1, 0xBE, 0x8D, 0xE1,
+               0xBE, 0x8E, 0xE1, 0xBE, 0x8F, 0xE1, 0xBE, 0x98,
+               0xE1, 0xBE, 0x99, 0xE1, 0xBE, 0x9A, 0xE1, 0xBE,
+               0x9B, 0xE1, 0xBE, 0x9C, 0xE1, 0xBE, 0x9D, 0xE1,
+               0xBE, 0x9E, 0xE1, 0xBE, 0x9F, 0xE1, 0xBE, 0xA8,
+               0xE1, 0xBE, 0xA9, 0xE1, 0xBE, 0xAA, 0xE1, 0xBE,
+               0xAB, 0xE1, 0xBE, 0xAC, 0xE1, 0xBE, 0xAD, 0xE1,
+               0xBE, 0xAE, 0xE1, 0xBE, 0xAF, 0xE1, 0xBE, 0xB8,
+               0xE1, 0xBE, 0xB9, 0xE1, 0xBE, 0xBC, 0xCE, 0x99,
+               0xE1, 0xBF, 0x8C, 0xE1, 0xBF, 0x98, 0xE1, 0xBF,
+               0x99, 0xE1, 0xBF, 0xA8, 0xE1, 0xBF, 0xA9, 0xE1,
+               0xBF, 0xAC, 0xE1, 0xBF, 0xBC, 0xE2, 0x85, 0xA0,
+               0xE2, 0x85, 0xA1, 0xE2, 0x85, 0xA2, 0xE2, 0x85,
+               0xA3, 0xE2, 0x85, 0xA4, 0xE2, 0x85, 0xA5, 0xE2,
+               0x85, 0xA6, 0xE2, 0x85, 0xA7, 0xE2, 0x85, 0xA8,
+               0xE2, 0x85, 0xA9, 0xE2, 0x85, 0xAA, 0xE2, 0x85,
+               0xAB, 0xE2, 0x85, 0xAC, 0xE2, 0x85, 0xAD, 0xE2,
+               0x85, 0xAE, 0xE2, 0x85, 0xAF, 0xE2, 0x92, 0xB6,
+               0xE2, 0x92, 0xB7, 0xE2, 0x92, 0xB8, 0xE2, 0x92,
+               0xB9, 0xE2, 0x92, 0xBA, 0xE2, 0x92, 0xBB, 0xE2,
+               0x92, 0xBC, 0xE2, 0x92, 0xBD, 0xE2, 0x92, 0xBE,
+               0xE2, 0x92, 0xBF, 0xE2, 0x93, 0x80, 0xE2, 0x93,
+               0x81, 0xE2, 0x93, 0x82, 0xE2, 0x93, 0x83, 0xE2,
+               0x93, 0x84, 0xE2, 0x93, 0x85, 0xE2, 0x93, 0x86,
+               0xE2, 0x93, 0x87, 0xE2, 0x93, 0x88, 0xE2, 0x93,
+               0x89, 0xE2, 0x93, 0x8A, 0xE2, 0x93, 0x8B, 0xE2,
+               0x93, 0x8C, 0xE2, 0x93, 0x8D, 0xE2, 0x93, 0x8E,
+               0xE2, 0x93, 0x8F, 0xEF, 0xBC, 0xA1, 0xEF, 0xBC,
+               0xA2, 0xEF, 0xBC, 0xA3, 0xEF, 0xBC, 0xA4, 0xEF,
+               0xBC, 0xA5, 0xEF, 0xBC, 0xA6, 0xEF, 0xBC, 0xA7,
+               0xEF, 0xBC, 0xA8, 0xEF, 0xBC, 0xA9, 0xEF, 0xBC,
+               0xAA, 0xEF, 0xBC, 0xAB, 0xEF, 0xBC, 0xAC, 0xEF,
+               0xBC, 0xAD, 0xEF, 0xBC, 0xAE, 0xEF, 0xBC, 0xAF,
+               0xEF, 0xBC, 0xB0, 0xEF, 0xBC, 0xB1, 0xEF, 0xBC,
+               0xB2, 0xEF, 0xBC, 0xB3, 0xEF, 0xBC, 0xB4, 0xEF,
+               0xBC, 0xB5, 0xEF, 0xBC, 0xB6, 0xEF, 0xBC, 0xB7,
+               0xEF, 0xBC, 0xB8, 0xEF, 0xBC, 0xB9, 0xEF, 0xBC,
+               0xBA, 0xF0, 0x90, 0x90, 0x80, 0xF0, 0x90, 0x90,
+               0x81, 0xF0, 0x90, 0x90, 0x82, 0xF0, 0x90, 0x90,
+               0x83, 0xF0, 0x90, 0x90, 0x84, 0xF0, 0x90, 0x90,
+               0x85, 0xF0, 0x90, 0x90, 0x86, 0xF0, 0x90, 0x90,
+               0x87, 0xF0, 0x90, 0x90, 0x88, 0xF0, 0x90, 0x90,
+               0x89, 0xF0, 0x90, 0x90, 0x8A, 0xF0, 0x90, 0x90,
+               0x8B, 0xF0, 0x90, 0x90, 0x8C, 0xF0, 0x90, 0x90,
+               0x8D, 0xF0, 0x90, 0x90, 0x8E, 0xF0, 0x90, 0x90,
+               0x8F, 0xF0, 0x90, 0x90, 0x90, 0xF0, 0x90, 0x90,
+               0x91, 0xF0, 0x90, 0x90, 0x92, 0xF0, 0x90, 0x90,
+               0x93, 0xF0, 0x90, 0x90, 0x94, 0xF0, 0x90, 0x90,
+               0x95, 0xF0, 0x90, 0x90, 0x96, 0xF0, 0x90, 0x90,
+               0x97, 0xF0, 0x90, 0x90, 0x98, 0xF0, 0x90, 0x90,
+               0x99, 0xF0, 0x90, 0x90, 0x9A, 0xF0, 0x90, 0x90,
+               0x9B, 0xF0, 0x90, 0x90, 0x9C, 0xF0, 0x90, 0x90,
+               0x9D, 0xF0, 0x90, 0x90, 0x9E, 0xF0, 0x90, 0x90,
+               0x9F, 0xF0, 0x90, 0x90, 0xA0, 0xF0, 0x90, 0x90,
+               0xA1, 0xF0, 0x90, 0x90, 0xA2, 0xF0, 0x90, 0x90,
+               0xA3, 0xF0, 0x90, 0x90, 0xA4, 0xF0, 0x90, 0x90,
+               0xA5, 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,    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,    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,
+               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,    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,    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,    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,    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,    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,    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,    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,
+               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,    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,    0,    0,    0,    0,    0,    0,
+               0,    0,    0,    0,    0,    0,
+       },
+       {
+               0xCE, 0x9C, 0xC3, 0x80, 0xC3, 0x81, 0xC3, 0x82,
+               0xC3, 0x83, 0xC3, 0x84, 0xC3, 0x85, 0xC3, 0x86,
+               0xC3, 0x87, 0xC3, 0x88, 0xC3, 0x89, 0xC3, 0x8A,
+               0xC3, 0x8B, 0xC3, 0x8C, 0xC3, 0x8D, 0xC3, 0x8E,
+               0xC3, 0x8F, 0xC3, 0x90, 0xC3, 0x91, 0xC3, 0x92,
+               0xC3, 0x93, 0xC3, 0x94, 0xC3, 0x95, 0xC3, 0x96,
+               0xC3, 0x98, 0xC3, 0x99, 0xC3, 0x9A, 0xC3, 0x9B,
+               0xC3, 0x9C, 0xC3, 0x9D, 0xC3, 0x9E, 0xC5, 0xB8,
+               0xC4, 0x80, 0xC4, 0x82, 0xC4, 0x84, 0xC4, 0x86,
+               0xC4, 0x88, 0xC4, 0x8A, 0xC4, 0x8C, 0xC4, 0x8E,
+               0xC4, 0x90, 0xC4, 0x92, 0xC4, 0x94, 0xC4, 0x96,
+               0xC4, 0x98, 0xC4, 0x9A, 0xC4, 0x9C, 0xC4, 0x9E,
+               0xC4, 0xA0, 0xC4, 0xA2, 0xC4, 0xA4, 0xC4, 0xA6,
+               0xC4, 0xA8, 0xC4, 0xAA, 0xC4, 0xAC, 0xC4, 0xAE,
+               0x49, 0xC4, 0xB2, 0xC4, 0xB4, 0xC4, 0xB6, 0xC4,
+               0xB9, 0xC4, 0xBB, 0xC4, 0xBD, 0xC4, 0xBF, 0xC5,
+               0x81, 0xC5, 0x83, 0xC5, 0x85, 0xC5, 0x87, 0xC5,
+               0x8A, 0xC5, 0x8C, 0xC5, 0x8E, 0xC5, 0x90, 0xC5,
+               0x92, 0xC5, 0x94, 0xC5, 0x96, 0xC5, 0x98, 0xC5,
+               0x9A, 0xC5, 0x9C, 0xC5, 0x9E, 0xC5, 0xA0, 0xC5,
+               0xA2, 0xC5, 0xA4, 0xC5, 0xA6, 0xC5, 0xA8, 0xC5,
+               0xAA, 0xC5, 0xAC, 0xC5, 0xAE, 0xC5, 0xB0, 0xC5,
+               0xB2, 0xC5, 0xB4, 0xC5, 0xB6, 0xC5, 0xB9, 0xC5,
+               0xBB, 0xC5, 0xBD, 0x53, 0xC9, 0x83, 0xC6, 0x82,
+               0xC6, 0x84, 0xC6, 0x87, 0xC6, 0x8B, 0xC6, 0x91,
+               0xC7, 0xB6, 0xC6, 0x98, 0xC8, 0xBD, 0xC8, 0xA0,
+               0xC6, 0xA0, 0xC6, 0xA2, 0xC6, 0xA4, 0xC6, 0xA7,
+               0xC6, 0xAC, 0xC6, 0xAF, 0xC6, 0xB3, 0xC6, 0xB5,
+               0xC6, 0xB8, 0xC6, 0xBC, 0xC7, 0xB7, 0xC7, 0x84,
+               0xC7, 0x84, 0xC7, 0x87, 0xC7, 0x87, 0xC7, 0x8A,
+               0xC7, 0x8A, 0xC7, 0x8D, 0xC7, 0x8F, 0xC7, 0x91,
+               0xC7, 0x93, 0xC7, 0x95, 0xC7, 0x97, 0xC7, 0x99,
+               0xC7, 0x9B, 0xC6, 0x8E, 0xC7, 0x9E, 0xC7, 0xA0,
+               0xC7, 0xA2, 0xC7, 0xA4, 0xC7, 0xA6, 0xC7, 0xA8,
+               0xC7, 0xAA, 0xC7, 0xAC, 0xC7, 0xAE, 0xC7, 0xB1,
+               0xC7, 0xB1, 0xC7, 0xB4, 0xC7, 0xB8, 0xC7, 0xBA,
+               0xC7, 0xBC, 0xC7, 0xBE, 0xC8, 0x80, 0xC8, 0x82,
+               0xC8, 0x84, 0xC8, 0x86, 0xC8, 0x88, 0xC8, 0x8A,
+               0xC8, 0x8C, 0xC8, 0x8E, 0xC8, 0x90, 0xC8, 0x92,
+               0xC8, 0x94, 0xC8, 0x96, 0xC8, 0x98, 0xC8, 0x9A,
+               0xC8, 0x9C, 0xC8, 0x9E, 0xC8, 0xA2, 0xC8, 0xA4,
+               0xC8, 0xA6, 0xC8, 0xA8, 0xC8, 0xAA, 0xC8, 0xAC,
+               0xC8, 0xAE, 0xC8, 0xB0, 0xC8, 0xB2, 0xC8, 0xBB,
+               0xC9, 0x81, 0xC9, 0x86, 0xC9, 0x88, 0xC9, 0x8A,
+               0xC9, 0x8C, 0xC9, 0x8E, 0xC6, 0x81, 0xC6, 0x86,
+               0xC6, 0x89, 0xC6, 0x8A, 0xC6, 0x8F, 0xC6, 0x90,
+               0xC6, 0x93, 0xC6, 0x94, 0xC6, 0x97, 0xC6, 0x96,
+               0xE2, 0xB1, 0xA2, 0xC6, 0x9C, 0xC6, 0x9D, 0xC6,
+               0x9F, 0xE2, 0xB1, 0xA4, 0xC6, 0xA6, 0xC6, 0xA9,
+               0xC6, 0xAE, 0xC9, 0x84, 0xC6, 0xB1, 0xC6, 0xB2,
+               0xC9, 0x85, 0xC6, 0xB7, 0xCE, 0x99, 0xCF, 0xBD,
+               0xCF, 0xBE, 0xCF, 0xBF, 0xCE, 0x86, 0xCE, 0x88,
+               0xCE, 0x89, 0xCE, 0x8A, 0xCE, 0x91, 0xCE, 0x92,
+               0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96,
+               0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A,
+               0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E,
+               0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0xA3,
+               0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6,
+               0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xCE, 0xAA,
+               0xCE, 0xAB, 0xCE, 0x8C, 0xCE, 0x8E, 0xCE, 0x8F,
+               0xCE, 0x92, 0xCE, 0x98, 0xCE, 0xA6, 0xCE, 0xA0,
+               0xCF, 0x98, 0xCF, 0x9A, 0xCF, 0x9C, 0xCF, 0x9E,
+               0xCF, 0xA0, 0xCF, 0xA2, 0xCF, 0xA4, 0xCF, 0xA6,
+               0xCF, 0xA8, 0xCF, 0xAA, 0xCF, 0xAC, 0xCF, 0xAE,
+               0xCE, 0x9A, 0xCE, 0xA1, 0xCF, 0xB9, 0xCE, 0x95,
+               0xCF, 0xB7, 0xCF, 0xBA, 0xD0, 0x90, 0xD0, 0x91,
+               0xD0, 0x92, 0xD0, 0x93, 0xD0, 0x94, 0xD0, 0x95,
+               0xD0, 0x96, 0xD0, 0x97, 0xD0, 0x98, 0xD0, 0x99,
+               0xD0, 0x9A, 0xD0, 0x9B, 0xD0, 0x9C, 0xD0, 0x9D,
+               0xD0, 0x9E, 0xD0, 0x9F, 0xD0, 0xA0, 0xD0, 0xA1,
+               0xD0, 0xA2, 0xD0, 0xA3, 0xD0, 0xA4, 0xD0, 0xA5,
+               0xD0, 0xA6, 0xD0, 0xA7, 0xD0, 0xA8, 0xD0, 0xA9,
+               0xD0, 0xAA, 0xD0, 0xAB, 0xD0, 0xAC, 0xD0, 0xAD,
+               0xD0, 0xAE, 0xD0, 0xAF, 0xD0, 0x80, 0xD0, 0x81,
+               0xD0, 0x82, 0xD0, 0x83, 0xD0, 0x84, 0xD0, 0x85,
+               0xD0, 0x86, 0xD0, 0x87, 0xD0, 0x88, 0xD0, 0x89,
+               0xD0, 0x8A, 0xD0, 0x8B, 0xD0, 0x8C, 0xD0, 0x8D,
+               0xD0, 0x8E, 0xD0, 0x8F, 0xD1, 0xA0, 0xD1, 0xA2,
+               0xD1, 0xA4, 0xD1, 0xA6, 0xD1, 0xA8, 0xD1, 0xAA,
+               0xD1, 0xAC, 0xD1, 0xAE, 0xD1, 0xB0, 0xD1, 0xB2,
+               0xD1, 0xB4, 0xD1, 0xB6, 0xD1, 0xB8, 0xD1, 0xBA,
+               0xD1, 0xBC, 0xD1, 0xBE, 0xD2, 0x80, 0xD2, 0x8A,
+               0xD2, 0x8C, 0xD2, 0x8E, 0xD2, 0x90, 0xD2, 0x92,
+               0xD2, 0x94, 0xD2, 0x96, 0xD2, 0x98, 0xD2, 0x9A,
+               0xD2, 0x9C, 0xD2, 0x9E, 0xD2, 0xA0, 0xD2, 0xA2,
+               0xD2, 0xA4, 0xD2, 0xA6, 0xD2, 0xA8, 0xD2, 0xAA,
+               0xD2, 0xAC, 0xD2, 0xAE, 0xD2, 0xB0, 0xD2, 0xB2,
+               0xD2, 0xB4, 0xD2, 0xB6, 0xD2, 0xB8, 0xD2, 0xBA,
+               0xD2, 0xBC, 0xD2, 0xBE, 0xD3, 0x81, 0xD3, 0x83,
+               0xD3, 0x85, 0xD3, 0x87, 0xD3, 0x89, 0xD3, 0x8B,
+               0xD3, 0x8D, 0xD3, 0x80, 0xD3, 0x90, 0xD3, 0x92,
+               0xD3, 0x94, 0xD3, 0x96, 0xD3, 0x98, 0xD3, 0x9A,
+               0xD3, 0x9C, 0xD3, 0x9E, 0xD3, 0xA0, 0xD3, 0xA2,
+               0xD3, 0xA4, 0xD3, 0xA6, 0xD3, 0xA8, 0xD3, 0xAA,
+               0xD3, 0xAC, 0xD3, 0xAE, 0xD3, 0xB0, 0xD3, 0xB2,
+               0xD3, 0xB4, 0xD3, 0xB6, 0xD3, 0xB8, 0xD3, 0xBA,
+               0xD3, 0xBC, 0xD3, 0xBE, 0xD4, 0x80, 0xD4, 0x82,
+               0xD4, 0x84, 0xD4, 0x86, 0xD4, 0x88, 0xD4, 0x8A,
+               0xD4, 0x8C, 0xD4, 0x8E, 0xD4, 0x90, 0xD4, 0x92,
+               0xD4, 0xB1, 0xD4, 0xB2, 0xD4, 0xB3, 0xD4, 0xB4,
+               0xD4, 0xB5, 0xD4, 0xB6, 0xD4, 0xB7, 0xD4, 0xB8,
+               0xD4, 0xB9, 0xD4, 0xBA, 0xD4, 0xBB, 0xD4, 0xBC,
+               0xD4, 0xBD, 0xD4, 0xBE, 0xD4, 0xBF, 0xD5, 0x80,
+               0xD5, 0x81, 0xD5, 0x82, 0xD5, 0x83, 0xD5, 0x84,
+               0xD5, 0x85, 0xD5, 0x86, 0xD5, 0x87, 0xD5, 0x88,
+               0xD5, 0x89, 0xD5, 0x8A, 0xD5, 0x8B, 0xD5, 0x8C,
+               0xD5, 0x8D, 0xD5, 0x8E, 0xD5, 0x8F, 0xD5, 0x90,
+               0xD5, 0x91, 0xD5, 0x92, 0xD5, 0x93, 0xD5, 0x94,
+               0xD5, 0x95, 0xD5, 0x96, 0xE2, 0xB1, 0xA3, 0xE1,
+               0xB8, 0x80, 0xE1, 0xB8, 0x82, 0xE1, 0xB8, 0x84,
+               0xE1, 0xB8, 0x86, 0xE1, 0xB8, 0x88, 0xE1, 0xB8,
+               0x8A, 0xE1, 0xB8, 0x8C, 0xE1, 0xB8, 0x8E, 0xE1,
+               0xB8, 0x90, 0xE1, 0xB8, 0x92, 0xE1, 0xB8, 0x94,
+               0xE1, 0xB8, 0x96, 0xE1, 0xB8, 0x98, 0xE1, 0xB8,
+               0x9A, 0xE1, 0xB8, 0x9C, 0xE1, 0xB8, 0x9E, 0xE1,
+               0xB8, 0xA0, 0xE1, 0xB8, 0xA2, 0xE1, 0xB8, 0xA4,
+               0xE1, 0xB8, 0xA6, 0xE1, 0xB8, 0xA8, 0xE1, 0xB8,
+               0xAA, 0xE1, 0xB8, 0xAC, 0xE1, 0xB8, 0xAE, 0xE1,
+               0xB8, 0xB0, 0xE1, 0xB8, 0xB2, 0xE1, 0xB8, 0xB4,
+               0xE1, 0xB8, 0xB6, 0xE1, 0xB8, 0xB8, 0xE1, 0xB8,
+               0xBA, 0xE1, 0xB8, 0xBC, 0xE1, 0xB8, 0xBE, 0xE1,
+               0xB9, 0x80, 0xE1, 0xB9, 0x82, 0xE1, 0xB9, 0x84,
+               0xE1, 0xB9, 0x86, 0xE1, 0xB9, 0x88, 0xE1, 0xB9,
+               0x8A, 0xE1, 0xB9, 0x8C, 0xE1, 0xB9, 0x8E, 0xE1,
+               0xB9, 0x90, 0xE1, 0xB9, 0x92, 0xE1, 0xB9, 0x94,
+               0xE1, 0xB9, 0x96, 0xE1, 0xB9, 0x98, 0xE1, 0xB9,
+               0x9A, 0xE1, 0xB9, 0x9C, 0xE1, 0xB9, 0x9E, 0xE1,
+               0xB9, 0xA0, 0xE1, 0xB9, 0xA2, 0xE1, 0xB9, 0xA4,
+               0xE1, 0xB9, 0xA6, 0xE1, 0xB9, 0xA8, 0xE1, 0xB9,
+               0xAA, 0xE1, 0xB9, 0xAC, 0xE1, 0xB9, 0xAE, 0xE1,
+               0xB9, 0xB0, 0xE1, 0xB9, 0xB2, 0xE1, 0xB9, 0xB4,
+               0xE1, 0xB9, 0xB6, 0xE1, 0xB9, 0xB8, 0xE1, 0xB9,
+               0xBA, 0xE1, 0xB9, 0xBC, 0xE1, 0xB9, 0xBE, 0xE1,
+               0xBA, 0x80, 0xE1, 0xBA, 0x82, 0xE1, 0xBA, 0x84,
+               0xE1, 0xBA, 0x86, 0xE1, 0xBA, 0x88, 0xE1, 0xBA,
+               0x8A, 0xE1, 0xBA, 0x8C, 0xE1, 0xBA, 0x8E, 0xE1,
+               0xBA, 0x90, 0xE1, 0xBA, 0x92, 0xE1, 0xBA, 0x94,
+               0xE1, 0xB9, 0xA0, 0xE1, 0xBA, 0xA0, 0xE1, 0xBA,
+               0xA2, 0xE1, 0xBA, 0xA4, 0xE1, 0xBA, 0xA6, 0xE1,
+               0xBA, 0xA8, 0xE1, 0xBA, 0xAA, 0xE1, 0xBA, 0xAC,
+               0xE1, 0xBA, 0xAE, 0xE1, 0xBA, 0xB0, 0xE1, 0xBA,
+               0xB2, 0xE1, 0xBA, 0xB4, 0xE1, 0xBA, 0xB6, 0xE1,
+               0xBA, 0xB8, 0xE1, 0xBA, 0xBA, 0xE1, 0xBA, 0xBC,
+               0xE1, 0xBA, 0xBE, 0xE1, 0xBB, 0x80, 0xE1, 0xBB,
+               0x82, 0xE1, 0xBB, 0x84, 0xE1, 0xBB, 0x86, 0xE1,
+               0xBB, 0x88, 0xE1, 0xBB, 0x8A, 0xE1, 0xBB, 0x8C,
+               0xE1, 0xBB, 0x8E, 0xE1, 0xBB, 0x90, 0xE1, 0xBB,
+               0x92, 0xE1, 0xBB, 0x94, 0xE1, 0xBB, 0x96, 0xE1,
+               0xBB, 0x98, 0xE1, 0xBB, 0x9A, 0xE1, 0xBB, 0x9C,
+               0xE1, 0xBB, 0x9E, 0xE1, 0xBB, 0xA0, 0xE1, 0xBB,
+               0xA2, 0xE1, 0xBB, 0xA4, 0xE1, 0xBB, 0xA6, 0xE1,
+               0xBB, 0xA8, 0xE1, 0xBB, 0xAA, 0xE1, 0xBB, 0xAC,
+               0xE1, 0xBB, 0xAE, 0xE1, 0xBB, 0xB0, 0xE1, 0xBB,
+               0xB2, 0xE1, 0xBB, 0xB4, 0xE1, 0xBB, 0xB6, 0xE1,
+               0xBB, 0xB8, 0xE1, 0xBC, 0x88, 0xE1, 0xBC, 0x89,
+               0xE1, 0xBC, 0x8A, 0xE1, 0xBC, 0x8B, 0xE1, 0xBC,
+               0x8C, 0xE1, 0xBC, 0x8D, 0xE1, 0xBC, 0x8E, 0xE1,
+               0xBC, 0x8F, 0xE1, 0xBC, 0x98, 0xE1, 0xBC, 0x99,
+               0xE1, 0xBC, 0x9A, 0xE1, 0xBC, 0x9B, 0xE1, 0xBC,
+               0x9C, 0xE1, 0xBC, 0x9D, 0xE1, 0xBC, 0xA8, 0xE1,
+               0xBC, 0xA9, 0xE1, 0xBC, 0xAA, 0xE1, 0xBC, 0xAB,
+               0xE1, 0xBC, 0xAC, 0xE1, 0xBC, 0xAD, 0xE1, 0xBC,
+               0xAE, 0xE1, 0xBC, 0xAF, 0xE1, 0xBC, 0xB8, 0xE1,
+               0xBC, 0xB9, 0xE1, 0xBC, 0xBA, 0xE1, 0xBC, 0xBB,
+               0xE1, 0xBC, 0xBC, 0xE1, 0xBC, 0xBD, 0xE1, 0xBC,
+               0xBE, 0xE1, 0xBC, 0xBF, 0xE1, 0xBD, 0x88, 0xE1,
+               0xBD, 0x89, 0xE1, 0xBD, 0x8A, 0xE1, 0xBD, 0x8B,
+               0xE1, 0xBD, 0x8C, 0xE1, 0xBD, 0x8D, 0xE1, 0xBD,
+               0x99, 0xE1, 0xBD, 0x9B, 0xE1, 0xBD, 0x9D, 0xE1,
+               0xBD, 0x9F, 0xE1, 0xBD, 0xA8, 0xE1, 0xBD, 0xA9,
+               0xE1, 0xBD, 0xAA, 0xE1, 0xBD, 0xAB, 0xE1, 0xBD,
+               0xAC, 0xE1, 0xBD, 0xAD, 0xE1, 0xBD, 0xAE, 0xE1,
+               0xBD, 0xAF, 0xE1, 0xBE, 0xBA, 0xE1, 0xBE, 0xBB,
+               0xE1, 0xBF, 0x88, 0xE1, 0xBF, 0x89, 0xE1, 0xBF,
+               0x8A, 0xE1, 0xBF, 0x8B, 0xE1, 0xBF, 0x9A, 0xE1,
+               0xBF, 0x9B, 0xE1, 0xBF, 0xB8, 0xE1, 0xBF, 0xB9,
+               0xE1, 0xBF, 0xAA, 0xE1, 0xBF, 0xAB, 0xE1, 0xBF,
+               0xBA, 0xE1, 0xBF, 0xBB, 0xE1, 0xBE, 0x88, 0xE1,
+               0xBE, 0x89, 0xE1, 0xBE, 0x8A, 0xE1, 0xBE, 0x8B,
+               0xE1, 0xBE, 0x8C, 0xE1, 0xBE, 0x8D, 0xE1, 0xBE,
+               0x8E, 0xE1, 0xBE, 0x8F, 0xE1, 0xBE, 0x98, 0xE1,
+               0xBE, 0x99, 0xE1, 0xBE, 0x9A, 0xE1, 0xBE, 0x9B,
+               0xE1, 0xBE, 0x9C, 0xE1, 0xBE, 0x9D, 0xE1, 0xBE,
+               0x9E, 0xE1, 0xBE, 0x9F, 0xE1, 0xBE, 0xA8, 0xE1,
+               0xBE, 0xA9, 0xE1, 0xBE, 0xAA, 0xE1, 0xBE, 0xAB,
+               0xE1, 0xBE, 0xAC, 0xE1, 0xBE, 0xAD, 0xE1, 0xBE,
+               0xAE, 0xE1, 0xBE, 0xAF, 0xE1, 0xBE, 0xB8, 0xE1,
+               0xBE, 0xB9, 0xE1, 0xBE, 0xBC, 0xCE, 0x99, 0xE1,
+               0xBF, 0x8C, 0xE1, 0xBF, 0x98, 0xE1, 0xBF, 0x99,
+               0xE1, 0xBF, 0xA8, 0xE1, 0xBF, 0xA9, 0xE1, 0xBF,
+               0xAC, 0xE1, 0xBF, 0xBC, 0xE2, 0x84, 0xB2, 0xE2,
+               0x85, 0xA0, 0xE2, 0x85, 0xA1, 0xE2, 0x85, 0xA2,
+               0xE2, 0x85, 0xA3, 0xE2, 0x85, 0xA4, 0xE2, 0x85,
+               0xA5, 0xE2, 0x85, 0xA6, 0xE2, 0x85, 0xA7, 0xE2,
+               0x85, 0xA8, 0xE2, 0x85, 0xA9, 0xE2, 0x85, 0xAA,
+               0xE2, 0x85, 0xAB, 0xE2, 0x85, 0xAC, 0xE2, 0x85,
+               0xAD, 0xE2, 0x85, 0xAE, 0xE2, 0x85, 0xAF, 0xE2,
+               0x86, 0x83, 0xE2, 0x92, 0xB6, 0xE2, 0x92, 0xB7,
+               0xE2, 0x92, 0xB8, 0xE2, 0x92, 0xB9, 0xE2, 0x92,
+               0xBA, 0xE2, 0x92, 0xBB, 0xE2, 0x92, 0xBC, 0xE2,
+               0x92, 0xBD, 0xE2, 0x92, 0xBE, 0xE2, 0x92, 0xBF,
+               0xE2, 0x93, 0x80, 0xE2, 0x93, 0x81, 0xE2, 0x93,
+               0x82, 0xE2, 0x93, 0x83, 0xE2, 0x93, 0x84, 0xE2,
+               0x93, 0x85, 0xE2, 0x93, 0x86, 0xE2, 0x93, 0x87,
+               0xE2, 0x93, 0x88, 0xE2, 0x93, 0x89, 0xE2, 0x93,
+               0x8A, 0xE2, 0x93, 0x8B, 0xE2, 0x93, 0x8C, 0xE2,
+               0x93, 0x8D, 0xE2, 0x93, 0x8E, 0xE2, 0x93, 0x8F,
+               0xE2, 0xB0, 0x80, 0xE2, 0xB0, 0x81, 0xE2, 0xB0,
+               0x82, 0xE2, 0xB0, 0x83, 0xE2, 0xB0, 0x84, 0xE2,
+               0xB0, 0x85, 0xE2, 0xB0, 0x86, 0xE2, 0xB0, 0x87,
+               0xE2, 0xB0, 0x88, 0xE2, 0xB0, 0x89, 0xE2, 0xB0,
+               0x8A, 0xE2, 0xB0, 0x8B, 0xE2, 0xB0, 0x8C, 0xE2,
+               0xB0, 0x8D, 0xE2, 0xB0, 0x8E, 0xE2, 0xB0, 0x8F,
+               0xE2, 0xB0, 0x90, 0xE2, 0xB0, 0x91, 0xE2, 0xB0,
+               0x92, 0xE2, 0xB0, 0x93, 0xE2, 0xB0, 0x94, 0xE2,
+               0xB0, 0x95, 0xE2, 0xB0, 0x96, 0xE2, 0xB0, 0x97,
+               0xE2, 0xB0, 0x98, 0xE2, 0xB0, 0x99, 0xE2, 0xB0,
+               0x9A, 0xE2, 0xB0, 0x9B, 0xE2, 0xB0, 0x9C, 0xE2,
+               0xB0, 0x9D, 0xE2, 0xB0, 0x9E, 0xE2, 0xB0, 0x9F,
+               0xE2, 0xB0, 0xA0, 0xE2, 0xB0, 0xA1, 0xE2, 0xB0,
+               0xA2, 0xE2, 0xB0, 0xA3, 0xE2, 0xB0, 0xA4, 0xE2,
+               0xB0, 0xA5, 0xE2, 0xB0, 0xA6, 0xE2, 0xB0, 0xA7,
+               0xE2, 0xB0, 0xA8, 0xE2, 0xB0, 0xA9, 0xE2, 0xB0,
+               0xAA, 0xE2, 0xB0, 0xAB, 0xE2, 0xB0, 0xAC, 0xE2,
+               0xB0, 0xAD, 0xE2, 0xB0, 0xAE, 0xE2, 0xB1, 0xA0,
+               0xC8, 0xBA, 0xC8, 0xBE, 0xE2, 0xB1, 0xA7, 0xE2,
+               0xB1, 0xA9, 0xE2, 0xB1, 0xAB, 0xE2, 0xB1, 0xB5,
+               0xE2, 0xB2, 0x80, 0xE2, 0xB2, 0x82, 0xE2, 0xB2,
+               0x84, 0xE2, 0xB2, 0x86, 0xE2, 0xB2, 0x88, 0xE2,
+               0xB2, 0x8A, 0xE2, 0xB2, 0x8C, 0xE2, 0xB2, 0x8E,
+               0xE2, 0xB2, 0x90, 0xE2, 0xB2, 0x92, 0xE2, 0xB2,
+               0x94, 0xE2, 0xB2, 0x96, 0xE2, 0xB2, 0x98, 0xE2,
+               0xB2, 0x9A, 0xE2, 0xB2, 0x9C, 0xE2, 0xB2, 0x9E,
+               0xE2, 0xB2, 0xA0, 0xE2, 0xB2, 0xA2, 0xE2, 0xB2,
+               0xA4, 0xE2, 0xB2, 0xA6, 0xE2, 0xB2, 0xA8, 0xE2,
+               0xB2, 0xAA, 0xE2, 0xB2, 0xAC, 0xE2, 0xB2, 0xAE,
+               0xE2, 0xB2, 0xB0, 0xE2, 0xB2, 0xB2, 0xE2, 0xB2,
+               0xB4, 0xE2, 0xB2, 0xB6, 0xE2, 0xB2, 0xB8, 0xE2,
+               0xB2, 0xBA, 0xE2, 0xB2, 0xBC, 0xE2, 0xB2, 0xBE,
+               0xE2, 0xB3, 0x80, 0xE2, 0xB3, 0x82, 0xE2, 0xB3,
+               0x84, 0xE2, 0xB3, 0x86, 0xE2, 0xB3, 0x88, 0xE2,
+               0xB3, 0x8A, 0xE2, 0xB3, 0x8C, 0xE2, 0xB3, 0x8E,
+               0xE2, 0xB3, 0x90, 0xE2, 0xB3, 0x92, 0xE2, 0xB3,
+               0x94, 0xE2, 0xB3, 0x96, 0xE2, 0xB3, 0x98, 0xE2,
+               0xB3, 0x9A, 0xE2, 0xB3, 0x9C, 0xE2, 0xB3, 0x9E,
+               0xE2, 0xB3, 0xA0, 0xE2, 0xB3, 0xA2, 0xE1, 0x82,
+               0xA0, 0xE1, 0x82, 0xA1, 0xE1, 0x82, 0xA2, 0xE1,
+               0x82, 0xA3, 0xE1, 0x82, 0xA4, 0xE1, 0x82, 0xA5,
+               0xE1, 0x82, 0xA6, 0xE1, 0x82, 0xA7, 0xE1, 0x82,
+               0xA8, 0xE1, 0x82, 0xA9, 0xE1, 0x82, 0xAA, 0xE1,
+               0x82, 0xAB, 0xE1, 0x82, 0xAC, 0xE1, 0x82, 0xAD,
+               0xE1, 0x82, 0xAE, 0xE1, 0x82, 0xAF, 0xE1, 0x82,
+               0xB0, 0xE1, 0x82, 0xB1, 0xE1, 0x82, 0xB2, 0xE1,
+               0x82, 0xB3, 0xE1, 0x82, 0xB4, 0xE1, 0x82, 0xB5,
+               0xE1, 0x82, 0xB6, 0xE1, 0x82, 0xB7, 0xE1, 0x82,
+               0xB8, 0xE1, 0x82, 0xB9, 0xE1, 0x82, 0xBA, 0xE1,
+               0x82, 0xBB, 0xE1, 0x82, 0xBC, 0xE1, 0x82, 0xBD,
+               0xE1, 0x82, 0xBE, 0xE1, 0x82, 0xBF, 0xE1, 0x83,
+               0x80, 0xE1, 0x83, 0x81, 0xE1, 0x83, 0x82, 0xE1,
+               0x83, 0x83, 0xE1, 0x83, 0x84, 0xE1, 0x83, 0x85,
+               0xEF, 0xBC, 0xA1, 0xEF, 0xBC, 0xA2, 0xEF, 0xBC,
+               0xA3, 0xEF, 0xBC, 0xA4, 0xEF, 0xBC, 0xA5, 0xEF,
+               0xBC, 0xA6, 0xEF, 0xBC, 0xA7, 0xEF, 0xBC, 0xA8,
+               0xEF, 0xBC, 0xA9, 0xEF, 0xBC, 0xAA, 0xEF, 0xBC,
+               0xAB, 0xEF, 0xBC, 0xAC, 0xEF, 0xBC, 0xAD, 0xEF,
+               0xBC, 0xAE, 0xEF, 0xBC, 0xAF, 0xEF, 0xBC, 0xB0,
+               0xEF, 0xBC, 0xB1, 0xEF, 0xBC, 0xB2, 0xEF, 0xBC,
+               0xB3, 0xEF, 0xBC, 0xB4, 0xEF, 0xBC, 0xB5, 0xEF,
+               0xBC, 0xB6, 0xEF, 0xBC, 0xB7, 0xEF, 0xBC, 0xB8,
+               0xEF, 0xBC, 0xB9, 0xEF, 0xBC, 0xBA, 0xF0, 0x90,
+               0x90, 0x80, 0xF0, 0x90, 0x90, 0x81, 0xF0, 0x90,
+               0x90, 0x82, 0xF0, 0x90, 0x90, 0x83, 0xF0, 0x90,
+               0x90, 0x84, 0xF0, 0x90, 0x90, 0x85, 0xF0, 0x90,
+               0x90, 0x86, 0xF0, 0x90, 0x90, 0x87, 0xF0, 0x90,
+               0x90, 0x88, 0xF0, 0x90, 0x90, 0x89, 0xF0, 0x90,
+               0x90, 0x8A, 0xF0, 0x90, 0x90, 0x8B, 0xF0, 0x90,
+               0x90, 0x8C, 0xF0, 0x90, 0x90, 0x8D, 0xF0, 0x90,
+               0x90, 0x8E, 0xF0, 0x90, 0x90, 0x8F, 0xF0, 0x90,
+               0x90, 0x90, 0xF0, 0x90, 0x90, 0x91, 0xF0, 0x90,
+               0x90, 0x92, 0xF0, 0x90, 0x90, 0x93, 0xF0, 0x90,
+               0x90, 0x94, 0xF0, 0x90, 0x90, 0x95, 0xF0, 0x90,
+               0x90, 0x96, 0xF0, 0x90, 0x90, 0x97, 0xF0, 0x90,
+               0x90, 0x98, 0xF0, 0x90, 0x90, 0x99, 0xF0, 0x90,
+               0x90, 0x9A, 0xF0, 0x90, 0x90, 0x9B, 0xF0, 0x90,
+               0x90, 0x9C, 0xF0, 0x90, 0x90, 0x9D, 0xF0, 0x90,
+               0x90, 0x9E, 0xF0, 0x90, 0x90, 0x9F, 0xF0, 0x90,
+               0x90, 0xA0, 0xF0, 0x90, 0x90, 0xA1, 0xF0, 0x90,
+               0x90, 0xA2, 0xF0, 0x90, 0x90, 0xA3, 0xF0, 0x90,
+               0x90, 0xA4, 0xF0, 0x90, 0x90, 0xA5, 0xF0, 0x90,
+               0x90, 0xA6, 0xF0, 0x90, 0x90, 0xA7,
+       },
+};
+
+#undef N_
+#undef FIL_
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_U8_TEXTPREP_DATA_H */
diff --git a/include/sys/uberblock.h b/include/sys/uberblock.h
new file mode 100644 (file)
index 0000000..b5bb915
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_UBERBLOCK_H
+#define        _SYS_UBERBLOCK_H
+
+#include <sys/spa.h>
+#include <sys/vdev.h>
+#include <sys/zio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct uberblock uberblock_t;
+
+extern int uberblock_verify(uberblock_t *ub);
+extern int uberblock_update(uberblock_t *ub, vdev_t *rvd, uint64_t txg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_UBERBLOCK_H */
diff --git a/include/sys/uberblock_impl.h b/include/sys/uberblock_impl.h
new file mode 100644 (file)
index 0000000..6ab6aa3
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _SYS_UBERBLOCK_IMPL_H
+#define        _SYS_UBERBLOCK_IMPL_H
+
+#include <sys/uberblock.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The uberblock version is incremented whenever an incompatible on-disk
+ * format change is made to the SPA, DMU, or ZAP.
+ *
+ * Note: the first two fields should never be moved.  When a storage pool
+ * is opened, the uberblock must be read off the disk before the version
+ * can be checked.  If the ub_version field is moved, we may not detect
+ * version mismatch.  If the ub_magic field is moved, applications that
+ * expect the magic number in the first word won't work.
+ */
+#define        UBERBLOCK_MAGIC         0x00bab10c              /* oo-ba-bloc!  */
+#define        UBERBLOCK_SHIFT         10                      /* up to 1K     */
+
+struct uberblock {
+       uint64_t        ub_magic;       /* UBERBLOCK_MAGIC              */
+       uint64_t        ub_version;     /* SPA_VERSION                  */
+       uint64_t        ub_txg;         /* txg of last sync             */
+       uint64_t        ub_guid_sum;    /* sum of all vdev guids        */
+       uint64_t        ub_timestamp;   /* UTC time of last sync        */
+       blkptr_t        ub_rootbp;      /* MOS objset_phys_t            */
+
+       /* highest SPA_VERSION supported by software that wrote this txg */
+       uint64_t        ub_software_version;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_UBERBLOCK_IMPL_H */
diff --git a/include/sys/unique.h b/include/sys/unique.h
new file mode 100644 (file)
index 0000000..d971752
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SYS_UNIQUE_H
+#define        _SYS_UNIQUE_H
+
+
+
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* The number of significant bits in each unique value. */
+#define        UNIQUE_BITS     56
+
+void unique_init(void);
+void unique_fini(void);
+
+/*
+ * Return a new unique value (which will not be uniquified against until
+ * it is unique_insert()-ed.
+ */
+uint64_t unique_create(void);
+
+/* Return a unique value, which equals the one passed in if possible. */
+uint64_t unique_insert(uint64_t value);
+
+/* Indicate that this value no longer needs to be uniquified against. */
+void unique_remove(uint64_t value);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_UNIQUE_H */
diff --git a/include/sys/uuid.h b/include/sys/uuid.h
new file mode 100644 (file)
index 0000000..eab4622
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SYS_UUID_H
+#define        _SYS_UUID_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The copyright in this file is taken from the original Leach
+ * & Salz UUID specification, from which this implementation
+ * is derived.
+ */
+
+/*
+ * Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+ * Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+ * Digital Equipment Corporation, Maynard, Mass.  Copyright (c) 1998
+ * Microsoft.  To anyone who acknowledges that this file is provided
+ * "AS IS" without any express or implied warranty: permission to use,
+ * copy, modify, and distribute this file for any purpose is hereby
+ * granted without fee, provided that the above copyright notices and
+ * this notice appears in all source code copies, and that none of the
+ * names of Open Software Foundation, Inc., Hewlett-Packard Company,
+ * or Digital Equipment Corporation be used in advertising or
+ * publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Neither Open Software
+ * Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
+ * Equipment Corporation makes any representations about the
+ * suitability of this software for any purpose.
+ */
+
+#include <sys/types.h>
+#include <sys/byteorder.h>
+
+typedef struct {
+       uint8_t         nodeID[6];
+} uuid_node_t;
+
+/*
+ * The uuid type used throughout when referencing uuids themselves
+ */
+struct uuid {
+       uint32_t        time_low;
+       uint16_t        time_mid;
+       uint16_t        time_hi_and_version;
+       uint8_t         clock_seq_hi_and_reserved;
+       uint8_t         clock_seq_low;
+       uint8_t         node_addr[6];
+};
+
+#define        UUID_PRINTABLE_STRING_LENGTH 37
+
+/*
+ * Convert a uuid to/from little-endian format
+ */
+#define        UUID_LE_CONVERT(dest, src)                                      \
+{                                                                      \
+       (dest) = (src);                                                 \
+       (dest).time_low = LE_32((dest).time_low);                       \
+       (dest).time_mid = LE_16((dest).time_mid);                       \
+       (dest).time_hi_and_version = LE_16((dest).time_hi_and_version); \
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_UUID_H */
diff --git a/include/sys/vdev.h b/include/sys/vdev.h
new file mode 100644 (file)
index 0000000..941f234
--- /dev/null
@@ -0,0 +1,161 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _SYS_VDEV_H
+#define        _SYS_VDEV_H
+
+#include <sys/spa.h>
+#include <sys/zio.h>
+#include <sys/dmu.h>
+#include <sys/space_map.h>
+#include <sys/fs/zfs.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum vdev_dtl_type {
+       DTL_MISSING,    /* 0% replication: no copies of the data */
+       DTL_PARTIAL,    /* less than 100% replication: some copies missing */
+       DTL_SCRUB,      /* unable to fully repair during scrub/resilver */
+       DTL_OUTAGE,     /* temporarily missing (used to attempt detach) */
+       DTL_TYPES
+} vdev_dtl_type_t;
+
+extern boolean_t zfs_nocacheflush;
+
+extern int vdev_open(vdev_t *);
+extern void vdev_open_children(vdev_t *);
+extern boolean_t vdev_uses_zvols(vdev_t *);
+extern int vdev_validate(vdev_t *);
+extern void vdev_close(vdev_t *);
+extern int vdev_create(vdev_t *, uint64_t txg, boolean_t isreplace);
+extern void vdev_reopen(vdev_t *);
+extern int vdev_validate_aux(vdev_t *vd);
+extern zio_t *vdev_probe(vdev_t *vd, zio_t *pio);
+
+extern boolean_t vdev_is_bootable(vdev_t *vd);
+extern vdev_t *vdev_lookup_top(spa_t *spa, uint64_t vdev);
+extern vdev_t *vdev_lookup_by_guid(vdev_t *vd, uint64_t guid);
+extern void vdev_dtl_dirty(vdev_t *vd, vdev_dtl_type_t d,
+    uint64_t txg, uint64_t size);
+extern boolean_t vdev_dtl_contains(vdev_t *vd, vdev_dtl_type_t d,
+    uint64_t txg, uint64_t size);
+extern boolean_t vdev_dtl_empty(vdev_t *vd, vdev_dtl_type_t d);
+extern void vdev_dtl_reassess(vdev_t *vd, uint64_t txg, uint64_t scrub_txg,
+    int scrub_done);
+extern boolean_t vdev_dtl_required(vdev_t *vd);
+extern boolean_t vdev_resilver_needed(vdev_t *vd,
+    uint64_t *minp, uint64_t *maxp);
+
+extern void vdev_hold(vdev_t *);
+extern void vdev_rele(vdev_t *);
+
+extern int vdev_metaslab_init(vdev_t *vd, uint64_t txg);
+extern void vdev_metaslab_fini(vdev_t *vd);
+extern void vdev_metaslab_set_size(vdev_t *);
+extern void vdev_expand(vdev_t *vd, uint64_t txg);
+extern void vdev_split(vdev_t *vd);
+
+
+extern void vdev_get_stats(vdev_t *vd, vdev_stat_t *vs);
+extern void vdev_clear_stats(vdev_t *vd);
+extern void vdev_stat_update(zio_t *zio, uint64_t psize);
+extern void vdev_scan_stat_init(vdev_t *vd);
+extern void vdev_propagate_state(vdev_t *vd);
+extern void vdev_set_state(vdev_t *vd, boolean_t isopen, vdev_state_t state,
+    vdev_aux_t aux);
+
+extern void vdev_space_update(vdev_t *vd,
+    int64_t alloc_delta, int64_t defer_delta, int64_t space_delta);
+
+extern uint64_t vdev_psize_to_asize(vdev_t *vd, uint64_t psize);
+
+extern int vdev_fault(spa_t *spa, uint64_t guid, vdev_aux_t aux);
+extern int vdev_degrade(spa_t *spa, uint64_t guid, vdev_aux_t aux);
+extern int vdev_online(spa_t *spa, uint64_t guid, uint64_t flags,
+    vdev_state_t *);
+extern int vdev_offline(spa_t *spa, uint64_t guid, uint64_t flags);
+extern void vdev_clear(spa_t *spa, vdev_t *vd);
+
+extern boolean_t vdev_is_dead(vdev_t *vd);
+extern boolean_t vdev_readable(vdev_t *vd);
+extern boolean_t vdev_writeable(vdev_t *vd);
+extern boolean_t vdev_allocatable(vdev_t *vd);
+extern boolean_t vdev_accessible(vdev_t *vd, zio_t *zio);
+
+extern void vdev_cache_init(vdev_t *vd);
+extern void vdev_cache_fini(vdev_t *vd);
+extern int vdev_cache_read(zio_t *zio);
+extern void vdev_cache_write(zio_t *zio);
+extern void vdev_cache_purge(vdev_t *vd);
+
+extern void vdev_queue_init(vdev_t *vd);
+extern void vdev_queue_fini(vdev_t *vd);
+extern zio_t *vdev_queue_io(zio_t *zio);
+extern void vdev_queue_io_done(zio_t *zio);
+
+extern void vdev_config_dirty(vdev_t *vd);
+extern void vdev_config_clean(vdev_t *vd);
+extern int vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg,
+    boolean_t);
+
+extern void vdev_state_dirty(vdev_t *vd);
+extern void vdev_state_clean(vdev_t *vd);
+
+typedef enum vdev_config_flag {
+       VDEV_CONFIG_SPARE = 1 << 0,
+       VDEV_CONFIG_L2CACHE = 1 << 1,
+       VDEV_CONFIG_REMOVING = 1 << 2
+} vdev_config_flag_t;
+
+extern void vdev_top_config_generate(spa_t *spa, nvlist_t *config);
+extern nvlist_t *vdev_config_generate(spa_t *spa, vdev_t *vd,
+    boolean_t getstats, vdev_config_flag_t flags);
+
+/*
+ * Label routines
+ */
+struct uberblock;
+extern uint64_t vdev_label_offset(uint64_t psize, int l, uint64_t offset);
+extern int vdev_label_number(uint64_t psise, uint64_t offset);
+extern nvlist_t *vdev_label_read_config(vdev_t *vd);
+extern void vdev_uberblock_load(zio_t *zio, vdev_t *vd, struct uberblock *ub);
+
+typedef enum {
+       VDEV_LABEL_CREATE,      /* create/add a new device */
+       VDEV_LABEL_REPLACE,     /* replace an existing device */
+       VDEV_LABEL_SPARE,       /* add a new hot spare */
+       VDEV_LABEL_REMOVE,      /* remove an existing device */
+       VDEV_LABEL_L2CACHE,     /* add an L2ARC cache device */
+       VDEV_LABEL_SPLIT        /* generating new label for split-off dev */
+} vdev_labeltype_t;
+
+extern int vdev_label_init(vdev_t *vd, uint64_t txg, vdev_labeltype_t reason);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_VDEV_H */
diff --git a/include/sys/vdev_disk.h b/include/sys/vdev_disk.h
new file mode 100644 (file)
index 0000000..986c336
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
+ * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+ * Written by Brian Behlendorf <behlendorf1@llnl.gov>.
+ * LLNL-CODE-403049.
+ */
+
+#ifndef _SYS_VDEV_DISK_H
+#define _SYS_VDEV_DISK_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef _KERNEL
+#include <sys/vdev.h>
+#include <sys/ddi.h>
+#include <sys/sunldi.h>
+#include <sys/sunddi.h>
+
+typedef struct vdev_disk {
+       ddi_devid_t             vd_devid;
+       char                    *vd_minor;
+       struct block_device     *vd_bdev;
+} vdev_disk_t;
+
+extern int vdev_disk_physio(struct block_device *, caddr_t,
+                           size_t, uint64_t, int);
+extern int vdev_disk_read_rootlabel(char *, char *, nvlist_t **);
+
+/* 2.6.24 API change */
+#ifdef HAVE_2ARGS_BIO_END_IO_T
+# define BIO_END_IO_PROTO(fn, x, y, z) static void fn(struct bio *x, int z)
+# define BIO_END_IO_RETURN(rc)         return
+#else
+# define BIO_END_IO_PROTO(fn, x, y, z) static int fn(struct bio *x, \
+                                                     unsigned int y, int z)
+# define BIO_END_IO_RETURN(rc)         return rc
+#endif /* HAVE_2ARGS_BIO_END_IO_T */
+
+/* 2.6.29 API change */
+#ifdef HAVE_BIO_RW_SYNCIO
+# define DIO_RW_SYNCIO                 BIO_RW_SYNCIO
+#else
+# define DIO_RW_SYNCIO                 BIO_RW_SYNC
+#endif /* HAVE_BIO_RW_SYNCIO */
+
+/* 2.6.28 API change */
+#ifdef HAVE_OPEN_BDEV_EXCLUSIVE
+# define vdev_bdev_open(path, md, hld) open_bdev_exclusive(path, md, hld)
+# define vdev_bdev_close(bdev, md)     close_bdev_exclusive(bdev, md)
+#else
+# define vdev_bdev_open(path, md, hld) open_bdev_excl(path, md, hld)
+# define vdev_bdev_close(bdev, md)     close_bdev_excl(bdev)
+#endif /* HAVE_OPEN_BDEV_EXCLUSIVE */
+
+/* 2.6.22 API change */
+#ifdef HAVE_1ARG_INVALIDATE_BDEV
+# define vdev_bdev_invalidate(bdev)    invalidate_bdev(bdev)
+#else
+# define vdev_bdev_invalidate(bdev)    invalidate_bdev(bdev, 1)
+#endif /* HAVE_1ARG_INVALIDATE_BDEV */
+
+/* 2.6.30 API change */
+#ifdef HAVE_BDEV_LOGICAL_BLOCK_SIZE
+# define vdev_bdev_block_size(bdev)    bdev_logical_block_size(bdev)
+#else
+# define vdev_bdev_block_size(bdev)    bdev_hardsect_size(bdev)
+#endif
+
+#endif /* _KERNEL */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_VDEV_DISK_H */
diff --git a/include/sys/vdev_file.h b/include/sys/vdev_file.h
new file mode 100644 (file)
index 0000000..b4d40f9
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_VDEV_FILE_H
+#define        _SYS_VDEV_FILE_H
+
+
+
+#include <sys/vdev.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct vdev_file {
+       vnode_t         *vf_vnode;
+} vdev_file_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_VDEV_FILE_H */
diff --git a/include/sys/vdev_impl.h b/include/sys/vdev_impl.h
new file mode 100644 (file)
index 0000000..161bd21
--- /dev/null
@@ -0,0 +1,322 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _SYS_VDEV_IMPL_H
+#define        _SYS_VDEV_IMPL_H
+
+#include <sys/avl.h>
+#include <sys/dmu.h>
+#include <sys/metaslab.h>
+#include <sys/nvpair.h>
+#include <sys/space_map.h>
+#include <sys/vdev.h>
+#include <sys/dkio.h>
+#include <sys/uberblock_impl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Virtual device descriptors.
+ *
+ * All storage pool operations go through the virtual device framework,
+ * which provides data replication and I/O scheduling.
+ */
+
+/*
+ * Forward declarations that lots of things need.
+ */
+typedef struct vdev_queue vdev_queue_t;
+typedef struct vdev_cache vdev_cache_t;
+typedef struct vdev_cache_entry vdev_cache_entry_t;
+
+/*
+ * Virtual device operations
+ */
+typedef int    vdev_open_func_t(vdev_t *vd, uint64_t *size, uint64_t *ashift);
+typedef void   vdev_close_func_t(vdev_t *vd);
+typedef uint64_t vdev_asize_func_t(vdev_t *vd, uint64_t psize);
+typedef int    vdev_io_start_func_t(zio_t *zio);
+typedef void   vdev_io_done_func_t(zio_t *zio);
+typedef void   vdev_state_change_func_t(vdev_t *vd, int, int);
+typedef void   vdev_hold_func_t(vdev_t *vd);
+typedef void   vdev_rele_func_t(vdev_t *vd);
+
+typedef struct vdev_ops {
+       vdev_open_func_t                *vdev_op_open;
+       vdev_close_func_t               *vdev_op_close;
+       vdev_asize_func_t               *vdev_op_asize;
+       vdev_io_start_func_t            *vdev_op_io_start;
+       vdev_io_done_func_t             *vdev_op_io_done;
+       vdev_state_change_func_t        *vdev_op_state_change;
+       vdev_hold_func_t                *vdev_op_hold;
+       vdev_rele_func_t                *vdev_op_rele;
+       char                            vdev_op_type[16];
+       boolean_t                       vdev_op_leaf;
+} vdev_ops_t;
+
+/*
+ * Virtual device properties
+ */
+struct vdev_cache_entry {
+       char            *ve_data;
+       uint64_t        ve_offset;
+       uint64_t        ve_lastused;
+       avl_node_t      ve_offset_node;
+       avl_node_t      ve_lastused_node;
+       uint32_t        ve_hits;
+       uint16_t        ve_missed_update;
+       zio_t           *ve_fill_io;
+};
+
+struct vdev_cache {
+       avl_tree_t      vc_offset_tree;
+       avl_tree_t      vc_lastused_tree;
+       kmutex_t        vc_lock;
+};
+
+struct vdev_queue {
+       avl_tree_t      vq_deadline_tree;
+       avl_tree_t      vq_read_tree;
+       avl_tree_t      vq_write_tree;
+       avl_tree_t      vq_pending_tree;
+       kmutex_t        vq_lock;
+};
+
+/*
+ * Virtual device descriptor
+ */
+struct vdev {
+       /*
+        * Common to all vdev types.
+        */
+       uint64_t        vdev_id;        /* child number in vdev parent  */
+       uint64_t        vdev_guid;      /* unique ID for this vdev      */
+       uint64_t        vdev_guid_sum;  /* self guid + all child guids  */
+       uint64_t        vdev_orig_guid; /* orig. guid prior to remove   */
+       uint64_t        vdev_asize;     /* allocatable device capacity  */
+       uint64_t        vdev_min_asize; /* min acceptable asize         */
+       uint64_t        vdev_ashift;    /* block alignment shift        */
+       uint64_t        vdev_state;     /* see VDEV_STATE_* #defines    */
+       uint64_t        vdev_prevstate; /* used when reopening a vdev   */
+       vdev_ops_t      *vdev_ops;      /* vdev operations              */
+       spa_t           *vdev_spa;      /* spa for this vdev            */
+       void            *vdev_tsd;      /* type-specific data           */
+       vnode_t         *vdev_name_vp;  /* vnode for pathname           */
+       vnode_t         *vdev_devid_vp; /* vnode for devid              */
+       vdev_t          *vdev_top;      /* top-level vdev               */
+       vdev_t          *vdev_parent;   /* parent vdev                  */
+       vdev_t          **vdev_child;   /* array of children            */
+       uint64_t        vdev_children;  /* number of children           */
+       space_map_t     vdev_dtl[DTL_TYPES]; /* in-core dirty time logs */
+       vdev_stat_t     vdev_stat;      /* virtual device statistics    */
+       boolean_t       vdev_expanding; /* expand the vdev?             */
+       boolean_t       vdev_reopening; /* reopen in progress?          */
+       int             vdev_open_error; /* error on last open          */
+       kthread_t       *vdev_open_thread; /* thread opening children   */
+       uint64_t        vdev_crtxg;     /* txg when top-level was added */
+
+       /*
+        * Top-level vdev state.
+        */
+       uint64_t        vdev_ms_array;  /* metaslab array object        */
+       uint64_t        vdev_ms_shift;  /* metaslab size shift          */
+       uint64_t        vdev_ms_count;  /* number of metaslabs          */
+       metaslab_group_t *vdev_mg;      /* metaslab group               */
+       metaslab_t      **vdev_ms;      /* metaslab array               */
+       txg_list_t      vdev_ms_list;   /* per-txg dirty metaslab lists */
+       txg_list_t      vdev_dtl_list;  /* per-txg dirty DTL lists      */
+       txg_node_t      vdev_txg_node;  /* per-txg dirty vdev linkage   */
+       boolean_t       vdev_remove_wanted; /* async remove wanted?     */
+       boolean_t       vdev_probe_wanted; /* async probe wanted?       */
+       uint64_t        vdev_removing;  /* device is being removed?     */
+       list_node_t     vdev_config_dirty_node; /* config dirty list    */
+       list_node_t     vdev_state_dirty_node; /* state dirty list      */
+       uint64_t        vdev_deflate_ratio; /* deflation ratio (x512)   */
+       uint64_t        vdev_islog;     /* is an intent log device      */
+       uint64_t        vdev_ishole;    /* is a hole in the namespace   */
+
+       /*
+        * Leaf vdev state.
+        */
+       uint64_t        vdev_psize;     /* physical device capacity     */
+       space_map_obj_t vdev_dtl_smo;   /* dirty time log space map obj */
+       txg_node_t      vdev_dtl_node;  /* per-txg dirty DTL linkage    */
+       uint64_t        vdev_wholedisk; /* true if this is a whole disk */
+       uint64_t        vdev_offline;   /* persistent offline state     */
+       uint64_t        vdev_faulted;   /* persistent faulted state     */
+       uint64_t        vdev_degraded;  /* persistent degraded state    */
+       uint64_t        vdev_removed;   /* persistent removed state     */
+       uint64_t        vdev_resilvering; /* persistent resilvering state */
+       uint64_t        vdev_nparity;   /* number of parity devices for raidz */
+       char            *vdev_path;     /* vdev path (if any)           */
+       char            *vdev_devid;    /* vdev devid (if any)          */
+       char            *vdev_physpath; /* vdev device path (if any)    */
+       char            *vdev_fru;      /* physical FRU location        */
+       uint64_t        vdev_not_present; /* not present during import  */
+       uint64_t        vdev_unspare;   /* unspare when resilvering done */
+       hrtime_t        vdev_last_try;  /* last reopen time             */
+       boolean_t       vdev_nowritecache; /* true if flushwritecache failed */
+       boolean_t       vdev_checkremove; /* temporary online test      */
+       boolean_t       vdev_forcefault; /* force online fault          */
+       boolean_t       vdev_splitting; /* split or repair in progress  */
+       boolean_t       vdev_delayed_close; /* delayed device close?    */
+       uint8_t         vdev_tmpoffline; /* device taken offline temporarily? */
+       uint8_t         vdev_detached;  /* device detached?             */
+       uint8_t         vdev_cant_read; /* vdev is failing all reads    */
+       uint8_t         vdev_cant_write; /* vdev is failing all writes  */
+       uint64_t        vdev_isspare;   /* was a hot spare              */
+       uint64_t        vdev_isl2cache; /* was a l2cache device         */
+       vdev_queue_t    vdev_queue;     /* I/O deadline schedule queue  */
+       vdev_cache_t    vdev_cache;     /* physical block cache         */
+       spa_aux_vdev_t  *vdev_aux;      /* for l2cache vdevs            */
+       zio_t           *vdev_probe_zio; /* root of current probe       */
+       vdev_aux_t      vdev_label_aux; /* on-disk aux state            */
+
+       /*
+        * For DTrace to work in userland (libzpool) context, these fields must
+        * remain at the end of the structure.  DTrace will use the kernel's
+        * CTF definition for 'struct vdev', and since the size of a kmutex_t is
+        * larger in userland, the offsets for the rest fields would be
+        * incorrect.
+        */
+       kmutex_t        vdev_dtl_lock;  /* vdev_dtl_{map,resilver}      */
+       kmutex_t        vdev_stat_lock; /* vdev_stat                    */
+       kmutex_t        vdev_probe_lock; /* protects vdev_probe_zio     */
+};
+
+#define        VDEV_RAIDZ_MAXPARITY    3
+
+#define        VDEV_PAD_SIZE           (8 << 10)
+/* 2 padding areas (vl_pad1 and vl_pad2) to skip */
+#define        VDEV_SKIP_SIZE          VDEV_PAD_SIZE * 2
+#define        VDEV_PHYS_SIZE          (112 << 10)
+#define        VDEV_UBERBLOCK_RING     (128 << 10)
+
+#define        VDEV_UBERBLOCK_SHIFT(vd)        \
+       MAX((vd)->vdev_top->vdev_ashift, UBERBLOCK_SHIFT)
+#define        VDEV_UBERBLOCK_COUNT(vd)        \
+       (VDEV_UBERBLOCK_RING >> VDEV_UBERBLOCK_SHIFT(vd))
+#define        VDEV_UBERBLOCK_OFFSET(vd, n)    \
+       offsetof(vdev_label_t, vl_uberblock[(n) << VDEV_UBERBLOCK_SHIFT(vd)])
+#define        VDEV_UBERBLOCK_SIZE(vd)         (1ULL << VDEV_UBERBLOCK_SHIFT(vd))
+
+typedef struct vdev_phys {
+       char            vp_nvlist[VDEV_PHYS_SIZE - sizeof (zio_eck_t)];
+       zio_eck_t       vp_zbt;
+} vdev_phys_t;
+
+typedef struct vdev_label {
+       char            vl_pad1[VDEV_PAD_SIZE];                 /*  8K */
+       char            vl_pad2[VDEV_PAD_SIZE];                 /*  8K */
+       vdev_phys_t     vl_vdev_phys;                           /* 112K */
+       char            vl_uberblock[VDEV_UBERBLOCK_RING];      /* 128K */
+} vdev_label_t;                                                        /* 256K total */
+
+/*
+ * vdev_dirty() flags
+ */
+#define        VDD_METASLAB    0x01
+#define        VDD_DTL         0x02
+
+/*
+ * Size and offset of embedded boot loader region on each label.
+ * The total size of the first two labels plus the boot area is 4MB.
+ */
+#define        VDEV_BOOT_OFFSET        (2 * sizeof (vdev_label_t))
+#define        VDEV_BOOT_SIZE          (7ULL << 19)                    /* 3.5M */
+
+/*
+ * Size of label regions at the start and end of each leaf device.
+ */
+#define        VDEV_LABEL_START_SIZE   (2 * sizeof (vdev_label_t) + VDEV_BOOT_SIZE)
+#define        VDEV_LABEL_END_SIZE     (2 * sizeof (vdev_label_t))
+#define        VDEV_LABELS             4
+
+#define        VDEV_ALLOC_LOAD         0
+#define        VDEV_ALLOC_ADD          1
+#define        VDEV_ALLOC_SPARE        2
+#define        VDEV_ALLOC_L2CACHE      3
+#define        VDEV_ALLOC_ROOTPOOL     4
+#define        VDEV_ALLOC_SPLIT        5
+
+/*
+ * Allocate or free a vdev
+ */
+extern vdev_t *vdev_alloc_common(spa_t *spa, uint_t id, uint64_t guid,
+    vdev_ops_t *ops);
+extern int vdev_alloc(spa_t *spa, vdev_t **vdp, nvlist_t *config,
+    vdev_t *parent, uint_t id, int alloctype);
+extern void vdev_free(vdev_t *vd);
+
+/*
+ * Add or remove children and parents
+ */
+extern void vdev_add_child(vdev_t *pvd, vdev_t *cvd);
+extern void vdev_remove_child(vdev_t *pvd, vdev_t *cvd);
+extern void vdev_compact_children(vdev_t *pvd);
+extern vdev_t *vdev_add_parent(vdev_t *cvd, vdev_ops_t *ops);
+extern void vdev_remove_parent(vdev_t *cvd);
+
+/*
+ * vdev sync load and sync
+ */
+extern void vdev_load_log_state(vdev_t *nvd, vdev_t *ovd);
+extern boolean_t vdev_log_state_valid(vdev_t *vd);
+extern void vdev_load(vdev_t *vd);
+extern void vdev_sync(vdev_t *vd, uint64_t txg);
+extern void vdev_sync_done(vdev_t *vd, uint64_t txg);
+extern void vdev_dirty(vdev_t *vd, int flags, void *arg, uint64_t txg);
+
+/*
+ * Available vdev types.
+ */
+extern vdev_ops_t vdev_root_ops;
+extern vdev_ops_t vdev_mirror_ops;
+extern vdev_ops_t vdev_replacing_ops;
+extern vdev_ops_t vdev_raidz_ops;
+extern vdev_ops_t vdev_disk_ops;
+extern vdev_ops_t vdev_file_ops;
+extern vdev_ops_t vdev_missing_ops;
+extern vdev_ops_t vdev_hole_ops;
+extern vdev_ops_t vdev_spare_ops;
+
+/*
+ * Common size functions
+ */
+extern uint64_t vdev_default_asize(vdev_t *vd, uint64_t psize);
+extern uint64_t vdev_get_min_asize(vdev_t *vd);
+extern void vdev_set_min_asize(vdev_t *vd);
+
+/*
+ * zdb uses this tunable, so it must be declared here to make lint happy.
+ */
+extern int zfs_vdev_cache_size;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_VDEV_IMPL_H */
diff --git a/include/sys/zap.h b/include/sys/zap.h
new file mode 100644 (file)
index 0000000..a1130bb
--- /dev/null
@@ -0,0 +1,482 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_ZAP_H
+#define        _SYS_ZAP_H
+
+/*
+ * ZAP - ZFS Attribute Processor
+ *
+ * The ZAP is a module which sits on top of the DMU (Data Management
+ * Unit) and implements a higher-level storage primitive using DMU
+ * objects.  Its primary consumer is the ZPL (ZFS Posix Layer).
+ *
+ * A "zapobj" is a DMU object which the ZAP uses to stores attributes.
+ * Users should use only zap routines to access a zapobj - they should
+ * not access the DMU object directly using DMU routines.
+ *
+ * The attributes stored in a zapobj are name-value pairs.  The name is
+ * a zero-terminated string of up to ZAP_MAXNAMELEN bytes (including
+ * terminating NULL).  The value is an array of integers, which may be
+ * 1, 2, 4, or 8 bytes long.  The total space used by the array (number
+ * of integers * integer length) can be up to ZAP_MAXVALUELEN bytes.
+ * Note that an 8-byte integer value can be used to store the location
+ * (object number) of another dmu object (which may be itself a zapobj).
+ * Note that you can use a zero-length attribute to store a single bit
+ * of information - the attribute is present or not.
+ *
+ * The ZAP routines are thread-safe.  However, you must observe the
+ * DMU's restriction that a transaction may not be operated on
+ * concurrently.
+ *
+ * Any of the routines that return an int may return an I/O error (EIO
+ * or ECHECKSUM).
+ *
+ *
+ * Implementation / Performance Notes:
+ *
+ * The ZAP is intended to operate most efficiently on attributes with
+ * short (49 bytes or less) names and single 8-byte values, for which
+ * the microzap will be used.  The ZAP should be efficient enough so
+ * that the user does not need to cache these attributes.
+ *
+ * The ZAP's locking scheme makes its routines thread-safe.  Operations
+ * on different zapobjs will be processed concurrently.  Operations on
+ * the same zapobj which only read data will be processed concurrently.
+ * Operations on the same zapobj which modify data will be processed
+ * concurrently when there are many attributes in the zapobj (because
+ * the ZAP uses per-block locking - more than 128 * (number of cpus)
+ * small attributes will suffice).
+ */
+
+/*
+ * We're using zero-terminated byte strings (ie. ASCII or UTF-8 C
+ * strings) for the names of attributes, rather than a byte string
+ * bounded by an explicit length.  If some day we want to support names
+ * in character sets which have embedded zeros (eg. UTF-16, UTF-32),
+ * we'll have to add routines for using length-bounded strings.
+ */
+
+#include <sys/dmu.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The matchtype specifies which entry will be accessed.
+ * MT_EXACT: only find an exact match (non-normalized)
+ * MT_FIRST: find the "first" normalized (case and Unicode
+ *     form) match; the designated "first" match will not change as long
+ *     as the set of entries with this normalization doesn't change
+ * MT_BEST: if there is an exact match, find that, otherwise find the
+ *     first normalized match
+ */
+typedef enum matchtype
+{
+       MT_EXACT,
+       MT_BEST,
+       MT_FIRST
+} matchtype_t;
+
+typedef enum zap_flags {
+       /* Use 64-bit hash value (serialized cursors will always use 64-bits) */
+       ZAP_FLAG_HASH64 = 1 << 0,
+       /* Key is binary, not string (zap_add_uint64() can be used) */
+       ZAP_FLAG_UINT64_KEY = 1 << 1,
+       /*
+        * First word of key (which must be an array of uint64) is
+        * already randomly distributed.
+        */
+       ZAP_FLAG_PRE_HASHED_KEY = 1 << 2,
+} zap_flags_t;
+
+/*
+ * Create a new zapobj with no attributes and return its object number.
+ * MT_EXACT will cause the zap object to only support MT_EXACT lookups,
+ * otherwise any matchtype can be used for lookups.
+ *
+ * normflags specifies what normalization will be done.  values are:
+ * 0: no normalization (legacy on-disk format, supports MT_EXACT matching
+ *     only)
+ * U8_TEXTPREP_TOLOWER: case normalization will be performed.
+ *     MT_FIRST/MT_BEST matching will find entries that match without
+ *     regard to case (eg. looking for "foo" can find an entry "Foo").
+ * Eventually, other flags will permit unicode normalization as well.
+ */
+uint64_t zap_create(objset_t *ds, dmu_object_type_t ot,
+    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
+uint64_t zap_create_norm(objset_t *ds, int normflags, dmu_object_type_t ot,
+    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
+uint64_t zap_create_flags(objset_t *os, int normflags, zap_flags_t flags,
+    dmu_object_type_t ot, int leaf_blockshift, int indirect_blockshift,
+    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
+
+/*
+ * Create a new zapobj with no attributes from the given (unallocated)
+ * object number.
+ */
+int zap_create_claim(objset_t *ds, uint64_t obj, dmu_object_type_t ot,
+    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
+int zap_create_claim_norm(objset_t *ds, uint64_t obj,
+    int normflags, dmu_object_type_t ot,
+    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
+
+/*
+ * The zapobj passed in must be a valid ZAP object for all of the
+ * following routines.
+ */
+
+/*
+ * Destroy this zapobj and all its attributes.
+ *
+ * Frees the object number using dmu_object_free.
+ */
+int zap_destroy(objset_t *ds, uint64_t zapobj, dmu_tx_t *tx);
+
+/*
+ * Manipulate attributes.
+ *
+ * 'integer_size' is in bytes, and must be 1, 2, 4, or 8.
+ */
+
+/*
+ * Retrieve the contents of the attribute with the given name.
+ *
+ * If the requested attribute does not exist, the call will fail and
+ * return ENOENT.
+ *
+ * If 'integer_size' is smaller than the attribute's integer size, the
+ * call will fail and return EINVAL.
+ *
+ * If 'integer_size' is equal to or larger than the attribute's integer
+ * size, the call will succeed and return 0.  * When converting to a
+ * larger integer size, the integers will be treated as unsigned (ie. no
+ * sign-extension will be performed).
+ *
+ * 'num_integers' is the length (in integers) of 'buf'.
+ *
+ * If the attribute is longer than the buffer, as many integers as will
+ * fit will be transferred to 'buf'.  If the entire attribute was not
+ * transferred, the call will return EOVERFLOW.
+ *
+ * If rn_len is nonzero, realname will be set to the name of the found
+ * entry (which may be different from the requested name if matchtype is
+ * not MT_EXACT).
+ *
+ * If normalization_conflictp is not NULL, it will be set if there is
+ * another name with the same case/unicode normalized form.
+ */
+int zap_lookup(objset_t *ds, uint64_t zapobj, const char *name,
+    uint64_t integer_size, uint64_t num_integers, void *buf);
+int zap_lookup_norm(objset_t *ds, uint64_t zapobj, const char *name,
+    uint64_t integer_size, uint64_t num_integers, void *buf,
+    matchtype_t mt, char *realname, int rn_len,
+    boolean_t *normalization_conflictp);
+int zap_lookup_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
+    int key_numints, uint64_t integer_size, uint64_t num_integers, void *buf);
+int zap_contains(objset_t *ds, uint64_t zapobj, const char *name);
+int zap_prefetch_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
+    int key_numints);
+
+int zap_count_write(objset_t *os, uint64_t zapobj, const char *name,
+    int add, uint64_t *towrite, uint64_t *tooverwrite);
+
+/*
+ * Create an attribute with the given name and value.
+ *
+ * If an attribute with the given name already exists, the call will
+ * fail and return EEXIST.
+ */
+int zap_add(objset_t *ds, uint64_t zapobj, const char *key,
+    int integer_size, uint64_t num_integers,
+    const void *val, dmu_tx_t *tx);
+int zap_add_uint64(objset_t *ds, uint64_t zapobj, const uint64_t *key,
+    int key_numints, int integer_size, uint64_t num_integers,
+    const void *val, dmu_tx_t *tx);
+
+/*
+ * Set the attribute with the given name to the given value.  If an
+ * attribute with the given name does not exist, it will be created.  If
+ * an attribute with the given name already exists, the previous value
+ * will be overwritten.  The integer_size may be different from the
+ * existing attribute's integer size, in which case the attribute's
+ * integer size will be updated to the new value.
+ */
+int zap_update(objset_t *ds, uint64_t zapobj, const char *name,
+    int integer_size, uint64_t num_integers, const void *val, dmu_tx_t *tx);
+int zap_update_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
+    int key_numints,
+    int integer_size, uint64_t num_integers, const void *val, dmu_tx_t *tx);
+
+/*
+ * Get the length (in integers) and the integer size of the specified
+ * attribute.
+ *
+ * If the requested attribute does not exist, the call will fail and
+ * return ENOENT.
+ */
+int zap_length(objset_t *ds, uint64_t zapobj, const char *name,
+    uint64_t *integer_size, uint64_t *num_integers);
+int zap_length_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
+    int key_numints, uint64_t *integer_size, uint64_t *num_integers);
+
+/*
+ * Remove the specified attribute.
+ *
+ * If the specified attribute does not exist, the call will fail and
+ * return ENOENT.
+ */
+int zap_remove(objset_t *ds, uint64_t zapobj, const char *name, dmu_tx_t *tx);
+int zap_remove_norm(objset_t *ds, uint64_t zapobj, const char *name,
+    matchtype_t mt, dmu_tx_t *tx);
+int zap_remove_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
+    int key_numints, dmu_tx_t *tx);
+
+/*
+ * Returns (in *count) the number of attributes in the specified zap
+ * object.
+ */
+int zap_count(objset_t *ds, uint64_t zapobj, uint64_t *count);
+
+/*
+ * Returns (in name) the name of the entry whose (value & mask)
+ * (za_first_integer) is value, or ENOENT if not found.  The string
+ * pointed to by name must be at least 256 bytes long.  If mask==0, the
+ * match must be exact (ie, same as mask=-1ULL).
+ */
+int zap_value_search(objset_t *os, uint64_t zapobj,
+    uint64_t value, uint64_t mask, char *name);
+
+/*
+ * Transfer all the entries from fromobj into intoobj.  Only works on
+ * int_size=8 num_integers=1 values.  Fails if there are any duplicated
+ * entries.
+ */
+int zap_join(objset_t *os, uint64_t fromobj, uint64_t intoobj, dmu_tx_t *tx);
+
+/* Same as zap_join, but set the values to 'value'. */
+int zap_join_key(objset_t *os, uint64_t fromobj, uint64_t intoobj,
+    uint64_t value, dmu_tx_t *tx);
+
+/* Same as zap_join, but add together any duplicated entries. */
+int zap_join_increment(objset_t *os, uint64_t fromobj, uint64_t intoobj,
+    dmu_tx_t *tx);
+
+/*
+ * Manipulate entries where the name + value are the "same" (the name is
+ * a stringified version of the value).
+ */
+int zap_add_int(objset_t *os, uint64_t obj, uint64_t value, dmu_tx_t *tx);
+int zap_remove_int(objset_t *os, uint64_t obj, uint64_t value, dmu_tx_t *tx);
+int zap_lookup_int(objset_t *os, uint64_t obj, uint64_t value);
+int zap_increment_int(objset_t *os, uint64_t obj, uint64_t key, int64_t delta,
+    dmu_tx_t *tx);
+
+/* Here the key is an int and the value is a different int. */
+int zap_add_int_key(objset_t *os, uint64_t obj,
+    uint64_t key, uint64_t value, dmu_tx_t *tx);
+int zap_lookup_int_key(objset_t *os, uint64_t obj,
+    uint64_t key, uint64_t *valuep);
+
+/*
+ * They name is a stringified version of key; increment its value by
+ * delta.  Zero values will be zap_remove()-ed.
+ */
+int zap_increment_int(objset_t *os, uint64_t obj, uint64_t key, int64_t delta,
+    dmu_tx_t *tx);
+int zap_increment(objset_t *os, uint64_t obj, const char *name, int64_t delta,
+    dmu_tx_t *tx);
+
+struct zap;
+struct zap_leaf;
+typedef struct zap_cursor {
+       /* This structure is opaque! */
+       objset_t *zc_objset;
+       struct zap *zc_zap;
+       struct zap_leaf *zc_leaf;
+       uint64_t zc_zapobj;
+       uint64_t zc_serialized;
+       uint64_t zc_hash;
+       uint32_t zc_cd;
+} zap_cursor_t;
+
+typedef struct {
+       int za_integer_length;
+       /*
+        * za_normalization_conflict will be set if there are additional
+        * entries with this normalized form (eg, "foo" and "Foo").
+        */
+       boolean_t za_normalization_conflict;
+       uint64_t za_num_integers;
+       uint64_t za_first_integer;      /* no sign extension for <8byte ints */
+       char za_name[MAXNAMELEN];
+} zap_attribute_t;
+
+/*
+ * The interface for listing all the attributes of a zapobj can be
+ * thought of as cursor moving down a list of the attributes one by
+ * one.  The cookie returned by the zap_cursor_serialize routine is
+ * persistent across system calls (and across reboot, even).
+ */
+
+/*
+ * Initialize a zap cursor, pointing to the "first" attribute of the
+ * zapobj.  You must _fini the cursor when you are done with it.
+ */
+void zap_cursor_init(zap_cursor_t *zc, objset_t *ds, uint64_t zapobj);
+void zap_cursor_fini(zap_cursor_t *zc);
+
+/*
+ * Get the attribute currently pointed to by the cursor.  Returns
+ * ENOENT if at the end of the attributes.
+ */
+int zap_cursor_retrieve(zap_cursor_t *zc, zap_attribute_t *za);
+
+/*
+ * Advance the cursor to the next attribute.
+ */
+void zap_cursor_advance(zap_cursor_t *zc);
+
+/*
+ * Get a persistent cookie pointing to the current position of the zap
+ * cursor.  The low 4 bits in the cookie are always zero, and thus can
+ * be used as to differentiate a serialized cookie from a different type
+ * of value.  The cookie will be less than 2^32 as long as there are
+ * fewer than 2^22 (4.2 million) entries in the zap object.
+ */
+uint64_t zap_cursor_serialize(zap_cursor_t *zc);
+
+/*
+ * Advance the cursor to the attribute having the given key.
+ */
+int zap_cursor_move_to_key(zap_cursor_t *zc, const char *name, matchtype_t mt);
+
+/*
+ * Initialize a zap cursor pointing to the position recorded by
+ * zap_cursor_serialize (in the "serialized" argument).  You can also
+ * use a "serialized" argument of 0 to start at the beginning of the
+ * zapobj (ie.  zap_cursor_init_serialized(..., 0) is equivalent to
+ * zap_cursor_init(...).)
+ */
+void zap_cursor_init_serialized(zap_cursor_t *zc, objset_t *ds,
+    uint64_t zapobj, uint64_t serialized);
+
+
+#define        ZAP_HISTOGRAM_SIZE 10
+
+typedef struct zap_stats {
+       /*
+        * Size of the pointer table (in number of entries).
+        * This is always a power of 2, or zero if it's a microzap.
+        * In general, it should be considerably greater than zs_num_leafs.
+        */
+       uint64_t zs_ptrtbl_len;
+
+       uint64_t zs_blocksize;          /* size of zap blocks */
+
+       /*
+        * The number of blocks used.  Note that some blocks may be
+        * wasted because old ptrtbl's and large name/value blocks are
+        * not reused.  (Although their space is reclaimed, we don't
+        * reuse those offsets in the object.)
+        */
+       uint64_t zs_num_blocks;
+
+       /*
+        * Pointer table values from zap_ptrtbl in the zap_phys_t
+        */
+       uint64_t zs_ptrtbl_nextblk;       /* next (larger) copy start block */
+       uint64_t zs_ptrtbl_blks_copied;   /* number source blocks copied */
+       uint64_t zs_ptrtbl_zt_blk;        /* starting block number */
+       uint64_t zs_ptrtbl_zt_numblks;    /* number of blocks */
+       uint64_t zs_ptrtbl_zt_shift;      /* bits to index it */
+
+       /*
+        * Values of the other members of the zap_phys_t
+        */
+       uint64_t zs_block_type;         /* ZBT_HEADER */
+       uint64_t zs_magic;              /* ZAP_MAGIC */
+       uint64_t zs_num_leafs;          /* The number of leaf blocks */
+       uint64_t zs_num_entries;        /* The number of zap entries */
+       uint64_t zs_salt;               /* salt to stir into hash function */
+
+       /*
+        * Histograms.  For all histograms, the last index
+        * (ZAP_HISTOGRAM_SIZE-1) includes any values which are greater
+        * than what can be represented.  For example
+        * zs_leafs_with_n5_entries[ZAP_HISTOGRAM_SIZE-1] is the number
+        * of leafs with more than 45 entries.
+        */
+
+       /*
+        * zs_leafs_with_n_pointers[n] is the number of leafs with
+        * 2^n pointers to it.
+        */
+       uint64_t zs_leafs_with_2n_pointers[ZAP_HISTOGRAM_SIZE];
+
+       /*
+        * zs_leafs_with_n_entries[n] is the number of leafs with
+        * [n*5, (n+1)*5) entries.  In the current implementation, there
+        * can be at most 55 entries in any block, but there may be
+        * fewer if the name or value is large, or the block is not
+        * completely full.
+        */
+       uint64_t zs_blocks_with_n5_entries[ZAP_HISTOGRAM_SIZE];
+
+       /*
+        * zs_leafs_n_tenths_full[n] is the number of leafs whose
+        * fullness is in the range [n/10, (n+1)/10).
+        */
+       uint64_t zs_blocks_n_tenths_full[ZAP_HISTOGRAM_SIZE];
+
+       /*
+        * zs_entries_using_n_chunks[n] is the number of entries which
+        * consume n 24-byte chunks.  (Note, large names/values only use
+        * one chunk, but contribute to zs_num_blocks_large.)
+        */
+       uint64_t zs_entries_using_n_chunks[ZAP_HISTOGRAM_SIZE];
+
+       /*
+        * zs_buckets_with_n_entries[n] is the number of buckets (each
+        * leaf has 64 buckets) with n entries.
+        * zs_buckets_with_n_entries[1] should be very close to
+        * zs_num_entries.
+        */
+       uint64_t zs_buckets_with_n_entries[ZAP_HISTOGRAM_SIZE];
+} zap_stats_t;
+
+/*
+ * Get statistics about a ZAP object.  Note: you need to be aware of the
+ * internal implementation of the ZAP to correctly interpret some of the
+ * statistics.  This interface shouldn't be relied on unless you really
+ * know what you're doing.
+ */
+int zap_get_stats(objset_t *ds, uint64_t zapobj, zap_stats_t *zs);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZAP_H */
diff --git a/include/sys/zap_impl.h b/include/sys/zap_impl.h
new file mode 100644 (file)
index 0000000..1dc322e
--- /dev/null
@@ -0,0 +1,228 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_ZAP_IMPL_H
+#define        _SYS_ZAP_IMPL_H
+
+#include <sys/zap.h>
+#include <sys/zfs_context.h>
+#include <sys/avl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int fzap_default_block_shift;
+
+#define        ZAP_MAGIC 0x2F52AB2ABULL
+
+#define        FZAP_BLOCK_SHIFT(zap)   ((zap)->zap_f.zap_block_shift)
+
+#define        MZAP_ENT_LEN            64
+#define        MZAP_NAME_LEN           (MZAP_ENT_LEN - 8 - 4 - 2)
+#define        MZAP_MAX_BLKSHIFT       SPA_MAXBLOCKSHIFT
+#define        MZAP_MAX_BLKSZ          (1 << MZAP_MAX_BLKSHIFT)
+
+#define        ZAP_NEED_CD             (-1U)
+
+typedef struct mzap_ent_phys {
+       uint64_t mze_value;
+       uint32_t mze_cd;
+       uint16_t mze_pad;       /* in case we want to chain them someday */
+       char mze_name[MZAP_NAME_LEN];
+} mzap_ent_phys_t;
+
+typedef struct mzap_phys {
+       uint64_t mz_block_type; /* ZBT_MICRO */
+       uint64_t mz_salt;
+       uint64_t mz_normflags;
+       uint64_t mz_pad[5];
+       mzap_ent_phys_t mz_chunk[1];
+       /* actually variable size depending on block size */
+} mzap_phys_t;
+
+typedef struct mzap_ent {
+       avl_node_t mze_node;
+       int mze_chunkid;
+       uint64_t mze_hash;
+       uint32_t mze_cd; /* copy from mze_phys->mze_cd */
+} mzap_ent_t;
+
+#define        MZE_PHYS(zap, mze) \
+       (&(zap)->zap_m.zap_phys->mz_chunk[(mze)->mze_chunkid])
+
+/*
+ * The (fat) zap is stored in one object. It is an array of
+ * 1<<FZAP_BLOCK_SHIFT byte blocks. The layout looks like one of:
+ *
+ * ptrtbl fits in first block:
+ *     [zap_phys_t zap_ptrtbl_shift < 6] [zap_leaf_t] ...
+ *
+ * ptrtbl too big for first block:
+ *     [zap_phys_t zap_ptrtbl_shift >= 6] [zap_leaf_t] [ptrtbl] ...
+ *
+ */
+
+struct dmu_buf;
+struct zap_leaf;
+
+#define        ZBT_LEAF                ((1ULL << 63) + 0)
+#define        ZBT_HEADER              ((1ULL << 63) + 1)
+#define        ZBT_MICRO               ((1ULL << 63) + 3)
+/* any other values are ptrtbl blocks */
+
+/*
+ * the embedded pointer table takes up half a block:
+ * block size / entry size (2^3) / 2
+ */
+#define        ZAP_EMBEDDED_PTRTBL_SHIFT(zap) (FZAP_BLOCK_SHIFT(zap) - 3 - 1)
+
+/*
+ * The embedded pointer table starts half-way through the block.  Since
+ * the pointer table itself is half the block, it starts at (64-bit)
+ * word number (1<<ZAP_EMBEDDED_PTRTBL_SHIFT(zap)).
+ */
+#define        ZAP_EMBEDDED_PTRTBL_ENT(zap, idx) \
+       ((uint64_t *)(zap)->zap_f.zap_phys) \
+       [(idx) + (1<<ZAP_EMBEDDED_PTRTBL_SHIFT(zap))]
+
+/*
+ * TAKE NOTE:
+ * If zap_phys_t is modified, zap_byteswap() must be modified.
+ */
+typedef struct zap_phys {
+       uint64_t zap_block_type;        /* ZBT_HEADER */
+       uint64_t zap_magic;             /* ZAP_MAGIC */
+
+       struct zap_table_phys {
+               uint64_t zt_blk;        /* starting block number */
+               uint64_t zt_numblks;    /* number of blocks */
+               uint64_t zt_shift;      /* bits to index it */
+               uint64_t zt_nextblk;    /* next (larger) copy start block */
+               uint64_t zt_blks_copied; /* number source blocks copied */
+       } zap_ptrtbl;
+
+       uint64_t zap_freeblk;           /* the next free block */
+       uint64_t zap_num_leafs;         /* number of leafs */
+       uint64_t zap_num_entries;       /* number of entries */
+       uint64_t zap_salt;              /* salt to stir into hash function */
+       uint64_t zap_normflags;         /* flags for u8_textprep_str() */
+       uint64_t zap_flags;             /* zap_flags_t */
+       /*
+        * This structure is followed by padding, and then the embedded
+        * pointer table.  The embedded pointer table takes up second
+        * half of the block.  It is accessed using the
+        * ZAP_EMBEDDED_PTRTBL_ENT() macro.
+        */
+} zap_phys_t;
+
+typedef struct zap_table_phys zap_table_phys_t;
+
+typedef struct zap {
+       objset_t *zap_objset;
+       uint64_t zap_object;
+       struct dmu_buf *zap_dbuf;
+       krwlock_t zap_rwlock;
+       boolean_t zap_ismicro;
+       int zap_normflags;
+       uint64_t zap_salt;
+       union {
+               struct {
+                       zap_phys_t *zap_phys;
+
+                       /*
+                        * zap_num_entries_mtx protects
+                        * zap_num_entries
+                        */
+                       kmutex_t zap_num_entries_mtx;
+                       int zap_block_shift;
+               } zap_fat;
+               struct {
+                       mzap_phys_t *zap_phys;
+                       int16_t zap_num_entries;
+                       int16_t zap_num_chunks;
+                       int16_t zap_alloc_next;
+                       avl_tree_t zap_avl;
+               } zap_micro;
+       } zap_u;
+} zap_t;
+
+typedef struct zap_name {
+       zap_t *zn_zap;
+       int zn_key_intlen;
+       const void *zn_key_orig;
+       int zn_key_orig_numints;
+       const void *zn_key_norm;
+       int zn_key_norm_numints;
+       uint64_t zn_hash;
+       matchtype_t zn_matchtype;
+       char zn_normbuf[ZAP_MAXNAMELEN];
+} zap_name_t;
+
+#define        zap_f   zap_u.zap_fat
+#define        zap_m   zap_u.zap_micro
+
+boolean_t zap_match(zap_name_t *zn, const char *matchname);
+int zap_lockdir(objset_t *os, uint64_t obj, dmu_tx_t *tx,
+    krw_t lti, boolean_t fatreader, boolean_t adding, zap_t **zapp);
+void zap_unlockdir(zap_t *zap);
+void zap_evict(dmu_buf_t *db, void *vmzap);
+zap_name_t *zap_name_alloc(zap_t *zap, const char *key, matchtype_t mt);
+void zap_name_free(zap_name_t *zn);
+int zap_hashbits(zap_t *zap);
+uint32_t zap_maxcd(zap_t *zap);
+uint64_t zap_getflags(zap_t *zap);
+
+#define        ZAP_HASH_IDX(hash, n) (((n) == 0) ? 0 : ((hash) >> (64 - (n))))
+
+void fzap_byteswap(void *buf, size_t size);
+int fzap_count(zap_t *zap, uint64_t *count);
+int fzap_lookup(zap_name_t *zn,
+    uint64_t integer_size, uint64_t num_integers, void *buf,
+    char *realname, int rn_len, boolean_t *normalization_conflictp);
+void fzap_prefetch(zap_name_t *zn);
+int fzap_count_write(zap_name_t *zn, int add, uint64_t *towrite,
+    uint64_t *tooverwrite);
+int fzap_add(zap_name_t *zn, uint64_t integer_size, uint64_t num_integers,
+    const void *val, dmu_tx_t *tx);
+int fzap_update(zap_name_t *zn,
+    int integer_size, uint64_t num_integers, const void *val, dmu_tx_t *tx);
+int fzap_length(zap_name_t *zn,
+    uint64_t *integer_size, uint64_t *num_integers);
+int fzap_remove(zap_name_t *zn, dmu_tx_t *tx);
+int fzap_cursor_retrieve(zap_t *zap, zap_cursor_t *zc, zap_attribute_t *za);
+void fzap_get_stats(zap_t *zap, zap_stats_t *zs);
+void zap_put_leaf(struct zap_leaf *l);
+
+int fzap_add_cd(zap_name_t *zn,
+    uint64_t integer_size, uint64_t num_integers,
+    const void *val, uint32_t cd, dmu_tx_t *tx);
+void fzap_upgrade(zap_t *zap, dmu_tx_t *tx, zap_flags_t flags);
+int fzap_cursor_move_to_key(zap_cursor_t *zc, zap_name_t *zn);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZAP_IMPL_H */
diff --git a/include/sys/zap_leaf.h b/include/sys/zap_leaf.h
new file mode 100644 (file)
index 0000000..3a33636
--- /dev/null
@@ -0,0 +1,245 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_ZAP_LEAF_H
+#define        _SYS_ZAP_LEAF_H
+
+#include <sys/zap.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct zap;
+struct zap_name;
+struct zap_stats;
+
+#define        ZAP_LEAF_MAGIC 0x2AB1EAF
+
+/* chunk size = 24 bytes */
+#define        ZAP_LEAF_CHUNKSIZE 24
+
+/*
+ * The amount of space available for chunks is:
+ * block size (1<<l->l_bs) - hash entry size (2) * number of hash
+ * entries - header space (2*chunksize)
+ */
+#define        ZAP_LEAF_NUMCHUNKS(l) \
+       (((1<<(l)->l_bs) - 2*ZAP_LEAF_HASH_NUMENTRIES(l)) / \
+       ZAP_LEAF_CHUNKSIZE - 2)
+
+/*
+ * The amount of space within the chunk available for the array is:
+ * chunk size - space for type (1) - space for next pointer (2)
+ */
+#define        ZAP_LEAF_ARRAY_BYTES (ZAP_LEAF_CHUNKSIZE - 3)
+
+#define        ZAP_LEAF_ARRAY_NCHUNKS(bytes) \
+       (((bytes)+ZAP_LEAF_ARRAY_BYTES-1)/ZAP_LEAF_ARRAY_BYTES)
+
+/*
+ * Low water mark:  when there are only this many chunks free, start
+ * growing the ptrtbl.  Ideally, this should be larger than a
+ * "reasonably-sized" entry.  20 chunks is more than enough for the
+ * largest directory entry (MAXNAMELEN (256) byte name, 8-byte value),
+ * while still being only around 3% for 16k blocks.
+ */
+#define        ZAP_LEAF_LOW_WATER (20)
+
+/*
+ * The leaf hash table has block size / 2^5 (32) number of entries,
+ * which should be more than enough for the maximum number of entries,
+ * which is less than block size / CHUNKSIZE (24) / minimum number of
+ * chunks per entry (3).
+ */
+#define        ZAP_LEAF_HASH_SHIFT(l) ((l)->l_bs - 5)
+#define        ZAP_LEAF_HASH_NUMENTRIES(l) (1 << ZAP_LEAF_HASH_SHIFT(l))
+
+/*
+ * The chunks start immediately after the hash table.  The end of the
+ * hash table is at l_hash + HASH_NUMENTRIES, which we simply cast to a
+ * chunk_t.
+ */
+#define        ZAP_LEAF_CHUNK(l, idx) \
+       ((zap_leaf_chunk_t *) \
+       ((l)->l_phys->l_hash + ZAP_LEAF_HASH_NUMENTRIES(l)))[idx]
+#define        ZAP_LEAF_ENTRY(l, idx) (&ZAP_LEAF_CHUNK(l, idx).l_entry)
+
+typedef enum zap_chunk_type {
+       ZAP_CHUNK_FREE = 253,
+       ZAP_CHUNK_ENTRY = 252,
+       ZAP_CHUNK_ARRAY = 251,
+       ZAP_CHUNK_TYPE_MAX = 250
+} zap_chunk_type_t;
+
+#define        ZLF_ENTRIES_CDSORTED (1<<0)
+
+/*
+ * TAKE NOTE:
+ * If zap_leaf_phys_t is modified, zap_leaf_byteswap() must be modified.
+ */
+typedef struct zap_leaf_phys {
+       struct zap_leaf_header {
+               uint64_t lh_block_type;         /* ZBT_LEAF */
+               uint64_t lh_pad1;
+               uint64_t lh_prefix;             /* hash prefix of this leaf */
+               uint32_t lh_magic;              /* ZAP_LEAF_MAGIC */
+               uint16_t lh_nfree;              /* number free chunks */
+               uint16_t lh_nentries;           /* number of entries */
+               uint16_t lh_prefix_len;         /* num bits used to id this */
+
+/* above is accessable to zap, below is zap_leaf private */
+
+               uint16_t lh_freelist;           /* chunk head of free list */
+               uint8_t lh_flags;               /* ZLF_* flags */
+               uint8_t lh_pad2[11];
+       } l_hdr; /* 2 24-byte chunks */
+
+       /*
+        * The header is followed by a hash table with
+        * ZAP_LEAF_HASH_NUMENTRIES(zap) entries.  The hash table is
+        * followed by an array of ZAP_LEAF_NUMCHUNKS(zap)
+        * zap_leaf_chunk structures.  These structures are accessed
+        * with the ZAP_LEAF_CHUNK() macro.
+        */
+
+       uint16_t l_hash[1];
+} zap_leaf_phys_t;
+
+typedef union zap_leaf_chunk {
+       struct zap_leaf_entry {
+               uint8_t le_type;                /* always ZAP_CHUNK_ENTRY */
+               uint8_t le_value_intlen;        /* size of value's ints */
+               uint16_t le_next;               /* next entry in hash chain */
+               uint16_t le_name_chunk;         /* first chunk of the name */
+               uint16_t le_name_numints;       /* ints in name (incl null) */
+               uint16_t le_value_chunk;        /* first chunk of the value */
+               uint16_t le_value_numints;      /* value length in ints */
+               uint32_t le_cd;                 /* collision differentiator */
+               uint64_t le_hash;               /* hash value of the name */
+       } l_entry;
+       struct zap_leaf_array {
+               uint8_t la_type;                /* always ZAP_CHUNK_ARRAY */
+               uint8_t la_array[ZAP_LEAF_ARRAY_BYTES];
+               uint16_t la_next;               /* next blk or CHAIN_END */
+       } l_array;
+       struct zap_leaf_free {
+               uint8_t lf_type;                /* always ZAP_CHUNK_FREE */
+               uint8_t lf_pad[ZAP_LEAF_ARRAY_BYTES];
+               uint16_t lf_next;       /* next in free list, or CHAIN_END */
+       } l_free;
+} zap_leaf_chunk_t;
+
+typedef struct zap_leaf {
+       krwlock_t l_rwlock;
+       uint64_t l_blkid;               /* 1<<ZAP_BLOCK_SHIFT byte block off */
+       int l_bs;                       /* block size shift */
+       dmu_buf_t *l_dbuf;
+       zap_leaf_phys_t *l_phys;
+} zap_leaf_t;
+
+
+typedef struct zap_entry_handle {
+       /* below is set by zap_leaf.c and is public to zap.c */
+       uint64_t zeh_num_integers;
+       uint64_t zeh_hash;
+       uint32_t zeh_cd;
+       uint8_t zeh_integer_size;
+
+       /* below is private to zap_leaf.c */
+       uint16_t zeh_fakechunk;
+       uint16_t *zeh_chunkp;
+       zap_leaf_t *zeh_leaf;
+} zap_entry_handle_t;
+
+/*
+ * Return a handle to the named entry, or ENOENT if not found.  The hash
+ * value must equal zap_hash(name).
+ */
+extern int zap_leaf_lookup(zap_leaf_t *l,
+    struct zap_name *zn, zap_entry_handle_t *zeh);
+
+/*
+ * Return a handle to the entry with this hash+cd, or the entry with the
+ * next closest hash+cd.
+ */
+extern int zap_leaf_lookup_closest(zap_leaf_t *l,
+    uint64_t hash, uint32_t cd, zap_entry_handle_t *zeh);
+
+/*
+ * Read the first num_integers in the attribute.  Integer size
+ * conversion will be done without sign extension.  Return EINVAL if
+ * integer_size is too small.  Return EOVERFLOW if there are more than
+ * num_integers in the attribute.
+ */
+extern int zap_entry_read(const zap_entry_handle_t *zeh,
+    uint8_t integer_size, uint64_t num_integers, void *buf);
+
+extern int zap_entry_read_name(struct zap *zap, const zap_entry_handle_t *zeh,
+    uint16_t buflen, char *buf);
+
+/*
+ * Replace the value of an existing entry.
+ *
+ * zap_entry_update may fail if it runs out of space (ENOSPC).
+ */
+extern int zap_entry_update(zap_entry_handle_t *zeh,
+    uint8_t integer_size, uint64_t num_integers, const void *buf);
+
+/*
+ * Remove an entry.
+ */
+extern void zap_entry_remove(zap_entry_handle_t *zeh);
+
+/*
+ * Create an entry. An equal entry must not exist, and this entry must
+ * belong in this leaf (according to its hash value).  Fills in the
+ * entry handle on success.  Returns 0 on success or ENOSPC on failure.
+ */
+extern int zap_entry_create(zap_leaf_t *l, struct zap_name *zn, uint32_t cd,
+    uint8_t integer_size, uint64_t num_integers, const void *buf,
+    zap_entry_handle_t *zeh);
+
+/*
+ * Return true if there are additional entries with the same normalized
+ * form.
+ */
+extern boolean_t zap_entry_normalization_conflict(zap_entry_handle_t *zeh,
+    struct zap_name *zn, const char *name, struct zap *zap);
+
+/*
+ * Other stuff.
+ */
+
+extern void zap_leaf_init(zap_leaf_t *l, boolean_t sort);
+extern void zap_leaf_byteswap(zap_leaf_phys_t *buf, int len);
+extern void zap_leaf_split(zap_leaf_t *l, zap_leaf_t *nl, boolean_t sort);
+extern void zap_leaf_stats(struct zap *zap, zap_leaf_t *l,
+    struct zap_stats *zs);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZAP_LEAF_H */
diff --git a/include/sys/zfs_acl.h b/include/sys/zfs_acl.h
new file mode 100644 (file)
index 0000000..c1a0aee
--- /dev/null
@@ -0,0 +1,245 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_FS_ZFS_ACL_H
+#define        _SYS_FS_ZFS_ACL_H
+
+#ifdef _KERNEL
+#include <sys/isa_defs.h>
+#include <sys/types32.h>
+#endif
+#include <sys/acl.h>
+#include <sys/dmu.h>
+#include <sys/zfs_fuid.h>
+#include <sys/sa.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct znode_phys;
+
+#define        ACE_SLOT_CNT    6
+#define        ZFS_ACL_VERSION_INITIAL 0ULL
+#define        ZFS_ACL_VERSION_FUID    1ULL
+#define        ZFS_ACL_VERSION         ZFS_ACL_VERSION_FUID
+
+/*
+ * ZFS ACLs are store in various forms.
+ * Files created with ACL version ZFS_ACL_VERSION_INITIAL
+ * will all be created with fixed length ACEs of type
+ * zfs_oldace_t.
+ *
+ * Files with ACL version ZFS_ACL_VERSION_FUID will be created
+ * with various sized ACEs.  The abstraction entries will utilize
+ * zfs_ace_hdr_t, normal user/group entries will use zfs_ace_t
+ * and some specialized CIFS ACEs will use zfs_object_ace_t.
+ */
+
+/*
+ * All ACEs have a common hdr.  For
+ * owner@, group@, and everyone@ this is all
+ * thats needed.
+ */
+typedef struct zfs_ace_hdr {
+       uint16_t z_type;
+       uint16_t z_flags;
+       uint32_t z_access_mask;
+} zfs_ace_hdr_t;
+
+typedef zfs_ace_hdr_t zfs_ace_abstract_t;
+
+/*
+ * Standard ACE
+ */
+typedef struct zfs_ace {
+       zfs_ace_hdr_t   z_hdr;
+       uint64_t        z_fuid;
+} zfs_ace_t;
+
+/*
+ * The following type only applies to ACE_ACCESS_ALLOWED|DENIED_OBJECT_ACE_TYPE
+ * and will only be set/retrieved in a CIFS context.
+ */
+
+typedef struct zfs_object_ace {
+       zfs_ace_t       z_ace;
+       uint8_t         z_object_type[16]; /* object type */
+       uint8_t         z_inherit_type[16]; /* inherited object type */
+} zfs_object_ace_t;
+
+typedef struct zfs_oldace {
+       uint32_t        z_fuid;         /* "who" */
+       uint32_t        z_access_mask;  /* access mask */
+       uint16_t        z_flags;        /* flags, i.e inheritance */
+       uint16_t        z_type;         /* type of entry allow/deny */
+} zfs_oldace_t;
+
+typedef struct zfs_acl_phys_v0 {
+       uint64_t        z_acl_extern_obj;       /* ext acl pieces */
+       uint32_t        z_acl_count;            /* Number of ACEs */
+       uint16_t        z_acl_version;          /* acl version */
+       uint16_t        z_acl_pad;              /* pad */
+       zfs_oldace_t    z_ace_data[ACE_SLOT_CNT]; /* 6 standard ACEs */
+} zfs_acl_phys_v0_t;
+
+#define        ZFS_ACE_SPACE   (sizeof (zfs_oldace_t) * ACE_SLOT_CNT)
+
+/*
+ * Size of ACL count is always 2 bytes.
+ * Necessary to for dealing with both V0 ACL and V1 ACL layout
+ */
+#define        ZFS_ACL_COUNT_SIZE      (sizeof (uint16_t))
+
+typedef struct zfs_acl_phys {
+       uint64_t        z_acl_extern_obj;         /* ext acl pieces */
+       uint32_t        z_acl_size;               /* Number of bytes in ACL */
+       uint16_t        z_acl_version;            /* acl version */
+       uint16_t        z_acl_count;              /* ace count */
+       uint8_t z_ace_data[ZFS_ACE_SPACE]; /* space for embedded ACEs */
+} zfs_acl_phys_t;
+
+typedef struct acl_ops {
+       uint32_t        (*ace_mask_get) (void *acep); /* get  access mask */
+       void            (*ace_mask_set) (void *acep,
+                           uint32_t mask); /* set access mask */
+       uint16_t        (*ace_flags_get) (void *acep);  /* get flags */
+       void            (*ace_flags_set) (void *acep,
+                           uint16_t flags); /* set flags */
+       uint16_t        (*ace_type_get)(void *acep); /* get type */
+       void            (*ace_type_set)(void *acep,
+                           uint16_t type); /* set type */
+       uint64_t        (*ace_who_get)(void *acep); /* get who/fuid */
+       void            (*ace_who_set)(void *acep,
+                           uint64_t who); /* set who/fuid */
+       size_t          (*ace_size)(void *acep); /* how big is this ace */
+       size_t          (*ace_abstract_size)(void); /* sizeof abstract entry */
+       int             (*ace_mask_off)(void); /* off of access mask in ace */
+       int             (*ace_data)(void *acep, void **datap);
+                           /* ptr to data if any */
+} acl_ops_t;
+
+/*
+ * A zfs_acl_t structure is composed of a list of zfs_acl_node_t's.
+ * Each node will have one or more ACEs associated with it.  You will
+ * only have multiple nodes during a chmod operation.   Normally only
+ * one node is required.
+ */
+typedef struct zfs_acl_node {
+       list_node_t     z_next;         /* Next chunk of ACEs */
+       void            *z_acldata;     /* pointer into actual ACE(s) */
+       void            *z_allocdata;   /* pointer to kmem allocated memory */
+       size_t          z_allocsize;    /* Size of blob in bytes */
+       size_t          z_size;         /* length of ACL data */
+       uint64_t        z_ace_count;    /* number of ACEs in this acl node */
+       int             z_ace_idx;      /* ace iterator positioned on */
+} zfs_acl_node_t;
+
+typedef struct zfs_acl {
+       uint64_t        z_acl_count;    /* Number of ACEs */
+       size_t          z_acl_bytes;    /* Number of bytes in ACL */
+       uint_t          z_version;      /* version of ACL */
+       void            *z_next_ace;    /* pointer to next ACE */
+       uint64_t        z_hints;        /* ACL hints (ZFS_INHERIT_ACE ...) */
+       zfs_acl_node_t  *z_curr_node;   /* current node iterator is handling */
+       list_t          z_acl;          /* chunks of ACE data */
+       acl_ops_t       z_ops;          /* ACL operations */
+} zfs_acl_t;
+
+typedef struct acl_locator_cb {
+       zfs_acl_t *cb_aclp;
+       zfs_acl_node_t *cb_acl_node;
+} zfs_acl_locator_cb_t;
+
+#define        ACL_DATA_ALLOCED        0x1
+#define        ZFS_ACL_SIZE(aclcnt)    (sizeof (ace_t) * (aclcnt))
+
+struct zfs_fuid_info;
+
+typedef struct zfs_acl_ids {
+       uint64_t                z_fuid;         /* file owner fuid */
+       uint64_t                z_fgid;         /* file group owner fuid */
+       uint64_t                z_mode;         /* mode to set on create */
+       zfs_acl_t               *z_aclp;        /* ACL to create with file */
+       struct zfs_fuid_info    *z_fuidp;       /* for tracking fuids for log */
+} zfs_acl_ids_t;
+
+/*
+ * Property values for acl_mode and acl_inherit.
+ *
+ * acl_mode can take discard, noallow, groupmask and passthrough.
+ * whereas acl_inherit has secure instead of groupmask.
+ */
+
+#define        ZFS_ACL_DISCARD         0
+#define        ZFS_ACL_NOALLOW         1
+#define        ZFS_ACL_GROUPMASK       2
+#define        ZFS_ACL_PASSTHROUGH     3
+#define        ZFS_ACL_RESTRICTED      4
+#define        ZFS_ACL_PASSTHROUGH_X   5
+
+struct znode;
+struct zfsvfs;
+
+#ifdef _KERNEL
+int zfs_acl_ids_create(struct znode *, int, vattr_t *,
+    cred_t *, vsecattr_t *, zfs_acl_ids_t *);
+void zfs_acl_ids_free(zfs_acl_ids_t *);
+boolean_t zfs_acl_ids_overquota(struct zfsvfs *, zfs_acl_ids_t *);
+int zfs_getacl(struct znode *, vsecattr_t *, boolean_t, cred_t *);
+int zfs_setacl(struct znode *, vsecattr_t *, boolean_t, cred_t *);
+void zfs_acl_rele(void *);
+void zfs_oldace_byteswap(ace_t *, int);
+void zfs_ace_byteswap(void *, size_t, boolean_t);
+extern boolean_t zfs_has_access(struct znode *zp, cred_t *cr);
+extern int zfs_zaccess(struct znode *, int, int, boolean_t, cred_t *);
+int zfs_fastaccesschk_execute(struct znode *, cred_t *);
+extern int zfs_zaccess_rwx(struct znode *, mode_t, int, cred_t *);
+extern int zfs_zaccess_unix(struct znode *, mode_t, cred_t *);
+extern int zfs_acl_access(struct znode *, int, cred_t *);
+void zfs_acl_chmod_setattr(struct znode *, zfs_acl_t **, uint64_t);
+int zfs_zaccess_delete(struct znode *, struct znode *, cred_t *);
+int zfs_zaccess_rename(struct znode *, struct znode *,
+    struct znode *, struct znode *, cred_t *cr);
+void zfs_acl_free(zfs_acl_t *);
+int zfs_vsec_2_aclp(struct zfsvfs *, vtype_t, vsecattr_t *, cred_t *,
+    struct zfs_fuid_info **, zfs_acl_t **);
+int zfs_aclset_common(struct znode *, zfs_acl_t *, cred_t *, dmu_tx_t *);
+uint64_t zfs_external_acl(struct znode *);
+int zfs_znode_acl_version(struct znode *);
+int zfs_acl_size(struct znode *, int *);
+zfs_acl_t *zfs_acl_alloc(int);
+zfs_acl_node_t *zfs_acl_node_alloc(size_t);
+void zfs_acl_xform(struct znode *, zfs_acl_t *, cred_t *);
+void zfs_acl_data_locator(void **, uint32_t *, uint32_t, boolean_t, void *);
+uint64_t zfs_mode_compute(uint64_t, zfs_acl_t *,
+    uint64_t *, uint64_t, uint64_t);
+int zfs_acl_chown_setattr(struct znode *);
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _SYS_FS_ZFS_ACL_H */
diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h
new file mode 100644 (file)
index 0000000..115bf97
--- /dev/null
@@ -0,0 +1,624 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_ZFS_CONTEXT_H
+#define        _SYS_ZFS_CONTEXT_H
+
+#ifdef _KERNEL
+
+#include <sys/note.h>
+#include <sys/types.h>
+#include <sys/t_lock.h>
+#include <sys/atomic.h>
+#include <sys/sysmacros.h>
+#include <sys/bitmap.h>
+#include <sys/cmn_err.h>
+#include <sys/kmem.h>
+#include <sys/taskq.h>
+#include <sys/buf.h>
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/cpuvar.h>
+#include <sys/kobj.h>
+#include <sys/conf.h>
+#include <sys/disp.h>
+#include <sys/debug.h>
+#include <sys/random.h>
+#include <sys/byteorder.h>
+#include <sys/systm.h>
+#include <sys/list.h>
+#include <sys/uio.h>
+#include <sys/dirent.h>
+#include <sys/time.h>
+#include <vm/seg_kmem.h>
+#include <sys/zone.h>
+#include <sys/uio.h>
+#include <sys/zfs_debug.h>
+#include <sys/fm/fs/zfs.h>
+#include <sys/sunddi.h>
+
+#else /* _KERNEL */
+
+#define        _SYS_MUTEX_H
+#define        _SYS_RWLOCK_H
+#define        _SYS_CONDVAR_H
+#define        _SYS_SYSTM_H
+#define        _SYS_DEBUG_H
+#define        _SYS_T_LOCK_H
+#define        _SYS_VNODE_H
+#define        _SYS_VFS_H
+#define        _SYS_SUNDDI_H
+#define        _SYS_CALLB_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <stdarg.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <errno.h>
+#include <string.h>
+#include <strings.h>
+#include <pthread.h>
+#include <assert.h>
+#include <alloca.h>
+#include <umem.h>
+#include <limits.h>
+#include <atomic.h>
+#include <dirent.h>
+#include <time.h>
+#include <sys/note.h>
+#include <sys/types.h>
+#include <sys/cred.h>
+#include <sys/sysmacros.h>
+#include <sys/bitmap.h>
+#include <sys/resource.h>
+#include <sys/byteorder.h>
+#include <sys/list.h>
+#include <sys/uio.h>
+#include <sys/zfs_debug.h>
+#include <sys/sdt.h>
+#include <sys/kstat.h>
+#include <sys/u8_textprep.h>
+#include <sys/fm/fs/zfs.h>
+#include <sys/sunddi.h>
+
+/*
+ * Stack
+ */
+
+#define  noinline      __attribute__((noinline))
+
+/*
+ * Debugging
+ */
+
+/*
+ * Note that we are not using the debugging levels.
+ */
+
+#define        CE_CONT         0       /* continuation         */
+#define        CE_NOTE         1       /* notice               */
+#define        CE_WARN         2       /* warning              */
+#define        CE_PANIC        3       /* panic                */
+#define        CE_IGNORE       4       /* print nothing        */
+
+extern int aok;
+
+/*
+ * ZFS debugging
+ */
+
+#ifdef ZFS_DEBUG
+extern void dprintf_setup(int *argc, char **argv);
+#endif /* ZFS_DEBUG */
+
+extern void cmn_err(int, const char *, ...);
+extern void vcmn_err(int, const char *, __va_list);
+extern void panic(const char *, ...);
+extern void vpanic(const char *, __va_list);
+
+#define        fm_panic        panic
+
+/*
+ * DTrace SDT probes have different signatures in userland than they do in
+ * kernel.  If they're being used in kernel code, re-define them out of
+ * existence for their counterparts in libzpool.
+ */
+
+#ifdef DTRACE_PROBE
+#undef DTRACE_PROBE
+#define        DTRACE_PROBE(a) ((void)0)
+#endif /* DTRACE_PROBE */
+
+#ifdef DTRACE_PROBE1
+#undef DTRACE_PROBE1
+#define        DTRACE_PROBE1(a, b, c)  ((void)0)
+#endif /* DTRACE_PROBE1 */
+
+#ifdef DTRACE_PROBE2
+#undef DTRACE_PROBE2
+#define        DTRACE_PROBE2(a, b, c, d, e)    ((void)0)
+#endif /* DTRACE_PROBE2 */
+
+#ifdef DTRACE_PROBE3
+#undef DTRACE_PROBE3
+#define        DTRACE_PROBE3(a, b, c, d, e, f, g)      ((void)0)
+#endif /* DTRACE_PROBE3 */
+
+#ifdef DTRACE_PROBE4
+#undef DTRACE_PROBE4
+#define        DTRACE_PROBE4(a, b, c, d, e, f, g, h, i)        ((void)0)
+#endif /* DTRACE_PROBE4 */
+
+/*
+ * Threads
+ */
+#define        TS_MAGIC                0x72f158ab4261e538ull
+#define        TS_RUN                  0x00000002
+#ifdef __linux__
+#define        STACK_SIZE              8192    /* Linux x86 and amd64 */
+#else
+#define        STACK_SIZE              24576   /* Solaris */
+#endif
+
+#ifdef NPTL_GUARD_WITHIN_STACK
+#define        EXTRA_GUARD_BYTES       PAGESIZE
+#else
+#define        EXTRA_GUARD_BYTES       0
+#endif
+
+/* in libzpool, p0 exists only to have its address taken */
+typedef struct proc {
+       uintptr_t       this_is_never_used_dont_dereference_it;
+} proc_t;
+
+extern struct proc p0;
+
+typedef void (*thread_func_t)(void *);
+typedef void (*thread_func_arg_t)(void *);
+typedef pthread_t kt_did_t;
+
+typedef struct kthread {
+       kt_did_t        t_tid;
+       thread_func_t   t_func;
+       void *          t_arg;
+} kthread_t;
+
+#define        tsd_get(key)                    pthread_getspecific(key)
+#define        tsd_set(key, val)               pthread_setspecific(key, val)
+#define        curthread                       zk_thread_current()
+#define        thread_exit                     zk_thread_exit
+#define        thread_create(stk, stksize, func, arg, len, pp, state, pri)     \
+       zk_thread_create(stk, stksize, (thread_func_t)func, arg,        \
+                        len, NULL, state, pri)
+#define        thread_join(t)                  zk_thread_join(t)
+#define        newproc(f,a,cid,pri,ctp,pid)    (ENOSYS)
+
+extern kthread_t *zk_thread_current(void);
+extern void zk_thread_exit(void);
+extern kthread_t *zk_thread_create(caddr_t stk, size_t  stksize,
+       thread_func_t func, void *arg, size_t len,
+       proc_t *pp, int state, pri_t pri);
+extern void zk_thread_join(kt_did_t tid);
+
+#define        PS_NONE         -1
+
+#define        issig(why)      (FALSE)
+#define        ISSIG(thr, why) (FALSE)
+
+/*
+ * Mutexes
+ */
+#define        MTX_MAGIC       0x9522f51362a6e326ull
+#define        MTX_INIT        ((void *)NULL)
+#define        MTX_DEST        ((void *)-1UL)
+
+typedef struct kmutex {
+       void            *m_owner;
+       uint64_t        m_magic;
+       pthread_mutex_t m_lock;
+} kmutex_t;
+
+#define        MUTEX_DEFAULT   0
+#define MUTEX_HELD(m)  ((m)->m_owner == curthread)
+#define        MUTEX_NOT_HELD(m) (!MUTEX_HELD(m))
+
+extern void mutex_init(kmutex_t *mp, char *name, int type, void *cookie);
+extern void mutex_destroy(kmutex_t *mp);
+extern void mutex_enter(kmutex_t *mp);
+extern void mutex_exit(kmutex_t *mp);
+extern int mutex_tryenter(kmutex_t *mp);
+extern void *mutex_owner(kmutex_t *mp);
+extern int mutex_held(kmutex_t *mp);
+
+/*
+ * RW locks
+ */
+#define        RW_MAGIC        0x4d31fb123648e78aull
+#define        RW_INIT         ((void *)NULL)
+#define        RW_DEST         ((void *)-1UL)
+
+typedef struct krwlock {
+       void                    *rw_owner;
+       void                    *rw_wr_owner;
+       uint64_t                rw_magic;
+       pthread_rwlock_t        rw_lock;
+       uint_t                  rw_readers;
+} krwlock_t;
+
+typedef int krw_t;
+
+#define        RW_READER       0
+#define        RW_WRITER       1
+#define RW_DEFAULT     RW_READER
+
+#define        RW_READ_HELD(x)         ((x)->rw_readers > 0)
+#define        RW_WRITE_HELD(x)        ((x)->rw_wr_owner == curthread)
+#define        RW_LOCK_HELD(x)         (RW_READ_HELD(x) || RW_WRITE_HELD(x))
+
+extern void rw_init(krwlock_t *rwlp, char *name, int type, void *arg);
+extern void rw_destroy(krwlock_t *rwlp);
+extern void rw_enter(krwlock_t *rwlp, krw_t rw);
+extern int rw_tryenter(krwlock_t *rwlp, krw_t rw);
+extern int rw_tryupgrade(krwlock_t *rwlp);
+extern void rw_exit(krwlock_t *rwlp);
+#define        rw_downgrade(rwlp) do { } while (0)
+
+extern uid_t crgetuid(cred_t *cr);
+extern gid_t crgetgid(cred_t *cr);
+extern int crgetngroups(cred_t *cr);
+extern gid_t *crgetgroups(cred_t *cr);
+
+/*
+ * Condition variables
+ */
+#define CV_MAGIC       0xd31ea9a83b1b30c4ull
+
+typedef struct kcondvar {
+       uint64_t                cv_magic;
+       pthread_cond_t          cv;
+} kcondvar_t;
+
+#define        CV_DEFAULT      0
+
+extern void cv_init(kcondvar_t *cv, char *name, int type, void *arg);
+extern void cv_destroy(kcondvar_t *cv);
+extern void cv_wait(kcondvar_t *cv, kmutex_t *mp);
+extern clock_t cv_timedwait(kcondvar_t *cv, kmutex_t *mp, clock_t abstime);
+extern void cv_signal(kcondvar_t *cv);
+extern void cv_broadcast(kcondvar_t *cv);
+
+/*
+ * kstat creation, installation and deletion
+ */
+extern kstat_t *kstat_create(char *, int,
+    char *, char *, uchar_t, ulong_t, uchar_t);
+extern void kstat_install(kstat_t *);
+extern void kstat_delete(kstat_t *);
+
+/*
+ * Kernel memory
+ */
+#define        KM_SLEEP                UMEM_NOFAIL
+#define        KM_PUSHPAGE             KM_SLEEP
+#define        KM_NOSLEEP              UMEM_DEFAULT
+#define        KM_NODEBUG              0x0
+#define        KMC_NODEBUG             UMC_NODEBUG
+#define        kmem_alloc(_s, _f)      umem_alloc(_s, _f)
+#define        kmem_zalloc(_s, _f)     umem_zalloc(_s, _f)
+#define        kmem_free(_b, _s)       umem_free(_b, _s)
+#define        vmem_alloc(_s, _f)      kmem_alloc(_s, _f)
+#define        vmem_zalloc(_s, _f)     kmem_zalloc(_s, _f)
+#define        vmem_free(_b, _s)       kmem_free(_b, _s)
+#define        kmem_cache_create(_a, _b, _c, _d, _e, _f, _g, _h, _i) \
+       umem_cache_create(_a, _b, _c, _d, _e, _f, _g, _h, _i)
+#define        kmem_cache_destroy(_c)  umem_cache_destroy(_c)
+#define        kmem_cache_alloc(_c, _f) umem_cache_alloc(_c, _f)
+#define        kmem_cache_free(_c, _b) umem_cache_free(_c, _b)
+#define        kmem_debugging()        0
+#define        kmem_cache_reap_now(_c)         /* nothing */
+#define        kmem_cache_set_move(_c, _cb)    /* nothing */
+#define        POINTER_INVALIDATE(_pp)         /* nothing */
+#define        POINTER_IS_VALID(_p)    0
+
+typedef umem_cache_t kmem_cache_t;
+
+typedef enum kmem_cbrc {
+       KMEM_CBRC_YES,
+       KMEM_CBRC_NO,
+       KMEM_CBRC_LATER,
+       KMEM_CBRC_DONT_NEED,
+       KMEM_CBRC_DONT_KNOW
+} kmem_cbrc_t;
+
+/*
+ * Task queues
+ */
+typedef struct taskq taskq_t;
+typedef uintptr_t taskqid_t;
+typedef void (task_func_t)(void *);
+
+#define        TASKQ_PREPOPULATE       0x0001
+#define        TASKQ_CPR_SAFE          0x0002  /* Use CPR safe protocol */
+#define        TASKQ_DYNAMIC           0x0004  /* Use dynamic thread scheduling */
+#define        TASKQ_THREADS_CPU_PCT   0x0008  /* Scale # threads by # cpus */
+#define        TASKQ_DC_BATCH          0x0010  /* Mark threads as batch */
+
+#define        TQ_SLEEP        KM_SLEEP        /* Can block for memory */
+#define        TQ_NOSLEEP      KM_NOSLEEP      /* cannot block for memory; may fail */
+#define        TQ_NOQUEUE      0x02            /* Do not enqueue if can't dispatch */
+#define        TQ_FRONT        0x08            /* Queue in front */
+
+extern taskq_t *system_taskq;
+
+extern taskq_t *taskq_create(const char *, int, pri_t, int, int, uint_t);
+#define        taskq_create_proc(a, b, c, d, e, p, f) \
+           (taskq_create(a, b, c, d, e, f))
+#define        taskq_create_sysdc(a, b, d, e, p, dc, f) \
+           (taskq_create(a, b, maxclsyspri, d, e, f))
+extern taskqid_t taskq_dispatch(taskq_t *, task_func_t, void *, uint_t);
+extern void    taskq_destroy(taskq_t *);
+extern void    taskq_wait(taskq_t *);
+extern int     taskq_member(taskq_t *, kthread_t *);
+extern void    system_taskq_init(void);
+extern void    system_taskq_fini(void);
+
+#define        XVA_MAPSIZE     3
+#define        XVA_MAGIC       0x78766174
+
+/*
+ * vnodes
+ */
+typedef struct vnode {
+       uint64_t        v_size;
+       int             v_fd;
+       char            *v_path;
+} vnode_t;
+
+#define        AV_SCANSTAMP_SZ 32              /* length of anti-virus scanstamp */
+
+typedef struct xoptattr {
+       timestruc_t     xoa_createtime; /* Create time of file */
+       uint8_t         xoa_archive;
+       uint8_t         xoa_system;
+       uint8_t         xoa_readonly;
+       uint8_t         xoa_hidden;
+       uint8_t         xoa_nounlink;
+       uint8_t         xoa_immutable;
+       uint8_t         xoa_appendonly;
+       uint8_t         xoa_nodump;
+       uint8_t         xoa_settable;
+       uint8_t         xoa_opaque;
+       uint8_t         xoa_av_quarantined;
+       uint8_t         xoa_av_modified;
+       uint8_t         xoa_av_scanstamp[AV_SCANSTAMP_SZ];
+       uint8_t         xoa_reparse;
+       uint8_t         xoa_offline;
+       uint8_t         xoa_sparse;
+} xoptattr_t;
+
+typedef struct vattr {
+       uint_t          va_mask;        /* bit-mask of attributes */
+       u_offset_t      va_size;        /* file size in bytes */
+} vattr_t;
+
+
+typedef struct xvattr {
+       vattr_t         xva_vattr;      /* Embedded vattr structure */
+       uint32_t        xva_magic;      /* Magic Number */
+       uint32_t        xva_mapsize;    /* Size of attr bitmap (32-bit words) */
+       uint32_t        *xva_rtnattrmapp;       /* Ptr to xva_rtnattrmap[] */
+       uint32_t        xva_reqattrmap[XVA_MAPSIZE];    /* Requested attrs */
+       uint32_t        xva_rtnattrmap[XVA_MAPSIZE];    /* Returned attrs */
+       xoptattr_t      xva_xoptattrs;  /* Optional attributes */
+} xvattr_t;
+
+typedef struct vsecattr {
+       uint_t          vsa_mask;       /* See below */
+       int             vsa_aclcnt;     /* ACL entry count */
+       void            *vsa_aclentp;   /* pointer to ACL entries */
+       int             vsa_dfaclcnt;   /* default ACL entry count */
+       void            *vsa_dfaclentp; /* pointer to default ACL entries */
+       size_t          vsa_aclentsz;   /* ACE size in bytes of vsa_aclentp */
+} vsecattr_t;
+
+#define        AT_TYPE         0x00001
+#define        AT_MODE         0x00002
+#define        AT_UID          0x00004
+#define        AT_GID          0x00008
+#define        AT_FSID         0x00010
+#define        AT_NODEID       0x00020
+#define        AT_NLINK        0x00040
+#define        AT_SIZE         0x00080
+#define        AT_ATIME        0x00100
+#define        AT_MTIME        0x00200
+#define        AT_CTIME        0x00400
+#define        AT_RDEV         0x00800
+#define        AT_BLKSIZE      0x01000
+#define        AT_NBLOCKS      0x02000
+#define        AT_SEQ          0x08000
+#define        AT_XVATTR       0x10000
+
+#define        CRCREAT         0
+
+extern int fop_getattr(vnode_t *vp, vattr_t *vap);
+
+#define        VOP_CLOSE(vp, f, c, o, cr, ct)  0
+#define        VOP_PUTPAGE(vp, of, sz, fl, cr, ct)     0
+#define        VOP_GETATTR(vp, vap, fl, cr, ct)  fop_getattr((vp), (vap));
+
+#define        VOP_FSYNC(vp, f, cr, ct)        fsync((vp)->v_fd)
+
+#define        VN_RELE(vp)     vn_close(vp)
+
+extern int vn_open(char *path, int x1, int oflags, int mode, vnode_t **vpp,
+    int x2, int x3);
+extern int vn_openat(char *path, int x1, int oflags, int mode, vnode_t **vpp,
+    int x2, int x3, vnode_t *vp, int fd);
+extern int vn_rdwr(int uio, vnode_t *vp, void *addr, ssize_t len,
+    offset_t offset, int x1, int x2, rlim64_t x3, void *x4, ssize_t *residp);
+extern void vn_close(vnode_t *vp);
+
+#define        vn_remove(path, x1, x2)         remove(path)
+#define        vn_rename(from, to, seg)        rename((from), (to))
+#define        vn_is_readonly(vp)              B_FALSE
+
+extern vnode_t *rootdir;
+
+#include <sys/file.h>          /* for FREAD, FWRITE, etc */
+
+/*
+ * Random stuff
+ */
+#define        ddi_get_lbolt()         (gethrtime() >> 23)
+#define        ddi_get_lbolt64()       (gethrtime() >> 23)
+#define        hz      119     /* frequency when using gethrtime() >> 23 for lbolt */
+
+extern void delay(clock_t ticks);
+
+#define        gethrestime_sec() time(NULL)
+#define        gethrestime(t) \
+       do {\
+               (t)->tv_sec = gethrestime_sec();\
+               (t)->tv_nsec = 0;\
+       } while (0);
+
+#define        max_ncpus       64
+
+#define        minclsyspri     60
+#define        maxclsyspri     99
+
+#define        CPU_SEQID       (pthread_self() & (max_ncpus - 1))
+
+#define        kcred           NULL
+#define        CRED()          NULL
+
+#define        ptob(x)         ((x) * PAGESIZE)
+
+extern uint64_t physmem;
+
+extern int highbit(ulong_t i);
+extern int random_get_bytes(uint8_t *ptr, size_t len);
+extern int random_get_pseudo_bytes(uint8_t *ptr, size_t len);
+
+extern void kernel_init(int);
+extern void kernel_fini(void);
+
+struct spa;
+extern void nicenum(uint64_t num, char *buf);
+extern void show_pool_stats(struct spa *);
+
+typedef struct callb_cpr {
+       kmutex_t        *cc_lockp;
+} callb_cpr_t;
+
+#define        CALLB_CPR_INIT(cp, lockp, func, name)   {               \
+       (cp)->cc_lockp = lockp;                                 \
+}
+
+#define        CALLB_CPR_SAFE_BEGIN(cp) {                              \
+       ASSERT(MUTEX_HELD((cp)->cc_lockp));                     \
+}
+
+#define        CALLB_CPR_SAFE_END(cp, lockp) {                         \
+       ASSERT(MUTEX_HELD((cp)->cc_lockp));                     \
+}
+
+#define        CALLB_CPR_EXIT(cp) {                                    \
+       ASSERT(MUTEX_HELD((cp)->cc_lockp));                     \
+       mutex_exit((cp)->cc_lockp);                             \
+}
+
+#define        zone_dataset_visible(x, y)      (1)
+#define        INGLOBALZONE(z)                 (1)
+
+extern char *kmem_vasprintf(const char *fmt, va_list adx);
+extern char *kmem_asprintf(const char *fmt, ...);
+#define        strfree(str) kmem_free((str), strlen(str)+1)
+
+/*
+ * Hostname information
+ */
+extern char hw_serial[];       /* for userland-emulated hostid access */
+extern int ddi_strtoul(const char *str, char **nptr, int base,
+    unsigned long *result);
+
+extern int ddi_strtoull(const char *str, char **nptr, int base,
+    u_longlong_t *result);
+
+/* ZFS Boot Related stuff. */
+
+struct _buf {
+       intptr_t        _fd;
+};
+
+struct bootstat {
+       uint64_t st_size;
+};
+
+typedef struct ace_object {
+       uid_t           a_who;
+       uint32_t        a_access_mask;
+       uint16_t        a_flags;
+       uint16_t        a_type;
+       uint8_t         a_obj_type[16];
+       uint8_t         a_inherit_obj_type[16];
+} ace_object_t;
+
+
+#define        ACE_ACCESS_ALLOWED_OBJECT_ACE_TYPE      0x05
+#define        ACE_ACCESS_DENIED_OBJECT_ACE_TYPE       0x06
+#define        ACE_SYSTEM_AUDIT_OBJECT_ACE_TYPE        0x07
+#define        ACE_SYSTEM_ALARM_OBJECT_ACE_TYPE        0x08
+
+extern struct _buf *kobj_open_file(char *name);
+extern int kobj_read_file(struct _buf *file, char *buf, unsigned size,
+    unsigned off);
+extern void kobj_close_file(struct _buf *file);
+extern int kobj_get_filesize(struct _buf *file, uint64_t *size);
+extern int zfs_secpolicy_snapshot_perms(const char *name, cred_t *cr);
+extern int zfs_secpolicy_rename_perms(const char *from, const char *to,
+    cred_t *cr);
+extern int zfs_secpolicy_destroy_perms(const char *name, cred_t *cr);
+extern zoneid_t getzoneid(void);
+
+/* SID stuff */
+typedef struct ksiddomain {
+       uint_t  kd_ref;
+       uint_t  kd_len;
+       char    *kd_name;
+} ksiddomain_t;
+
+ksiddomain_t *ksid_lookupdomain(const char *);
+void ksiddomain_rele(ksiddomain_t *);
+
+#define        DDI_SLEEP       KM_SLEEP
+#define        ddi_log_sysevent(_a, _b, _c, _d, _e, _f, _g) \
+       sysevent_post_event(_c, _d, _b, "libzpool", _e, _f)
+
+#endif /* _KERNEL */
+
+#endif /* _SYS_ZFS_CONTEXT_H */
diff --git a/include/sys/zfs_ctldir.h b/include/sys/zfs_ctldir.h
new file mode 100644 (file)
index 0000000..f88ef95
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _ZFS_CTLDIR_H
+#define        _ZFS_CTLDIR_H
+
+#include <sys/pathname.h>
+#include <sys/vnode.h>
+#include <sys/zfs_vfsops.h>
+#include <sys/zfs_znode.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define        ZFS_CTLDIR_NAME         ".zfs"
+
+#define        zfs_has_ctldir(zdp)     \
+       ((zdp)->z_id == (zdp)->z_zfsvfs->z_root && \
+       ((zdp)->z_zfsvfs->z_ctldir != NULL))
+#define        zfs_show_ctldir(zdp)    \
+       (zfs_has_ctldir(zdp) && \
+       ((zdp)->z_zfsvfs->z_show_ctldir))
+
+void zfsctl_create(zfsvfs_t *);
+void zfsctl_destroy(zfsvfs_t *);
+vnode_t *zfsctl_root(znode_t *);
+void zfsctl_init(void);
+void zfsctl_fini(void);
+boolean_t zfsctl_is_node(vnode_t *);
+
+int zfsctl_rename_snapshot(const char *from, const char *to);
+int zfsctl_destroy_snapshot(const char *snapname, int force);
+int zfsctl_umount_snapshots(vfs_t *, int, cred_t *);
+
+int zfsctl_root_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, pathname_t *pnp,
+    int flags, vnode_t *rdir, cred_t *cr, caller_context_t *ct,
+    int *direntflags, pathname_t *realpnp);
+
+int zfsctl_make_fid(zfsvfs_t *zfsvfsp, uint64_t object, uint32_t gen,
+    fid_t *fidp);
+int zfsctl_lookup_objset(vfs_t *vfsp, uint64_t objsetid, zfsvfs_t **zfsvfsp);
+
+#define        ZFSCTL_INO_ROOT         0x1
+#define        ZFSCTL_INO_SNAPDIR      0x2
+#define        ZFSCTL_INO_SHARES       0x3
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ZFS_CTLDIR_H */
diff --git a/include/sys/zfs_debug.h b/include/sys/zfs_debug.h
new file mode 100644 (file)
index 0000000..f08d7cd
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _SYS_ZFS_DEBUG_H
+#define        _SYS_ZFS_DEBUG_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef TRUE
+#define        TRUE 1
+#endif
+
+#ifndef FALSE
+#define        FALSE 0
+#endif
+
+/*
+ * ZFS debugging
+ */
+
+#if defined(DEBUG) || !defined(_KERNEL)
+#define        ZFS_DEBUG
+#endif
+
+extern int zfs_flags;
+
+#define        ZFS_DEBUG_DPRINTF       0x0001
+#define        ZFS_DEBUG_DBUF_VERIFY   0x0002
+#define        ZFS_DEBUG_DNODE_VERIFY  0x0004
+#define        ZFS_DEBUG_SNAPNAMES     0x0008
+#define        ZFS_DEBUG_MODIFY        0x0010
+
+#ifdef ZFS_DEBUG
+#if defined(_KERNEL) && defined(HAVE_SPL)
+/*
+ * Log ZFS debug messages as the spl SS_USER1 subsystem.
+ */
+#include <spl-debug.h>
+
+#ifdef SS_DEBUG_SUBSYS
+#undef SS_DEBUG_SUBSYS
+#endif
+#define SS_DEBUG_SUBSYS SS_USER1
+#define dprintf(...) SDEBUG_LIMIT(SD_DPRINTF, __VA_ARGS__)
+#else
+extern void __dprintf(const char *file, const char *func,
+    int line, const char *fmt, ...);
+#define        dprintf(...) \
+       if (zfs_flags & ZFS_DEBUG_DPRINTF) \
+               __dprintf(__FILE__, __func__, __LINE__, __VA_ARGS__)
+#endif /* _KERNEL && HAVE_SPL */
+#else
+#define        dprintf(...) ((void)0)
+#endif /* ZFS_DEBUG */
+
+extern void zfs_panic_recover(const char *fmt, ...);
+
+typedef struct zfs_dbgmsg {
+       list_node_t zdm_node;
+       time_t zdm_timestamp;
+       char zdm_msg[1]; /* variable length allocation */
+} zfs_dbgmsg_t;
+
+extern void zfs_dbgmsg_init(void);
+extern void zfs_dbgmsg_fini(void);
+extern void zfs_dbgmsg(const char *fmt, ...);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZFS_DEBUG_H */
diff --git a/include/sys/zfs_dir.h b/include/sys/zfs_dir.h
new file mode 100644 (file)
index 0000000..349f8ef
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SYS_FS_ZFS_DIR_H
+#define        _SYS_FS_ZFS_DIR_H
+
+#include <sys/pathname.h>
+#include <sys/dmu.h>
+#include <sys/zfs_znode.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* zfs_dirent_lock() flags */
+#define        ZNEW            0x0001          /* entry should not exist */
+#define        ZEXISTS         0x0002          /* entry should exist */
+#define        ZSHARED         0x0004          /* shared access (zfs_dirlook()) */
+#define        ZXATTR          0x0008          /* we want the xattr dir */
+#define        ZRENAMING       0x0010          /* znode is being renamed */
+#define        ZCILOOK         0x0020          /* case-insensitive lookup requested */
+#define        ZCIEXACT        0x0040          /* c-i requires c-s match (rename) */
+#define        ZHAVELOCK       0x0080          /* z_name_lock is already held */
+
+/* mknode flags */
+#define        IS_ROOT_NODE    0x01            /* create a root node */
+#define        IS_XATTR        0x02            /* create an extended attribute node */
+
+extern int zfs_dirent_lock(zfs_dirlock_t **, znode_t *, char *, znode_t **,
+    int, int *, pathname_t *);
+extern void zfs_dirent_unlock(zfs_dirlock_t *);
+extern int zfs_link_create(zfs_dirlock_t *, znode_t *, dmu_tx_t *, int);
+extern int zfs_link_destroy(zfs_dirlock_t *, znode_t *, dmu_tx_t *, int,
+    boolean_t *);
+extern int zfs_dirlook(znode_t *, char *, vnode_t **, int, int *,
+    pathname_t *);
+extern void zfs_mknode(znode_t *, vattr_t *, dmu_tx_t *, cred_t *,
+    uint_t, znode_t **, zfs_acl_ids_t *);
+extern void zfs_rmnode(znode_t *);
+extern void zfs_dl_name_switch(zfs_dirlock_t *dl, char *new, char **old);
+extern boolean_t zfs_dirempty(znode_t *);
+extern void zfs_unlinked_add(znode_t *, dmu_tx_t *);
+extern void zfs_unlinked_drain(zfsvfs_t *zfsvfs);
+extern int zfs_sticky_remove_access(znode_t *, znode_t *, cred_t *cr);
+extern int zfs_get_xattrdir(znode_t *, vnode_t **, cred_t *, int);
+extern int zfs_make_xattrdir(znode_t *, vattr_t *, vnode_t **, cred_t *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_FS_ZFS_DIR_H */
diff --git a/include/sys/zfs_fuid.h b/include/sys/zfs_fuid.h
new file mode 100644 (file)
index 0000000..d2989c8
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SYS_FS_ZFS_FUID_H
+#define        _SYS_FS_ZFS_FUID_H
+
+#ifdef _KERNEL
+#include <sys/kidmap.h>
+#include <sys/sid.h>
+#include <sys/dmu.h>
+#include <sys/zfs_vfsops.h>
+#endif
+#include <sys/avl.h>
+#include <sys/list.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+       ZFS_OWNER,
+       ZFS_GROUP,
+       ZFS_ACE_USER,
+       ZFS_ACE_GROUP
+} zfs_fuid_type_t;
+
+/*
+ * Estimate space needed for one more fuid table entry.
+ * for now assume its current size + 1K
+ */
+#define        FUID_SIZE_ESTIMATE(z) ((z)->z_fuid_size + (SPA_MINBLOCKSIZE << 1))
+
+#define        FUID_INDEX(x)   ((x) >> 32)
+#define        FUID_RID(x)     ((x) & 0xffffffff)
+#define        FUID_ENCODE(idx, rid) (((uint64_t)(idx) << 32) | (rid))
+/*
+ * FUIDs cause problems for the intent log
+ * we need to replay the creation of the FUID,
+ * but we can't count on the idmapper to be around
+ * and during replay the FUID index may be different than
+ * before.  Also, if an ACL has 100 ACEs and 12 different
+ * domains we don't want to log 100 domain strings, but rather
+ * just the unique 12.
+ */
+
+/*
+ * The FUIDs in the log will index into
+ * domain string table and the bottom half will be the rid.
+ * Used for mapping ephemeral uid/gid during ACL setting to FUIDs
+ */
+typedef struct zfs_fuid {
+       list_node_t     z_next;
+       uint64_t        z_id;           /* uid/gid being converted to fuid */
+       uint64_t        z_domidx;       /* index in AVL domain table */
+       uint64_t        z_logfuid;      /* index for domain in log */
+} zfs_fuid_t;
+
+/* list of unique domains */
+typedef struct zfs_fuid_domain {
+       list_node_t     z_next;
+       uint64_t        z_domidx;       /* AVL tree idx */
+       const char      *z_domain;      /* domain string */
+} zfs_fuid_domain_t;
+
+/*
+ * FUID information necessary for logging create, setattr, and setacl.
+ */
+typedef struct zfs_fuid_info {
+       list_t  z_fuids;
+       list_t  z_domains;
+       uint64_t z_fuid_owner;
+       uint64_t z_fuid_group;
+       char **z_domain_table;  /* Used during replay */
+       uint32_t z_fuid_cnt;    /* How many fuids in z_fuids */
+       uint32_t z_domain_cnt;  /* How many domains */
+       size_t  z_domain_str_sz; /* len of domain strings z_domain list */
+} zfs_fuid_info_t;
+
+#ifdef _KERNEL
+#ifdef HAVE_ZPL
+struct znode;
+extern uid_t zfs_fuid_map_id(zfsvfs_t *, uint64_t, cred_t *, zfs_fuid_type_t);
+extern void zfs_fuid_node_add(zfs_fuid_info_t **, const char *, uint32_t,
+    uint64_t, uint64_t, zfs_fuid_type_t);
+extern void zfs_fuid_destroy(zfsvfs_t *);
+extern uint64_t zfs_fuid_create_cred(zfsvfs_t *, zfs_fuid_type_t,
+    cred_t *, zfs_fuid_info_t **);
+extern uint64_t zfs_fuid_create(zfsvfs_t *, uint64_t, cred_t *, zfs_fuid_type_t,
+    zfs_fuid_info_t **);
+extern void zfs_fuid_map_ids(struct znode *zp, cred_t *cr,
+    uid_t *uid, uid_t *gid);
+extern zfs_fuid_info_t *zfs_fuid_info_alloc(void);
+extern void zfs_fuid_info_free(zfs_fuid_info_t *);
+extern boolean_t zfs_groupmember(zfsvfs_t *, uint64_t, cred_t *);
+void zfs_fuid_sync(zfsvfs_t *, dmu_tx_t *);
+extern int zfs_fuid_find_by_domain(zfsvfs_t *, const char *domain,
+    char **retdomain, boolean_t addok);
+extern const char *zfs_fuid_find_by_idx(zfsvfs_t *zfsvfs, uint32_t idx);
+extern void zfs_fuid_txhold(zfsvfs_t *zfsvfs, dmu_tx_t *tx);
+#endif /* HAVE_ZPL */
+#endif
+
+char *zfs_fuid_idx_domain(avl_tree_t *, uint32_t);
+void zfs_fuid_avl_tree_create(avl_tree_t *, avl_tree_t *);
+uint64_t zfs_fuid_table_load(objset_t *, uint64_t, avl_tree_t *, avl_tree_t *);
+void zfs_fuid_table_destroy(avl_tree_t *, avl_tree_t *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_FS_ZFS_FUID_H */
diff --git a/include/sys/zfs_ioctl.h b/include/sys/zfs_ioctl.h
new file mode 100644 (file)
index 0000000..e3fd2c3
--- /dev/null
@@ -0,0 +1,345 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_ZFS_IOCTL_H
+#define        _SYS_ZFS_IOCTL_H
+
+#include <sys/cred.h>
+#include <sys/dmu.h>
+#include <sys/zio.h>
+#include <sys/dsl_deleg.h>
+#include <sys/spa.h>
+#include <sys/zfs_stat.h>
+
+#ifdef _KERNEL
+#include <sys/nvpair.h>
+#endif /* _KERNEL */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Property values for snapdir
+ */
+#define        ZFS_SNAPDIR_HIDDEN              0
+#define        ZFS_SNAPDIR_VISIBLE             1
+
+/*
+ * Field manipulation macros for the drr_versioninfo field of the
+ * send stream header.
+ */
+
+/*
+ * Header types for zfs send streams.
+ */
+typedef enum drr_headertype {
+       DMU_SUBSTREAM = 0x1,
+       DMU_COMPOUNDSTREAM = 0x2
+} drr_headertype_t;
+
+#define        DMU_GET_STREAM_HDRTYPE(vi)      BF64_GET((vi), 0, 2)
+#define        DMU_SET_STREAM_HDRTYPE(vi, x)   BF64_SET((vi), 0, 2, x)
+
+#define        DMU_GET_FEATUREFLAGS(vi)        BF64_GET((vi), 2, 30)
+#define        DMU_SET_FEATUREFLAGS(vi, x)     BF64_SET((vi), 2, 30, x)
+
+/*
+ * Feature flags for zfs send streams (flags in drr_versioninfo)
+ */
+
+#define        DMU_BACKUP_FEATURE_DEDUP        (0x1)
+#define        DMU_BACKUP_FEATURE_DEDUPPROPS   (0x2)
+#define        DMU_BACKUP_FEATURE_SA_SPILL     (0x4)
+
+/*
+ * Mask of all supported backup features
+ */
+#define        DMU_BACKUP_FEATURE_MASK (DMU_BACKUP_FEATURE_DEDUP | \
+               DMU_BACKUP_FEATURE_DEDUPPROPS | DMU_BACKUP_FEATURE_SA_SPILL)
+
+/* Are all features in the given flag word currently supported? */
+#define        DMU_STREAM_SUPPORTED(x) (!((x) & ~DMU_BACKUP_FEATURE_MASK))
+
+/*
+ * The drr_versioninfo field of the dmu_replay_record has the
+ * following layout:
+ *
+ *     64      56      48      40      32      24      16      8       0
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ *     |               reserved        |        feature-flags      |C|S|
+ *     +-------+-------+-------+-------+-------+-------+-------+-------+
+ *
+ * The low order two bits indicate the header type: SUBSTREAM (0x1)
+ * or COMPOUNDSTREAM (0x2).  Using two bits for this is historical:
+ * this field used to be a version number, where the two version types
+ * were 1 and 2.  Using two bits for this allows earlier versions of
+ * the code to be able to recognize send streams that don't use any
+ * of the features indicated by feature flags.
+ */
+
+#define        DMU_BACKUP_MAGIC 0x2F5bacbacULL
+
+#define        DRR_FLAG_CLONE          (1<<0)
+#define        DRR_FLAG_CI_DATA        (1<<1)
+
+/*
+ * flags in the drr_checksumflags field in the DRR_WRITE and
+ * DRR_WRITE_BYREF blocks
+ */
+#define        DRR_CHECKSUM_DEDUP      (1<<0)
+
+#define        DRR_IS_DEDUP_CAPABLE(flags)     ((flags) & DRR_CHECKSUM_DEDUP)
+
+/*
+ * zfs ioctl command structure
+ */
+typedef struct dmu_replay_record {
+       enum {
+               DRR_BEGIN, DRR_OBJECT, DRR_FREEOBJECTS,
+               DRR_WRITE, DRR_FREE, DRR_END, DRR_WRITE_BYREF,
+               DRR_SPILL, DRR_NUMTYPES
+       } drr_type;
+       uint32_t drr_payloadlen;
+       union {
+               struct drr_begin {
+                       uint64_t drr_magic;
+                       uint64_t drr_versioninfo; /* was drr_version */
+                       uint64_t drr_creation_time;
+                       dmu_objset_type_t drr_type;
+                       uint32_t drr_flags;
+                       uint64_t drr_toguid;
+                       uint64_t drr_fromguid;
+                       char drr_toname[MAXNAMELEN];
+               } drr_begin;
+               struct drr_end {
+                       zio_cksum_t drr_checksum;
+                       uint64_t drr_toguid;
+               } drr_end;
+               struct drr_object {
+                       uint64_t drr_object;
+                       dmu_object_type_t drr_type;
+                       dmu_object_type_t drr_bonustype;
+                       uint32_t drr_blksz;
+                       uint32_t drr_bonuslen;
+                       uint8_t drr_checksumtype;
+                       uint8_t drr_compress;
+                       uint8_t drr_pad[6];
+                       uint64_t drr_toguid;
+                       /* bonus content follows */
+               } drr_object;
+               struct drr_freeobjects {
+                       uint64_t drr_firstobj;
+                       uint64_t drr_numobjs;
+                       uint64_t drr_toguid;
+               } drr_freeobjects;
+               struct drr_write {
+                       uint64_t drr_object;
+                       dmu_object_type_t drr_type;
+                       uint32_t drr_pad;
+                       uint64_t drr_offset;
+                       uint64_t drr_length;
+                       uint64_t drr_toguid;
+                       uint8_t drr_checksumtype;
+                       uint8_t drr_checksumflags;
+                       uint8_t drr_pad2[6];
+                       ddt_key_t drr_key; /* deduplication key */
+                       /* content follows */
+               } drr_write;
+               struct drr_free {
+                       uint64_t drr_object;
+                       uint64_t drr_offset;
+                       uint64_t drr_length;
+                       uint64_t drr_toguid;
+               } drr_free;
+               struct drr_write_byref {
+                       /* where to put the data */
+                       uint64_t drr_object;
+                       uint64_t drr_offset;
+                       uint64_t drr_length;
+                       uint64_t drr_toguid;
+                       /* where to find the prior copy of the data */
+                       uint64_t drr_refguid;
+                       uint64_t drr_refobject;
+                       uint64_t drr_refoffset;
+                       /* properties of the data */
+                       uint8_t drr_checksumtype;
+                       uint8_t drr_checksumflags;
+                       uint8_t drr_pad2[6];
+                       ddt_key_t drr_key; /* deduplication key */
+               } drr_write_byref;
+               struct drr_spill {
+                       uint64_t drr_object;
+                       uint64_t drr_length;
+                       uint64_t drr_toguid;
+                       uint64_t drr_pad[4]; /* needed for crypto */
+                       /* spill data follows */
+               } drr_spill;
+       } drr_u;
+} dmu_replay_record_t;
+
+/* diff record range types */
+typedef enum diff_type {
+       DDR_NONE = 0x1,
+       DDR_INUSE = 0x2,
+       DDR_FREE = 0x4
+} diff_type_t;
+
+/*
+ * The diff reports back ranges of free or in-use objects.
+ */
+typedef struct dmu_diff_record {
+       uint64_t ddr_type;
+       uint64_t ddr_first;
+       uint64_t ddr_last;
+} dmu_diff_record_t;
+
+typedef struct zinject_record {
+       uint64_t        zi_objset;
+       uint64_t        zi_object;
+       uint64_t        zi_start;
+       uint64_t        zi_end;
+       uint64_t        zi_guid;
+       uint32_t        zi_level;
+       uint32_t        zi_error;
+       uint64_t        zi_type;
+       uint32_t        zi_freq;
+       uint32_t        zi_failfast;
+       char            zi_func[MAXNAMELEN];
+       uint32_t        zi_iotype;
+       int32_t         zi_duration;
+       uint64_t        zi_timer;
+} zinject_record_t;
+
+#define        ZINJECT_NULL            0x1
+#define        ZINJECT_FLUSH_ARC       0x2
+#define        ZINJECT_UNLOAD_SPA      0x4
+
+#define        ZEVENT_NONBLOCK         0x1
+#define        ZEVENT_SIZE             1024
+
+typedef struct zfs_share {
+       uint64_t        z_exportdata;
+       uint64_t        z_sharedata;
+       uint64_t        z_sharetype;    /* 0 = share, 1 = unshare */
+       uint64_t        z_sharemax;  /* max length of share string */
+} zfs_share_t;
+
+/*
+ * ZFS file systems may behave the usual, POSIX-compliant way, where
+ * name lookups are case-sensitive.  They may also be set up so that
+ * all the name lookups are case-insensitive, or so that only some
+ * lookups, the ones that set an FIGNORECASE flag, are case-insensitive.
+ */
+typedef enum zfs_case {
+       ZFS_CASE_SENSITIVE,
+       ZFS_CASE_INSENSITIVE,
+       ZFS_CASE_MIXED
+} zfs_case_t;
+
+typedef struct zfs_cmd {
+       char            zc_name[MAXPATHLEN];
+       char            zc_value[MAXPATHLEN * 2];
+       char            zc_string[MAXNAMELEN];
+       char            zc_top_ds[MAXPATHLEN];
+       uint64_t        zc_guid;
+       uint64_t        zc_nvlist_conf;         /* really (char *) */
+       uint64_t        zc_nvlist_conf_size;
+       uint64_t        zc_nvlist_src;          /* really (char *) */
+       uint64_t        zc_nvlist_src_size;
+       uint64_t        zc_nvlist_dst;          /* really (char *) */
+       uint64_t        zc_nvlist_dst_size;
+       uint64_t        zc_cookie;
+       uint64_t        zc_objset_type;
+       uint64_t        zc_perm_action;
+       uint64_t        zc_history;             /* really (char *) */
+       uint64_t        zc_history_len;
+       uint64_t        zc_history_offset;
+       uint64_t        zc_obj;
+       uint64_t        zc_iflags;              /* internal to zfs(7fs) */
+       zfs_share_t     zc_share;
+       dmu_objset_stats_t zc_objset_stats;
+       struct drr_begin zc_begin_record;
+       zinject_record_t zc_inject_record;
+       boolean_t       zc_defer_destroy;
+       boolean_t       zc_temphold;
+       uint64_t        zc_action_handle;
+       int             zc_cleanup_fd;
+       uint8_t         zc_pad[4];              /* alignment */
+       uint64_t        zc_sendobj;
+       uint64_t        zc_fromobj;
+       uint64_t        zc_createtxg;
+       zfs_stat_t      zc_stat;
+} zfs_cmd_t;
+
+typedef struct zfs_useracct {
+       char zu_domain[256];
+       uid_t zu_rid;
+       uint32_t zu_pad;
+       uint64_t zu_space;
+} zfs_useracct_t;
+
+#define        ZFSDEV_MAX_MINOR        (1 << 16)
+#define        ZFS_MIN_MINOR   (ZFSDEV_MAX_MINOR + 1)
+
+#define        ZPOOL_EXPORT_AFTER_SPLIT 0x1
+
+#ifdef _KERNEL
+
+typedef struct zfs_creat {
+       nvlist_t        *zct_zplprops;
+       nvlist_t        *zct_props;
+} zfs_creat_t;
+
+extern int zfs_secpolicy_snapshot_perms(const char *name, cred_t *cr);
+extern int zfs_secpolicy_rename_perms(const char *from,
+    const char *to, cred_t *cr);
+extern int zfs_secpolicy_destroy_perms(const char *name, cred_t *cr);
+extern int zfs_unmount_snap(const char *, void *);
+
+enum zfsdev_state_type {
+       ZST_ONEXIT,
+       ZST_ZEVENT,
+       ZST_ALL,
+};
+
+typedef struct zfsdev_state {
+        list_node_t             zs_next;        /* next zfsdev_state_t link */
+       struct file             *zs_file;       /* associated file struct */
+       minor_t                 zs_minor;       /* made up minor number */
+       void                    *zs_onexit;     /* onexit data */
+       void                    *zs_zevent;     /* zevent data */
+} zfsdev_state_t;
+
+extern void *zfsdev_get_state(minor_t minor, enum zfsdev_state_type which);
+extern minor_t zfsdev_getminor(struct file *filp);
+extern minor_t zfsdev_minor_alloc(void);
+
+#endif /* _KERNEL */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZFS_IOCTL_H */
diff --git a/include/sys/zfs_onexit.h b/include/sys/zfs_onexit.h
new file mode 100644 (file)
index 0000000..4982bd4
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_ZFS_ONEXIT_H
+#define        _SYS_ZFS_ONEXIT_H
+
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef _KERNEL
+
+typedef struct zfs_onexit {
+       kmutex_t        zo_lock;
+       list_t          zo_actions;
+} zfs_onexit_t;
+
+typedef struct zfs_onexit_action_node {
+       list_node_t     za_link;
+       void            (*za_func)(void *);
+       void            *za_data;
+} zfs_onexit_action_node_t;
+
+extern void zfs_onexit_init(zfs_onexit_t **zo);
+extern void zfs_onexit_destroy(zfs_onexit_t *zo);
+
+#endif
+
+extern int zfs_onexit_fd_hold(int fd, minor_t *minorp);
+extern void zfs_onexit_fd_rele(int fd);
+extern int zfs_onexit_add_cb(minor_t minor, void (*func)(void *), void *data,
+    uint64_t *action_handle);
+extern int zfs_onexit_del_cb(minor_t minor, uint64_t action_handle,
+    boolean_t fire);
+extern int zfs_onexit_cb_data(minor_t minor, uint64_t action_handle,
+    void **data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZFS_ONEXIT_H */
diff --git a/include/sys/zfs_rlock.h b/include/sys/zfs_rlock.h
new file mode 100644 (file)
index 0000000..722c341
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SYS_FS_ZFS_RLOCK_H
+#define        _SYS_FS_ZFS_RLOCK_H
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef _KERNEL
+
+#include <sys/zfs_znode.h>
+
+typedef enum {
+       RL_READER,
+       RL_WRITER,
+       RL_APPEND
+} rl_type_t;
+
+typedef struct rl {
+       znode_t *r_zp;          /* znode this lock applies to */
+       avl_node_t r_node;      /* avl node link */
+       uint64_t r_off;         /* file range offset */
+       uint64_t r_len;         /* file range length */
+       uint_t r_cnt;           /* range reference count in tree */
+       rl_type_t r_type;       /* range type */
+       kcondvar_t r_wr_cv;     /* cv for waiting writers */
+       kcondvar_t r_rd_cv;     /* cv for waiting readers */
+       uint8_t r_proxy;        /* acting for original range */
+       uint8_t r_write_wanted; /* writer wants to lock this range */
+       uint8_t r_read_wanted;  /* reader wants to lock this range */
+} rl_t;
+
+/*
+ * Lock a range (offset, length) as either shared (READER)
+ * or exclusive (WRITER or APPEND). APPEND is a special type that
+ * is converted to WRITER that specified to lock from the start of the
+ * end of file.  zfs_range_lock() returns the range lock structure.
+ */
+rl_t *zfs_range_lock(znode_t *zp, uint64_t off, uint64_t len, rl_type_t type);
+
+/*
+ * Unlock range and destroy range lock structure.
+ */
+void zfs_range_unlock(rl_t *rl);
+
+/*
+ * Reduce range locked as RW_WRITER from whole file to specified range.
+ * Asserts the whole file was previously locked.
+ */
+void zfs_range_reduce(rl_t *rl, uint64_t off, uint64_t len);
+
+/*
+ * AVL comparison function used to compare range locks
+ */
+int zfs_range_compare(const void *arg1, const void *arg2);
+
+#endif /* _KERNEL */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_FS_ZFS_RLOCK_H */
diff --git a/include/sys/zfs_sa.h b/include/sys/zfs_sa.h
new file mode 100644 (file)
index 0000000..cd312b2
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _SYS_ZFS_SA_H
+#define        _SYS_ZFS_SA_H
+
+#ifdef _KERNEL
+#include <sys/types32.h>
+#include <sys/list.h>
+#include <sys/dmu.h>
+#include <sys/zfs_acl.h>
+#include <sys/zfs_znode.h>
+#include <sys/sa.h>
+#include <sys/zil.h>
+
+
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * This is the list of known attributes
+ * to the ZPL.  The values of the actual
+ * attributes are not defined by the order
+ * the enums.  It is controlled by the attribute
+ * registration mechanism.  Two different file system
+ * could have different numeric values for the same
+ * attributes.  this list is only used for dereferencing
+ * into the table that will hold the actual numeric value.
+ */
+typedef enum zpl_attr {
+       ZPL_ATIME,
+       ZPL_MTIME,
+       ZPL_CTIME,
+       ZPL_CRTIME,
+       ZPL_GEN,
+       ZPL_MODE,
+       ZPL_SIZE,
+       ZPL_PARENT,
+       ZPL_LINKS,
+       ZPL_XATTR,
+       ZPL_RDEV,
+       ZPL_FLAGS,
+       ZPL_UID,
+       ZPL_GID,
+       ZPL_PAD,
+       ZPL_ZNODE_ACL,
+       ZPL_DACL_COUNT,
+       ZPL_SYMLINK,
+       ZPL_SCANSTAMP,
+       ZPL_DACL_ACES,
+       ZPL_END
+} zpl_attr_t;
+
+#define        ZFS_OLD_ZNODE_PHYS_SIZE 0x108
+#define        ZFS_SA_BASE_ATTR_SIZE   (ZFS_OLD_ZNODE_PHYS_SIZE - \
+    sizeof (zfs_acl_phys_t))
+
+#define        SA_MODE_OFFSET          0
+#define        SA_SIZE_OFFSET          8
+#define        SA_GEN_OFFSET           16
+#define        SA_UID_OFFSET           24
+#define        SA_GID_OFFSET           32
+#define        SA_PARENT_OFFSET        40
+
+extern sa_attr_reg_t zfs_attr_table[ZPL_END + 1];
+extern sa_attr_reg_t zfs_legacy_attr_table[ZPL_END + 1];
+
+/*
+ * This is a deprecated data structure that only exists for
+ * dealing with file systems create prior to ZPL version 5.
+ */
+typedef struct znode_phys {
+       uint64_t zp_atime[2];           /*  0 - last file access time */
+       uint64_t zp_mtime[2];           /* 16 - last file modification time */
+       uint64_t zp_ctime[2];           /* 32 - last file change time */
+       uint64_t zp_crtime[2];          /* 48 - creation time */
+       uint64_t zp_gen;                /* 64 - generation (txg of creation) */
+       uint64_t zp_mode;               /* 72 - file mode bits */
+       uint64_t zp_size;               /* 80 - size of file */
+       uint64_t zp_parent;             /* 88 - directory parent (`..') */
+       uint64_t zp_links;              /* 96 - number of links to file */
+       uint64_t zp_xattr;              /* 104 - DMU object for xattrs */
+       uint64_t zp_rdev;               /* 112 - dev_t for VBLK & VCHR files */
+       uint64_t zp_flags;              /* 120 - persistent flags */
+       uint64_t zp_uid;                /* 128 - file owner */
+       uint64_t zp_gid;                /* 136 - owning group */
+       uint64_t zp_zap;                /* 144 - extra attributes */
+       uint64_t zp_pad[3];             /* 152 - future */
+       zfs_acl_phys_t zp_acl;          /* 176 - 263 ACL */
+       /*
+        * Data may pad out any remaining bytes in the znode buffer, eg:
+        *
+        * |<---------------------- dnode_phys (512) ------------------------>|
+        * |<-- dnode (192) --->|<----------- "bonus" buffer (320) ---------->|
+        *                      |<---- znode (264) ---->|<---- data (56) ---->|
+        *
+        * At present, we use this space for the following:
+        *  - symbolic links
+        *  - 32-byte anti-virus scanstamp (regular files only)
+        */
+} znode_phys_t;
+
+#ifdef _KERNEL
+int zfs_sa_readlink(struct znode *, uio_t *);
+void zfs_sa_symlink(struct znode *, char *link, int len, dmu_tx_t *);
+void zfs_sa_upgrade(struct sa_handle  *, dmu_tx_t *);
+void zfs_sa_get_scanstamp(struct znode *, xvattr_t *);
+void zfs_sa_set_scanstamp(struct znode *, xvattr_t *, dmu_tx_t *);
+void zfs_sa_uprade_pre(struct sa_handle *, void *, dmu_tx_t *);
+void zfs_sa_upgrade_post(struct sa_handle *, void *, dmu_tx_t *);
+void zfs_sa_upgrade_txholds(dmu_tx_t *, struct znode *);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZFS_SA_H */
diff --git a/include/sys/zfs_stat.h b/include/sys/zfs_stat.h
new file mode 100644 (file)
index 0000000..465aefa
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_FS_ZFS_STAT_H
+#define        _SYS_FS_ZFS_STAT_H
+
+#ifdef _KERNEL
+#include <sys/isa_defs.h>
+#include <sys/types32.h>
+#include <sys/dmu.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * A limited number of zpl level stats are retrievable
+ * with an ioctl.  zfs diff is the current consumer.
+ */
+typedef struct zfs_stat {
+       uint64_t        zs_gen;
+       uint64_t        zs_mode;
+       uint64_t        zs_links;
+       uint64_t        zs_ctime[2];
+} zfs_stat_t;
+
+extern int zfs_obj_to_stats(objset_t *osp, uint64_t obj, zfs_stat_t *sb,
+    char *buf, int len);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_FS_ZFS_STAT_H */
diff --git a/include/sys/zfs_vfsops.h b/include/sys/zfs_vfsops.h
new file mode 100644 (file)
index 0000000..38c87df
--- /dev/null
@@ -0,0 +1,159 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_FS_ZFS_VFSOPS_H
+#define        _SYS_FS_ZFS_VFSOPS_H
+
+#include <sys/isa_defs.h>
+#include <sys/types32.h>
+#include <sys/list.h>
+#include <sys/vfs.h>
+#include <sys/zil.h>
+#include <sys/sa.h>
+#include <sys/rrwlock.h>
+#include <sys/zfs_ioctl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct zfsvfs zfsvfs_t;
+struct znode;
+
+struct zfsvfs {
+       vfs_t           *z_vfs;         /* generic fs struct */
+       zfsvfs_t        *z_parent;      /* parent fs */
+       objset_t        *z_os;          /* objset reference */
+       uint64_t        z_root;         /* id of root znode */
+       uint64_t        z_unlinkedobj;  /* id of unlinked zapobj */
+       uint64_t        z_max_blksz;    /* maximum block size for files */
+       uint64_t        z_fuid_obj;     /* fuid table object number */
+       uint64_t        z_fuid_size;    /* fuid table size */
+       avl_tree_t      z_fuid_idx;     /* fuid tree keyed by index */
+       avl_tree_t      z_fuid_domain;  /* fuid tree keyed by domain */
+       krwlock_t       z_fuid_lock;    /* fuid lock */
+       boolean_t       z_fuid_loaded;  /* fuid tables are loaded */
+       boolean_t       z_fuid_dirty;   /* need to sync fuid table ? */
+       struct zfs_fuid_info    *z_fuid_replay; /* fuid info for replay */
+       zilog_t         *z_log;         /* intent log pointer */
+       uint_t          z_acl_inherit;  /* acl inheritance behavior */
+       zfs_case_t      z_case;         /* case-sense */
+       boolean_t       z_utf8;         /* utf8-only */
+       int             z_norm;         /* normalization flags */
+       boolean_t       z_atime;        /* enable atimes mount option */
+       boolean_t       z_unmounted;    /* unmounted */
+       rrwlock_t       z_teardown_lock;
+       krwlock_t       z_teardown_inactive_lock;
+       list_t          z_all_znodes;   /* all vnodes in the fs */
+       kmutex_t        z_znodes_lock;  /* lock for z_all_znodes */
+       vnode_t         *z_ctldir;      /* .zfs directory pointer */
+       boolean_t       z_show_ctldir;  /* expose .zfs in the root dir */
+       boolean_t       z_issnap;       /* true if this is a snapshot */
+       boolean_t       z_vscan;        /* virus scan on/off */
+       boolean_t       z_use_fuids;    /* version allows fuids */
+       boolean_t       z_replay;       /* set during ZIL replay */
+       boolean_t       z_use_sa;       /* version allow system attributes */
+       uint64_t        z_version;      /* ZPL version */
+       uint64_t        z_shares_dir;   /* hidden shares dir */
+       kmutex_t        z_lock;
+       uint64_t        z_userquota_obj;
+       uint64_t        z_groupquota_obj;
+       uint64_t        z_replay_eof;   /* New end of file - replay only */
+       sa_attr_type_t  *z_attr_table;  /* SA attr mapping->id */
+#define        ZFS_OBJ_MTX_SZ  64
+       kmutex_t        z_hold_mtx[ZFS_OBJ_MTX_SZ];     /* znode hold locks */
+};
+
+/*
+ * Normal filesystems (those not under .zfs/snapshot) have a total
+ * file ID size limited to 12 bytes (including the length field) due to
+ * NFSv2 protocol's limitation of 32 bytes for a filehandle.  For historical
+ * reasons, this same limit is being imposed by the Solaris NFSv3 implementation
+ * (although the NFSv3 protocol actually permits a maximum of 64 bytes).  It
+ * is not possible to expand beyond 12 bytes without abandoning support
+ * of NFSv2.
+ *
+ * For normal filesystems, we partition up the available space as follows:
+ *     2 bytes         fid length (required)
+ *     6 bytes         object number (48 bits)
+ *     4 bytes         generation number (32 bits)
+ *
+ * We reserve only 48 bits for the object number, as this is the limit
+ * currently defined and imposed by the DMU.
+ */
+typedef struct zfid_short {
+       uint16_t        zf_len;
+       uint8_t         zf_object[6];           /* obj[i] = obj >> (8 * i) */
+       uint8_t         zf_gen[4];              /* gen[i] = gen >> (8 * i) */
+} zfid_short_t;
+
+/*
+ * Filesystems under .zfs/snapshot have a total file ID size of 22 bytes
+ * (including the length field).  This makes files under .zfs/snapshot
+ * accessible by NFSv3 and NFSv4, but not NFSv2.
+ *
+ * For files under .zfs/snapshot, we partition up the available space
+ * as follows:
+ *     2 bytes         fid length (required)
+ *     6 bytes         object number (48 bits)
+ *     4 bytes         generation number (32 bits)
+ *     6 bytes         objset id (48 bits)
+ *     4 bytes         currently just zero (32 bits)
+ *
+ * We reserve only 48 bits for the object number and objset id, as these are
+ * the limits currently defined and imposed by the DMU.
+ */
+typedef struct zfid_long {
+       zfid_short_t    z_fid;
+       uint8_t         zf_setid[6];            /* obj[i] = obj >> (8 * i) */
+       uint8_t         zf_setgen[4];           /* gen[i] = gen >> (8 * i) */
+} zfid_long_t;
+
+#define        SHORT_FID_LEN   (sizeof (zfid_short_t) - sizeof (uint16_t))
+#define        LONG_FID_LEN    (sizeof (zfid_long_t) - sizeof (uint16_t))
+
+extern uint_t zfs_fsyncer_key;
+
+extern int zfs_suspend_fs(zfsvfs_t *zfsvfs);
+extern int zfs_resume_fs(zfsvfs_t *zfsvfs, const char *osname);
+extern int zfs_userspace_one(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type,
+    const char *domain, uint64_t rid, uint64_t *valuep);
+extern int zfs_userspace_many(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type,
+    uint64_t *cookiep, void *vbuf, uint64_t *bufsizep);
+extern int zfs_set_userquota(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type,
+    const char *domain, uint64_t rid, uint64_t quota);
+extern boolean_t zfs_owner_overquota(zfsvfs_t *zfsvfs, struct znode *,
+    boolean_t isgroup);
+extern boolean_t zfs_fuid_overquota(zfsvfs_t *zfsvfs, boolean_t isgroup,
+    uint64_t fuid);
+extern int zfs_set_version(zfsvfs_t *zfsvfs, uint64_t newvers);
+extern int zfsvfs_create(const char *name, zfsvfs_t **zfvp);
+extern void zfsvfs_free(zfsvfs_t *zfsvfs);
+extern int zfs_check_global_label(const char *dsname, const char *hexsl);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_FS_ZFS_VFSOPS_H */
diff --git a/include/sys/zfs_znode.h b/include/sys/zfs_znode.h
new file mode 100644 (file)
index 0000000..aa1f449
--- /dev/null
@@ -0,0 +1,366 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_FS_ZFS_ZNODE_H
+#define        _SYS_FS_ZFS_ZNODE_H
+
+#ifdef _KERNEL
+#include <sys/isa_defs.h>
+#include <sys/types32.h>
+#include <sys/attr.h>
+#include <sys/list.h>
+#include <sys/dmu.h>
+#include <sys/sa.h>
+#include <sys/zfs_vfsops.h>
+#include <sys/rrwlock.h>
+#include <sys/zfs_sa.h>
+#include <sys/zfs_stat.h>
+#endif
+#include <sys/zfs_acl.h>
+#include <sys/zil.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Additional file level attributes, that are stored
+ * in the upper half of zp_flags
+ */
+#define        ZFS_READONLY            0x0000000100000000ull
+#define        ZFS_HIDDEN              0x0000000200000000ull
+#define        ZFS_SYSTEM              0x0000000400000000ull
+#define        ZFS_ARCHIVE             0x0000000800000000ull
+#define        ZFS_IMMUTABLE           0x0000001000000000ull
+#define        ZFS_NOUNLINK            0x0000002000000000ull
+#define        ZFS_APPENDONLY          0x0000004000000000ull
+#define        ZFS_NODUMP              0x0000008000000000ull
+#define        ZFS_OPAQUE              0x0000010000000000ull
+#define        ZFS_AV_QUARANTINED      0x0000020000000000ull
+#define        ZFS_AV_MODIFIED         0x0000040000000000ull
+#define        ZFS_REPARSE             0x0000080000000000ull
+#define        ZFS_OFFLINE             0x0000100000000000ull
+#define        ZFS_SPARSE              0x0000200000000000ull
+
+#define        ZFS_ATTR_SET(zp, attr, value, pflags, tx) \
+{ \
+       if (value) \
+               pflags |= attr; \
+       else \
+               pflags &= ~attr; \
+       VERIFY(0 == sa_update(zp->z_sa_hdl, SA_ZPL_FLAGS(zp->z_zfsvfs), \
+           &pflags, sizeof (pflags), tx)); \
+}
+
+/*
+ * Define special zfs pflags
+ */
+#define        ZFS_XATTR               0x1             /* is an extended attribute */
+#define        ZFS_INHERIT_ACE         0x2             /* ace has inheritable ACEs */
+#define        ZFS_ACL_TRIVIAL         0x4             /* files ACL is trivial */
+#define        ZFS_ACL_OBJ_ACE         0x8             /* ACL has CMPLX Object ACE */
+#define        ZFS_ACL_PROTECTED       0x10            /* ACL protected */
+#define        ZFS_ACL_DEFAULTED       0x20            /* ACL should be defaulted */
+#define        ZFS_ACL_AUTO_INHERIT    0x40            /* ACL should be inherited */
+#define        ZFS_BONUS_SCANSTAMP     0x80            /* Scanstamp in bonus area */
+#define        ZFS_NO_EXECS_DENIED     0x100           /* exec was given to everyone */
+
+#define        SA_ZPL_ATIME(z)         z->z_attr_table[ZPL_ATIME]
+#define        SA_ZPL_MTIME(z)         z->z_attr_table[ZPL_MTIME]
+#define        SA_ZPL_CTIME(z)         z->z_attr_table[ZPL_CTIME]
+#define        SA_ZPL_CRTIME(z)        z->z_attr_table[ZPL_CRTIME]
+#define        SA_ZPL_GEN(z)           z->z_attr_table[ZPL_GEN]
+#define        SA_ZPL_DACL_ACES(z)     z->z_attr_table[ZPL_DACL_ACES]
+#define        SA_ZPL_XATTR(z)         z->z_attr_table[ZPL_XATTR]
+#define        SA_ZPL_SYMLINK(z)       z->z_attr_table[ZPL_SYMLINK]
+#define        SA_ZPL_RDEV(z)          z->z_attr_table[ZPL_RDEV]
+#define        SA_ZPL_SCANSTAMP(z)     z->z_attr_table[ZPL_SCANSTAMP]
+#define        SA_ZPL_UID(z)           z->z_attr_table[ZPL_UID]
+#define        SA_ZPL_GID(z)           z->z_attr_table[ZPL_GID]
+#define        SA_ZPL_PARENT(z)        z->z_attr_table[ZPL_PARENT]
+#define        SA_ZPL_LINKS(z)         z->z_attr_table[ZPL_LINKS]
+#define        SA_ZPL_MODE(z)          z->z_attr_table[ZPL_MODE]
+#define        SA_ZPL_DACL_COUNT(z)    z->z_attr_table[ZPL_DACL_COUNT]
+#define        SA_ZPL_FLAGS(z)         z->z_attr_table[ZPL_FLAGS]
+#define        SA_ZPL_SIZE(z)          z->z_attr_table[ZPL_SIZE]
+#define        SA_ZPL_ZNODE_ACL(z)     z->z_attr_table[ZPL_ZNODE_ACL]
+#define        SA_ZPL_PAD(z)           z->z_attr_table[ZPL_PAD]
+
+/*
+ * Is ID ephemeral?
+ */
+#define        IS_EPHEMERAL(x)         (x > MAXUID)
+
+/*
+ * Should we use FUIDs?
+ */
+#define        USE_FUIDS(version, os)  (version >= ZPL_VERSION_FUID && \
+    spa_version(dmu_objset_spa(os)) >= SPA_VERSION_FUID)
+#define        USE_SA(version, os) (version >= ZPL_VERSION_SA && \
+    spa_version(dmu_objset_spa(os)) >= SPA_VERSION_SA)
+
+#define        MASTER_NODE_OBJ 1
+
+/*
+ * Special attributes for master node.
+ * "userquota@" and "groupquota@" are also valid (from
+ * zfs_userquota_prop_prefixes[]).
+ */
+#define        ZFS_FSID                "FSID"
+#define        ZFS_UNLINKED_SET        "DELETE_QUEUE"
+#define        ZFS_ROOT_OBJ            "ROOT"
+#define        ZPL_VERSION_STR         "VERSION"
+#define        ZFS_FUID_TABLES         "FUID"
+#define        ZFS_SHARES_DIR          "SHARES"
+#define        ZFS_SA_ATTRS            "SA_ATTRS"
+
+#define        ZFS_MAX_BLOCKSIZE       (SPA_MAXBLOCKSIZE)
+
+/* Path component length */
+/*
+ * The generic fs code uses MAXNAMELEN to represent
+ * what the largest component length is.  Unfortunately,
+ * this length includes the terminating NULL.  ZFS needs
+ * to tell the users via pathconf() and statvfs() what the
+ * true maximum length of a component is, excluding the NULL.
+ */
+#define        ZFS_MAXNAMELEN  (MAXNAMELEN - 1)
+
+/*
+ * Convert mode bits (zp_mode) to BSD-style DT_* values for storing in
+ * the directory entries.  On Linux systems this value is already
+ * defined correctly as part of the /usr/include/dirent.h header file.
+ */
+#ifndef IFTODT
+#define        IFTODT(mode) (((mode) & S_IFMT) >> 12)
+#endif
+
+/*
+ * The directory entry has the type (currently unused on Solaris) in the
+ * top 4 bits, and the object number in the low 48 bits.  The "middle"
+ * 12 bits are unused.
+ */
+#define        ZFS_DIRENT_TYPE(de) BF64_GET(de, 60, 4)
+#define        ZFS_DIRENT_OBJ(de) BF64_GET(de, 0, 48)
+
+/*
+ * Directory entry locks control access to directory entries.
+ * They are used to protect creates, deletes, and renames.
+ * Each directory znode has a mutex and a list of locked names.
+ */
+#ifdef _KERNEL
+typedef struct zfs_dirlock {
+       char            *dl_name;       /* directory entry being locked */
+       uint32_t        dl_sharecnt;    /* 0 if exclusive, > 0 if shared */
+       uint8_t         dl_namelock;    /* 1 if z_name_lock is NOT held */
+       uint16_t        dl_namesize;    /* set if dl_name was allocated */
+       kcondvar_t      dl_cv;          /* wait for entry to be unlocked */
+       struct znode    *dl_dzp;        /* directory znode */
+       struct zfs_dirlock *dl_next;    /* next in z_dirlocks list */
+} zfs_dirlock_t;
+
+typedef struct znode {
+       struct zfsvfs   *z_zfsvfs;
+       vnode_t         *z_vnode;
+       uint64_t        z_id;           /* object ID for this znode */
+       kmutex_t        z_lock;         /* znode modification lock */
+       krwlock_t       z_parent_lock;  /* parent lock for directories */
+       krwlock_t       z_name_lock;    /* "master" lock for dirent locks */
+       zfs_dirlock_t   *z_dirlocks;    /* directory entry lock list */
+       kmutex_t        z_range_lock;   /* protects changes to z_range_avl */
+       avl_tree_t      z_range_avl;    /* avl tree of file range locks */
+       uint8_t         z_unlinked;     /* file has been unlinked */
+       uint8_t         z_atime_dirty;  /* atime needs to be synced */
+       uint8_t         z_zn_prefetch;  /* Prefetch znodes? */
+       uint8_t         z_moved;        /* Has this znode been moved? */
+       uint_t          z_blksz;        /* block size in bytes */
+       uint_t          z_seq;          /* modification sequence number */
+       uint64_t        z_mapcnt;       /* number of pages mapped to file */
+       uint64_t        z_gen;          /* generation (cached) */
+       uint64_t        z_size;         /* file size (cached) */
+       uint64_t        z_atime[2];     /* atime (cached) */
+       uint64_t        z_links;        /* file links (cached) */
+       uint64_t        z_pflags;       /* pflags (cached) */
+       uint64_t        z_uid;          /* uid fuid (cached) */
+       uint64_t        z_gid;          /* gid fuid (cached) */
+       mode_t          z_mode;         /* mode (cached) */
+       uint32_t        z_sync_cnt;     /* synchronous open count */
+       kmutex_t        z_acl_lock;     /* acl data lock */
+       zfs_acl_t       *z_acl_cached;  /* cached acl */
+       list_node_t     z_link_node;    /* all znodes in fs link */
+       sa_handle_t     *z_sa_hdl;      /* handle to sa data */
+       boolean_t       z_is_sa;        /* are we native sa? */
+} znode_t;
+
+
+/*
+ * Range locking rules
+ * --------------------
+ * 1. When truncating a file (zfs_create, zfs_setattr, zfs_space) the whole
+ *    file range needs to be locked as RL_WRITER. Only then can the pages be
+ *    freed etc and zp_size reset. zp_size must be set within range lock.
+ * 2. For writes and punching holes (zfs_write & zfs_space) just the range
+ *    being written or freed needs to be locked as RL_WRITER.
+ *    Multiple writes at the end of the file must coordinate zp_size updates
+ *    to ensure data isn't lost. A compare and swap loop is currently used
+ *    to ensure the file size is at least the offset last written.
+ * 3. For reads (zfs_read, zfs_get_data & zfs_putapage) just the range being
+ *    read needs to be locked as RL_READER. A check against zp_size can then
+ *    be made for reading beyond end of file.
+ */
+
+/*
+ * Convert between znode pointers and vnode pointers
+ */
+#define        ZTOV(ZP)        ((ZP)->z_vnode)
+#define        VTOZ(VP)        ((znode_t *)(VP)->v_data)
+
+/*
+ * ZFS_ENTER() is called on entry to each ZFS vnode and vfs operation.
+ * ZFS_EXIT() must be called before exitting the vop.
+ * ZFS_VERIFY_ZP() verifies the znode is valid.
+ */
+#define        ZFS_ENTER(zfsvfs) \
+       { \
+               rrw_enter(&(zfsvfs)->z_teardown_lock, RW_READER, FTAG); \
+               if ((zfsvfs)->z_unmounted) { \
+                       ZFS_EXIT(zfsvfs); \
+                       return (EIO); \
+               } \
+       }
+
+#define        ZFS_EXIT(zfsvfs) rrw_exit(&(zfsvfs)->z_teardown_lock, FTAG)
+
+#define        ZFS_VERIFY_ZP(zp) \
+       if ((zp)->z_sa_hdl == NULL) { \
+               ZFS_EXIT((zp)->z_zfsvfs); \
+               return (EIO); \
+       } \
+
+/*
+ * Macros for dealing with dmu_buf_hold
+ */
+#define        ZFS_OBJ_HASH(obj_num)   ((obj_num) & (ZFS_OBJ_MTX_SZ - 1))
+#define        ZFS_OBJ_MUTEX(zfsvfs, obj_num)  \
+       (&(zfsvfs)->z_hold_mtx[ZFS_OBJ_HASH(obj_num)])
+#define        ZFS_OBJ_HOLD_ENTER(zfsvfs, obj_num) \
+       mutex_enter(ZFS_OBJ_MUTEX((zfsvfs), (obj_num)))
+#define        ZFS_OBJ_HOLD_TRYENTER(zfsvfs, obj_num) \
+       mutex_tryenter(ZFS_OBJ_MUTEX((zfsvfs), (obj_num)))
+#define        ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num) \
+       mutex_exit(ZFS_OBJ_MUTEX((zfsvfs), (obj_num)))
+
+/*
+ * Macros to encode/decode ZFS stored time values from/to struct timespec
+ */
+#define        ZFS_TIME_ENCODE(tp, stmp)               \
+{                                              \
+       (stmp)[0] = (uint64_t)(tp)->tv_sec;     \
+       (stmp)[1] = (uint64_t)(tp)->tv_nsec;    \
+}
+
+#define        ZFS_TIME_DECODE(tp, stmp)               \
+{                                              \
+       (tp)->tv_sec = (time_t)(stmp)[0];               \
+       (tp)->tv_nsec = (long)(stmp)[1];                \
+}
+
+/*
+ * Timestamp defines
+ */
+#define        ACCESSED                (AT_ATIME)
+#define        STATE_CHANGED           (AT_CTIME)
+#define        CONTENT_MODIFIED        (AT_MTIME | AT_CTIME)
+
+#define        ZFS_ACCESSTIME_STAMP(zfsvfs, zp) \
+       if ((zfsvfs)->z_atime && !((zfsvfs)->z_vfs->vfs_flag & VFS_RDONLY)) \
+               zfs_tstamp_update_setup(zp, ACCESSED, NULL, NULL, B_FALSE);
+
+extern int     zfs_init_fs(zfsvfs_t *, znode_t **);
+extern void    zfs_set_dataprop(objset_t *);
+extern void    zfs_create_fs(objset_t *os, cred_t *cr, nvlist_t *,
+    dmu_tx_t *tx);
+extern void    zfs_tstamp_update_setup(znode_t *, uint_t, uint64_t [2],
+    uint64_t [2], boolean_t);
+extern void    zfs_grow_blocksize(znode_t *, uint64_t, dmu_tx_t *);
+extern int     zfs_freesp(znode_t *, uint64_t, uint64_t, int, boolean_t);
+extern void    zfs_znode_init(void);
+extern void    zfs_znode_fini(void);
+extern int     zfs_zget(zfsvfs_t *, uint64_t, znode_t **);
+extern int     zfs_rezget(znode_t *);
+extern void    zfs_zinactive(znode_t *);
+extern void    zfs_znode_delete(znode_t *, dmu_tx_t *);
+extern void    zfs_znode_free(znode_t *);
+extern void    zfs_remove_op_tables(void);
+extern int     zfs_create_op_tables(void);
+extern int     zfs_sync(vfs_t *vfsp, short flag, cred_t *cr);
+extern dev_t   zfs_cmpldev(uint64_t);
+extern int     zfs_get_zplprop(objset_t *os, zfs_prop_t prop, uint64_t *value);
+extern int     zfs_get_stats(objset_t *os, nvlist_t *nv);
+extern void    zfs_znode_dmu_fini(znode_t *);
+
+extern void zfs_log_create(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
+    znode_t *dzp, znode_t *zp, char *name, vsecattr_t *, zfs_fuid_info_t *,
+    vattr_t *vap);
+extern int zfs_log_create_txtype(zil_create_t, vsecattr_t *vsecp,
+    vattr_t *vap);
+extern void zfs_log_remove(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
+    znode_t *dzp, char *name, uint64_t foid);
+#define        ZFS_NO_OBJECT   0       /* no object id */
+extern void zfs_log_link(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
+    znode_t *dzp, znode_t *zp, char *name);
+extern void zfs_log_symlink(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
+    znode_t *dzp, znode_t *zp, char *name, char *link);
+extern void zfs_log_rename(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
+    znode_t *sdzp, char *sname, znode_t *tdzp, char *dname, znode_t *szp);
+extern void zfs_log_write(zilog_t *zilog, dmu_tx_t *tx, int txtype,
+    znode_t *zp, offset_t off, ssize_t len, int ioflag);
+extern void zfs_log_truncate(zilog_t *zilog, dmu_tx_t *tx, int txtype,
+    znode_t *zp, uint64_t off, uint64_t len);
+extern void zfs_log_setattr(zilog_t *zilog, dmu_tx_t *tx, int txtype,
+    znode_t *zp, vattr_t *vap, uint_t mask_applied, zfs_fuid_info_t *fuidp);
+extern void zfs_log_acl(zilog_t *zilog, dmu_tx_t *tx, znode_t *zp,
+    vsecattr_t *vsecp, zfs_fuid_info_t *fuidp);
+extern void zfs_xvattr_set(znode_t *zp, xvattr_t *xvap, dmu_tx_t *tx);
+extern void zfs_upgrade(zfsvfs_t *zfsvfs, dmu_tx_t *tx);
+extern int zfs_create_share_dir(zfsvfs_t *zfsvfs, dmu_tx_t *tx);
+
+#if defined(HAVE_UIO_RW)
+extern caddr_t zfs_map_page(page_t *, enum seg_rw);
+extern void zfs_unmap_page(page_t *, caddr_t);
+#endif /* HAVE_UIO_RW */
+
+extern zil_get_data_t zfs_get_data;
+extern zil_replay_func_t *zfs_replay_vector[TX_MAX_TYPE];
+extern int zfsfstype;
+
+#endif /* _KERNEL */
+
+extern int zfs_obj_to_path(objset_t *osp, uint64_t obj, char *buf, int len);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_FS_ZFS_ZNODE_H */
diff --git a/include/sys/zil.h b/include/sys/zil.h
new file mode 100644 (file)
index 0000000..45900c9
--- /dev/null
@@ -0,0 +1,428 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+/* Portions Copyright 2010 Robert Milkowski */
+
+#ifndef        _SYS_ZIL_H
+#define        _SYS_ZIL_H
+
+#include <sys/types.h>
+#include <sys/spa.h>
+#include <sys/zio.h>
+#include <sys/dmu.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Intent log format:
+ *
+ * Each objset has its own intent log.  The log header (zil_header_t)
+ * for objset N's intent log is kept in the Nth object of the SPA's
+ * intent_log objset.  The log header points to a chain of log blocks,
+ * each of which contains log records (i.e., transactions) followed by
+ * a log block trailer (zil_trailer_t).  The format of a log record
+ * depends on the record (or transaction) type, but all records begin
+ * with a common structure that defines the type, length, and txg.
+ */
+
+/*
+ * Intent log header - this on disk structure holds fields to manage
+ * the log.  All fields are 64 bit to easily handle cross architectures.
+ */
+typedef struct zil_header {
+       uint64_t zh_claim_txg;  /* txg in which log blocks were claimed */
+       uint64_t zh_replay_seq; /* highest replayed sequence number */
+       blkptr_t zh_log;        /* log chain */
+       uint64_t zh_claim_blk_seq; /* highest claimed block sequence number */
+       uint64_t zh_flags;      /* header flags */
+       uint64_t zh_claim_lr_seq; /* highest claimed lr sequence number */
+       uint64_t zh_pad[3];
+} zil_header_t;
+
+/*
+ * zh_flags bit settings
+ */
+#define        ZIL_REPLAY_NEEDED       0x1     /* replay needed - internal only */
+#define        ZIL_CLAIM_LR_SEQ_VALID  0x2     /* zh_claim_lr_seq field is valid */
+
+/*
+ * Log block chaining.
+ *
+ * Log blocks are chained together. Originally they were chained at the
+ * end of the block. For performance reasons the chain was moved to the
+ * beginning of the block which allows writes for only the data being used.
+ * The older position is supported for backwards compatability.
+ *
+ * The zio_eck_t contains a zec_cksum which for the intent log is
+ * the sequence number of this log block. A seq of 0 is invalid.
+ * The zec_cksum is checked by the SPA against the sequence
+ * number passed in the blk_cksum field of the blkptr_t
+ */
+typedef struct zil_chain {
+       uint64_t zc_pad;
+       blkptr_t zc_next_blk;   /* next block in chain */
+       uint64_t zc_nused;      /* bytes in log block used */
+       zio_eck_t zc_eck;       /* block trailer */
+} zil_chain_t;
+
+#define        ZIL_MIN_BLKSZ   4096ULL
+#define        ZIL_MAX_BLKSZ   SPA_MAXBLOCKSIZE
+
+/*
+ * The words of a log block checksum.
+ */
+#define        ZIL_ZC_GUID_0   0
+#define        ZIL_ZC_GUID_1   1
+#define        ZIL_ZC_OBJSET   2
+#define        ZIL_ZC_SEQ      3
+
+typedef enum zil_create {
+       Z_FILE,
+       Z_DIR,
+       Z_XATTRDIR,
+} zil_create_t;
+
+/*
+ * size of xvattr log section.
+ * its composed of lr_attr_t + xvattr bitmap + 2 64 bit timestamps
+ * for create time and a single 64 bit integer for all of the attributes,
+ * and 4 64 bit integers (32 bytes) for the scanstamp.
+ *
+ */
+
+#define        ZIL_XVAT_SIZE(mapsize) \
+       sizeof (lr_attr_t) + (sizeof (uint32_t) * (mapsize - 1)) + \
+       (sizeof (uint64_t) * 7)
+
+/*
+ * Size of ACL in log.  The ACE data is padded out to properly align
+ * on 8 byte boundary.
+ */
+
+#define        ZIL_ACE_LENGTH(x)       (roundup(x, sizeof (uint64_t)))
+
+/*
+ * Intent log transaction types and record structures
+ */
+#define        TX_CREATE               1       /* Create file */
+#define        TX_MKDIR                2       /* Make directory */
+#define        TX_MKXATTR              3       /* Make XATTR directory */
+#define        TX_SYMLINK              4       /* Create symbolic link to a file */
+#define        TX_REMOVE               5       /* Remove file */
+#define        TX_RMDIR                6       /* Remove directory */
+#define        TX_LINK                 7       /* Create hard link to a file */
+#define        TX_RENAME               8       /* Rename a file */
+#define        TX_WRITE                9       /* File write */
+#define        TX_TRUNCATE             10      /* Truncate a file */
+#define        TX_SETATTR              11      /* Set file attributes */
+#define        TX_ACL_V0               12      /* Set old formatted ACL */
+#define        TX_ACL                  13      /* Set ACL */
+#define        TX_CREATE_ACL           14      /* create with ACL */
+#define        TX_CREATE_ATTR          15      /* create + attrs */
+#define        TX_CREATE_ACL_ATTR      16      /* create with ACL + attrs */
+#define        TX_MKDIR_ACL            17      /* mkdir with ACL */
+#define        TX_MKDIR_ATTR           18      /* mkdir with attr */
+#define        TX_MKDIR_ACL_ATTR       19      /* mkdir with ACL + attrs */
+#define        TX_WRITE2               20      /* dmu_sync EALREADY write */
+#define        TX_MAX_TYPE             21      /* Max transaction type */
+
+/*
+ * The transactions for mkdir, symlink, remove, rmdir, link, and rename
+ * may have the following bit set, indicating the original request
+ * specified case-insensitive handling of names.
+ */
+#define        TX_CI   ((uint64_t)0x1 << 63) /* case-insensitive behavior requested */
+
+/*
+ * Transactions for write, truncate, setattr, acl_v0, and acl can be logged
+ * out of order.  For convenience in the code, all such records must have
+ * lr_foid at the same offset.
+ */
+#define        TX_OOO(txtype)                  \
+       ((txtype) == TX_WRITE ||        \
+       (txtype) == TX_TRUNCATE ||      \
+       (txtype) == TX_SETATTR ||       \
+       (txtype) == TX_ACL_V0 ||        \
+       (txtype) == TX_ACL ||           \
+       (txtype) == TX_WRITE2)
+
+/*
+ * Format of log records.
+ * The fields are carefully defined to allow them to be aligned
+ * and sized the same on sparc & intel architectures.
+ * Each log record has a common structure at the beginning.
+ *
+ * The log record on disk (lrc_seq) holds the sequence number of all log
+ * records which is used to ensure we don't replay the same record.
+ */
+typedef struct {                       /* common log record header */
+       uint64_t        lrc_txtype;     /* intent log transaction type */
+       uint64_t        lrc_reclen;     /* transaction record length */
+       uint64_t        lrc_txg;        /* dmu transaction group number */
+       uint64_t        lrc_seq;        /* see comment above */
+} lr_t;
+
+/*
+ * Common start of all out-of-order record types (TX_OOO() above).
+ */
+typedef struct {
+       lr_t            lr_common;      /* common portion of log record */
+       uint64_t        lr_foid;        /* object id */
+} lr_ooo_t;
+
+/*
+ * Handle option extended vattr attributes.
+ *
+ * Whenever new attributes are added the version number
+ * will need to be updated as will code in
+ * zfs_log.c and zfs_replay.c
+ */
+typedef struct {
+       uint32_t        lr_attr_masksize; /* number of elements in array */
+       uint32_t        lr_attr_bitmap; /* First entry of array */
+       /* remainder of array and any additional fields */
+} lr_attr_t;
+
+/*
+ * log record for creates without optional ACL.
+ * This log record does support optional xvattr_t attributes.
+ */
+typedef struct {
+       lr_t            lr_common;      /* common portion of log record */
+       uint64_t        lr_doid;        /* object id of directory */
+       uint64_t        lr_foid;        /* object id of created file object */
+       uint64_t        lr_mode;        /* mode of object */
+       uint64_t        lr_uid;         /* uid of object */
+       uint64_t        lr_gid;         /* gid of object */
+       uint64_t        lr_gen;         /* generation (txg of creation) */
+       uint64_t        lr_crtime[2];   /* creation time */
+       uint64_t        lr_rdev;        /* rdev of object to create */
+       /* name of object to create follows this */
+       /* for symlinks, link content follows name */
+       /* for creates with xvattr data, the name follows the xvattr info */
+} lr_create_t;
+
+/*
+ * FUID ACL record will be an array of ACEs from the original ACL.
+ * If this array includes ephemeral IDs, the record will also include
+ * an array of log-specific FUIDs to replace the ephemeral IDs.
+ * Only one copy of each unique domain will be present, so the log-specific
+ * FUIDs will use an index into a compressed domain table.  On replay this
+ * information will be used to construct real FUIDs (and bypass idmap,
+ * since it may not be available).
+ */
+
+/*
+ * Log record for creates with optional ACL
+ * This log record is also used for recording any FUID
+ * information needed for replaying the create.  If the
+ * file doesn't have any actual ACEs then the lr_aclcnt
+ * would be zero.
+ */
+typedef struct {
+       lr_create_t     lr_create;      /* common create portion */
+       uint64_t        lr_aclcnt;      /* number of ACEs in ACL */
+       uint64_t        lr_domcnt;      /* number of unique domains */
+       uint64_t        lr_fuidcnt;     /* number of real fuids */
+       uint64_t        lr_acl_bytes;   /* number of bytes in ACL */
+       uint64_t        lr_acl_flags;   /* ACL flags */
+       /* lr_acl_bytes number of variable sized ace's follows */
+       /* if create is also setting xvattr's, then acl data follows xvattr */
+       /* if ACE FUIDs are needed then they will follow the xvattr_t */
+       /* Following the FUIDs will be the domain table information. */
+       /* The FUIDs for the owner and group will be in the lr_create */
+       /* portion of the record. */
+       /* name follows ACL data */
+} lr_acl_create_t;
+
+typedef struct {
+       lr_t            lr_common;      /* common portion of log record */
+       uint64_t        lr_doid;        /* obj id of directory */
+       /* name of object to remove follows this */
+} lr_remove_t;
+
+typedef struct {
+       lr_t            lr_common;      /* common portion of log record */
+       uint64_t        lr_doid;        /* obj id of directory */
+       uint64_t        lr_link_obj;    /* obj id of link */
+       /* name of object to link follows this */
+} lr_link_t;
+
+typedef struct {
+       lr_t            lr_common;      /* common portion of log record */
+       uint64_t        lr_sdoid;       /* obj id of source directory */
+       uint64_t        lr_tdoid;       /* obj id of target directory */
+       /* 2 strings: names of source and destination follow this */
+} lr_rename_t;
+
+typedef struct {
+       lr_t            lr_common;      /* common portion of log record */
+       uint64_t        lr_foid;        /* file object to write */
+       uint64_t        lr_offset;      /* offset to write to */
+       uint64_t        lr_length;      /* user data length to write */
+       uint64_t        lr_blkoff;      /* no longer used */
+       blkptr_t        lr_blkptr;      /* spa block pointer for replay */
+       /* write data will follow for small writes */
+} lr_write_t;
+
+typedef struct {
+       lr_t            lr_common;      /* common portion of log record */
+       uint64_t        lr_foid;        /* object id of file to truncate */
+       uint64_t        lr_offset;      /* offset to truncate from */
+       uint64_t        lr_length;      /* length to truncate */
+} lr_truncate_t;
+
+typedef struct {
+       lr_t            lr_common;      /* common portion of log record */
+       uint64_t        lr_foid;        /* file object to change attributes */
+       uint64_t        lr_mask;        /* mask of attributes to set */
+       uint64_t        lr_mode;        /* mode to set */
+       uint64_t        lr_uid;         /* uid to set */
+       uint64_t        lr_gid;         /* gid to set */
+       uint64_t        lr_size;        /* size to set */
+       uint64_t        lr_atime[2];    /* access time */
+       uint64_t        lr_mtime[2];    /* modification time */
+       /* optional attribute lr_attr_t may be here */
+} lr_setattr_t;
+
+typedef struct {
+       lr_t            lr_common;      /* common portion of log record */
+       uint64_t        lr_foid;        /* obj id of file */
+       uint64_t        lr_aclcnt;      /* number of acl entries */
+       /* lr_aclcnt number of ace_t entries follow this */
+} lr_acl_v0_t;
+
+typedef struct {
+       lr_t            lr_common;      /* common portion of log record */
+       uint64_t        lr_foid;        /* obj id of file */
+       uint64_t        lr_aclcnt;      /* number of ACEs in ACL */
+       uint64_t        lr_domcnt;      /* number of unique domains */
+       uint64_t        lr_fuidcnt;     /* number of real fuids */
+       uint64_t        lr_acl_bytes;   /* number of bytes in ACL */
+       uint64_t        lr_acl_flags;   /* ACL flags */
+       /* lr_acl_bytes number of variable sized ace's follows */
+} lr_acl_t;
+
+/*
+ * ZIL structure definitions, interface function prototype and globals.
+ */
+
+/*
+ * Writes are handled in three different ways:
+ *
+ * WR_INDIRECT:
+ *    In this mode, if we need to commit the write later, then the block
+ *    is immediately written into the file system (using dmu_sync),
+ *    and a pointer to the block is put into the log record.
+ *    When the txg commits the block is linked in.
+ *    This saves additionally writing the data into the log record.
+ *    There are a few requirements for this to occur:
+ *     - write is greater than zfs/zvol_immediate_write_sz
+ *     - not using slogs (as slogs are assumed to always be faster
+ *       than writing into the main pool)
+ *     - the write occupies only one block
+ * WR_COPIED:
+ *    If we know we'll immediately be committing the
+ *    transaction (FSYNC or FDSYNC), the we allocate a larger
+ *    log record here for the data and copy the data in.
+ * WR_NEED_COPY:
+ *    Otherwise we don't allocate a buffer, and *if* we need to
+ *    flush the write later then a buffer is allocated and
+ *    we retrieve the data using the dmu.
+ */
+typedef enum {
+       WR_INDIRECT,    /* indirect - a large write (dmu_sync() data */
+                       /* and put blkptr in log, rather than actual data) */
+       WR_COPIED,      /* immediate - data is copied into lr_write_t */
+       WR_NEED_COPY,   /* immediate - data needs to be copied if pushed */
+       WR_NUM_STATES   /* number of states */
+} itx_wr_state_t;
+
+typedef struct itx {
+       list_node_t     itx_node;       /* linkage on zl_itx_list */
+       void            *itx_private;   /* type-specific opaque data */
+       itx_wr_state_t  itx_wr_state;   /* write state */
+       uint8_t         itx_sync;       /* synchronous transaction */
+       uint64_t        itx_sod;        /* record size on disk */
+       uint64_t        itx_oid;        /* object id */
+       lr_t            itx_lr;         /* common part of log record */
+       /* followed by type-specific part of lr_xx_t and its immediate data */
+} itx_t;
+
+typedef int zil_parse_blk_func_t(zilog_t *zilog, blkptr_t *bp, void *arg,
+    uint64_t txg);
+typedef int zil_parse_lr_func_t(zilog_t *zilog, lr_t *lr, void *arg,
+    uint64_t txg);
+typedef int zil_replay_func_t(void *, char *, boolean_t);
+typedef int zil_get_data_t(void *arg, lr_write_t *lr, char *dbuf, zio_t *zio);
+
+extern int zil_parse(zilog_t *zilog, zil_parse_blk_func_t *parse_blk_func,
+    zil_parse_lr_func_t *parse_lr_func, void *arg, uint64_t txg);
+
+extern void    zil_init(void);
+extern void    zil_fini(void);
+
+extern zilog_t *zil_alloc(objset_t *os, zil_header_t *zh_phys);
+extern void    zil_free(zilog_t *zilog);
+
+extern zilog_t *zil_open(objset_t *os, zil_get_data_t *get_data);
+extern void    zil_close(zilog_t *zilog);
+
+extern void    zil_replay(objset_t *os, void *arg,
+    zil_replay_func_t *replay_func[TX_MAX_TYPE]);
+extern boolean_t zil_replaying(zilog_t *zilog, dmu_tx_t *tx);
+extern void    zil_destroy(zilog_t *zilog, boolean_t keep_first);
+extern void    zil_rollback_destroy(zilog_t *zilog, dmu_tx_t *tx);
+
+extern itx_t   *zil_itx_create(uint64_t txtype, size_t lrsize);
+extern void    zil_itx_destroy(itx_t *itx);
+extern void    zil_itx_assign(zilog_t *zilog, itx_t *itx, dmu_tx_t *tx);
+
+extern void    zil_commit(zilog_t *zilog, uint64_t oid);
+
+extern int     zil_vdev_offline(const char *osname, void *txarg);
+extern int     zil_claim(const char *osname, void *txarg);
+extern int     zil_check_log_chain(const char *osname, void *txarg);
+extern void    zil_sync(zilog_t *zilog, dmu_tx_t *tx);
+extern void    zil_clean(zilog_t *zilog, uint64_t synced_txg);
+
+extern int     zil_suspend(zilog_t *zilog);
+extern void    zil_resume(zilog_t *zilog);
+
+extern void    zil_add_block(zilog_t *zilog, const blkptr_t *bp);
+extern int     zil_bp_tree_add(zilog_t *zilog, const blkptr_t *bp);
+
+extern void    zil_set_sync(zilog_t *zilog, uint64_t syncval);
+
+extern void    zil_set_logbias(zilog_t *zilog, uint64_t slogval);
+
+extern int zil_replay_disable;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZIL_H */
diff --git a/include/sys/zil_impl.h b/include/sys/zil_impl.h
new file mode 100644 (file)
index 0000000..1d4c0cc
--- /dev/null
@@ -0,0 +1,147 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+/* Portions Copyright 2010 Robert Milkowski */
+
+#ifndef        _SYS_ZIL_IMPL_H
+#define        _SYS_ZIL_IMPL_H
+
+#include <sys/zil.h>
+#include <sys/dmu_objset.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Log write buffer.
+ */
+typedef struct lwb {
+       zilog_t         *lwb_zilog;     /* back pointer to log struct */
+       blkptr_t        lwb_blk;        /* on disk address of this log blk */
+       int             lwb_nused;      /* # used bytes in buffer */
+       int             lwb_sz;         /* size of block and buffer */
+       char            *lwb_buf;       /* log write buffer */
+       zio_t           *lwb_zio;       /* zio for this buffer */
+       dmu_tx_t        *lwb_tx;        /* tx for log block allocation */
+       uint64_t        lwb_max_txg;    /* highest txg in this lwb */
+       list_node_t     lwb_node;       /* zilog->zl_lwb_list linkage */
+} lwb_t;
+
+/*
+ * Intent log transaction lists
+ */
+typedef struct itxs {
+       list_t          i_sync_list;    /* list of synchronous itxs */
+       avl_tree_t      i_async_tree;   /* tree of foids for async itxs */
+} itxs_t;
+
+typedef struct itxg {
+       kmutex_t        itxg_lock;      /* lock for this structure */
+       uint64_t        itxg_txg;       /* txg for this chain */
+       uint64_t        itxg_sod;       /* total size on disk for this txg */
+       itxs_t          *itxg_itxs;     /* sync and async itxs */
+} itxg_t;
+
+/* for async nodes we build up an AVL tree of lists of async itxs per file */
+typedef struct itx_async_node {
+       uint64_t        ia_foid;        /* file object id */
+       list_t          ia_list;        /* list of async itxs for this foid */
+       avl_node_t      ia_node;        /* AVL tree linkage */
+} itx_async_node_t;
+
+/*
+ * Vdev flushing: during a zil_commit(), we build up an AVL tree of the vdevs
+ * we've touched so we know which ones need a write cache flush at the end.
+ */
+typedef struct zil_vdev_node {
+       uint64_t        zv_vdev;        /* vdev to be flushed */
+       avl_node_t      zv_node;        /* AVL tree linkage */
+} zil_vdev_node_t;
+
+#define        ZIL_PREV_BLKS 16
+
+/*
+ * Stable storage intent log management structure.  One per dataset.
+ */
+struct zilog {
+       kmutex_t        zl_lock;        /* protects most zilog_t fields */
+       struct dsl_pool *zl_dmu_pool;   /* DSL pool */
+       spa_t           *zl_spa;        /* handle for read/write log */
+       const zil_header_t *zl_header;  /* log header buffer */
+       objset_t        *zl_os;         /* object set we're logging */
+       zil_get_data_t  *zl_get_data;   /* callback to get object content */
+       zio_t           *zl_root_zio;   /* log writer root zio */
+       uint64_t        zl_lr_seq;      /* on-disk log record sequence number */
+       uint64_t        zl_commit_lr_seq; /* last committed on-disk lr seq */
+       uint64_t        zl_destroy_txg; /* txg of last zil_destroy() */
+       uint64_t        zl_replayed_seq[TXG_SIZE]; /* last replayed rec seq */
+       uint64_t        zl_replaying_seq; /* current replay seq number */
+       uint32_t        zl_suspend;     /* log suspend count */
+       kcondvar_t      zl_cv_writer;   /* log writer thread completion */
+       kcondvar_t      zl_cv_suspend;  /* log suspend completion */
+       uint8_t         zl_suspending;  /* log is currently suspending */
+       uint8_t         zl_keep_first;  /* keep first log block in destroy */
+       uint8_t         zl_replay;      /* replaying records while set */
+       uint8_t         zl_stop_sync;   /* for debugging */
+       uint8_t         zl_writer;      /* boolean: write setup in progress */
+       uint8_t         zl_logbias;     /* latency or throughput */
+       uint8_t         zl_sync;        /* synchronous or asynchronous */
+       int             zl_parse_error; /* last zil_parse() error */
+       uint64_t        zl_parse_blk_seq; /* highest blk seq on last parse */
+       uint64_t        zl_parse_lr_seq; /* highest lr seq on last parse */
+       uint64_t        zl_parse_blk_count; /* number of blocks parsed */
+       uint64_t        zl_parse_lr_count; /* number of log records parsed */
+       uint64_t        zl_next_batch;  /* next batch number */
+       uint64_t        zl_com_batch;   /* committed batch number */
+       kcondvar_t      zl_cv_batch[2]; /* batch condition variables */
+       itxg_t          zl_itxg[TXG_SIZE]; /* intent log txg chains */
+       list_t          zl_itx_commit_list; /* itx list to be committed */
+       uint64_t        zl_itx_list_sz; /* total size of records on list */
+       uint64_t        zl_cur_used;    /* current commit log size used */
+       list_t          zl_lwb_list;    /* in-flight log write list */
+       kmutex_t        zl_vdev_lock;   /* protects zl_vdev_tree */
+       avl_tree_t      zl_vdev_tree;   /* vdevs to flush in zil_commit() */
+       taskq_t         *zl_clean_taskq; /* runs lwb and itx clean tasks */
+       avl_tree_t      zl_bp_tree;     /* track bps during log parse */
+       clock_t         zl_replay_time; /* lbolt of when replay started */
+       uint64_t        zl_replay_blks; /* number of log blocks replayed */
+       zil_header_t    zl_old_header;  /* debugging aid */
+       uint_t          zl_prev_blks[ZIL_PREV_BLKS]; /* size - sector rounded */
+       uint_t          zl_prev_rotor;  /* rotor for zl_prev[] */
+};
+
+typedef struct zil_bp_node {
+       dva_t           zn_dva;
+       avl_node_t      zn_node;
+} zil_bp_node_t;
+
+#define        ZIL_MAX_LOG_DATA (SPA_MAXBLOCKSIZE - sizeof (zil_chain_t) - \
+    sizeof (lr_write_t))
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZIL_IMPL_H */
diff --git a/include/sys/zio.h b/include/sys/zio.h
new file mode 100644 (file)
index 0000000..97d8ec7
--- /dev/null
@@ -0,0 +1,559 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _ZIO_H
+#define        _ZIO_H
+
+#include <sys/zfs_context.h>
+#include <sys/spa.h>
+#include <sys/txg.h>
+#include <sys/avl.h>
+#include <sys/fs/zfs.h>
+#include <sys/zio_impl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Embedded checksum
+ */
+#define        ZEC_MAGIC       0x210da7ab10c7a11ULL
+
+typedef struct zio_eck {
+       uint64_t        zec_magic;      /* for validation, endianness   */
+       zio_cksum_t     zec_cksum;      /* 256-bit checksum             */
+} zio_eck_t;
+
+/*
+ * Gang block headers are self-checksumming and contain an array
+ * of block pointers.
+ */
+#define        SPA_GANGBLOCKSIZE       SPA_MINBLOCKSIZE
+#define        SPA_GBH_NBLKPTRS        ((SPA_GANGBLOCKSIZE - \
+       sizeof (zio_eck_t)) / sizeof (blkptr_t))
+#define        SPA_GBH_FILLER          ((SPA_GANGBLOCKSIZE - \
+       sizeof (zio_eck_t) - \
+       (SPA_GBH_NBLKPTRS * sizeof (blkptr_t))) /\
+       sizeof (uint64_t))
+
+typedef struct zio_gbh {
+       blkptr_t                zg_blkptr[SPA_GBH_NBLKPTRS];
+       uint64_t                zg_filler[SPA_GBH_FILLER];
+       zio_eck_t               zg_tail;
+} zio_gbh_phys_t;
+
+enum zio_checksum {
+       ZIO_CHECKSUM_INHERIT = 0,
+       ZIO_CHECKSUM_ON,
+       ZIO_CHECKSUM_OFF,
+       ZIO_CHECKSUM_LABEL,
+       ZIO_CHECKSUM_GANG_HEADER,
+       ZIO_CHECKSUM_ZILOG,
+       ZIO_CHECKSUM_FLETCHER_2,
+       ZIO_CHECKSUM_FLETCHER_4,
+       ZIO_CHECKSUM_SHA256,
+       ZIO_CHECKSUM_ZILOG2,
+       ZIO_CHECKSUM_FUNCTIONS
+};
+
+#define        ZIO_CHECKSUM_ON_VALUE   ZIO_CHECKSUM_FLETCHER_4
+#define        ZIO_CHECKSUM_DEFAULT    ZIO_CHECKSUM_ON
+
+#define        ZIO_CHECKSUM_MASK       0xffULL
+#define        ZIO_CHECKSUM_VERIFY     (1 << 8)
+
+#define        ZIO_DEDUPCHECKSUM       ZIO_CHECKSUM_SHA256
+#define        ZIO_DEDUPDITTO_MIN      100
+
+enum zio_compress {
+       ZIO_COMPRESS_INHERIT = 0,
+       ZIO_COMPRESS_ON,
+       ZIO_COMPRESS_OFF,
+       ZIO_COMPRESS_LZJB,
+       ZIO_COMPRESS_EMPTY,
+       ZIO_COMPRESS_GZIP_1,
+       ZIO_COMPRESS_GZIP_2,
+       ZIO_COMPRESS_GZIP_3,
+       ZIO_COMPRESS_GZIP_4,
+       ZIO_COMPRESS_GZIP_5,
+       ZIO_COMPRESS_GZIP_6,
+       ZIO_COMPRESS_GZIP_7,
+       ZIO_COMPRESS_GZIP_8,
+       ZIO_COMPRESS_GZIP_9,
+       ZIO_COMPRESS_ZLE,
+       ZIO_COMPRESS_FUNCTIONS
+};
+
+#define        ZIO_COMPRESS_ON_VALUE   ZIO_COMPRESS_LZJB
+#define        ZIO_COMPRESS_DEFAULT    ZIO_COMPRESS_OFF
+
+#define        BOOTFS_COMPRESS_VALID(compress)                 \
+       ((compress) == ZIO_COMPRESS_LZJB ||             \
+       ((compress) == ZIO_COMPRESS_ON &&               \
+       ZIO_COMPRESS_ON_VALUE == ZIO_COMPRESS_LZJB) ||  \
+       (compress) == ZIO_COMPRESS_OFF)
+
+#define        ZIO_FAILURE_MODE_WAIT           0
+#define        ZIO_FAILURE_MODE_CONTINUE       1
+#define        ZIO_FAILURE_MODE_PANIC          2
+
+#define        ZIO_PRIORITY_NOW                (zio_priority_table[0])
+#define        ZIO_PRIORITY_SYNC_READ          (zio_priority_table[1])
+#define        ZIO_PRIORITY_SYNC_WRITE         (zio_priority_table[2])
+#define        ZIO_PRIORITY_LOG_WRITE          (zio_priority_table[3])
+#define        ZIO_PRIORITY_CACHE_FILL         (zio_priority_table[4])
+#define        ZIO_PRIORITY_AGG                (zio_priority_table[5])
+#define        ZIO_PRIORITY_FREE               (zio_priority_table[6])
+#define        ZIO_PRIORITY_ASYNC_WRITE        (zio_priority_table[7])
+#define        ZIO_PRIORITY_ASYNC_READ         (zio_priority_table[8])
+#define        ZIO_PRIORITY_RESILVER           (zio_priority_table[9])
+#define        ZIO_PRIORITY_SCRUB              (zio_priority_table[10])
+#define        ZIO_PRIORITY_DDT_PREFETCH       (zio_priority_table[11])
+#define        ZIO_PRIORITY_TABLE_SIZE         12
+
+#define        ZIO_PIPELINE_CONTINUE           0x100
+#define        ZIO_PIPELINE_STOP               0x101
+
+enum zio_flag {
+       /*
+        * Flags inherited by gang, ddt, and vdev children,
+        * and that must be equal for two zios to aggregate
+        */
+       ZIO_FLAG_DONT_AGGREGATE = 1 << 0,
+       ZIO_FLAG_IO_REPAIR      = 1 << 1,
+       ZIO_FLAG_SELF_HEAL      = 1 << 2,
+       ZIO_FLAG_RESILVER       = 1 << 3,
+       ZIO_FLAG_SCRUB          = 1 << 4,
+       ZIO_FLAG_SCAN_THREAD    = 1 << 5,
+
+#define        ZIO_FLAG_AGG_INHERIT    (ZIO_FLAG_CANFAIL - 1)
+
+       /*
+        * Flags inherited by ddt, gang, and vdev children.
+        */
+       ZIO_FLAG_CANFAIL        = 1 << 6,       /* must be first for INHERIT */
+       ZIO_FLAG_SPECULATIVE    = 1 << 7,
+       ZIO_FLAG_CONFIG_WRITER  = 1 << 8,
+       ZIO_FLAG_DONT_RETRY     = 1 << 9,
+       ZIO_FLAG_DONT_CACHE     = 1 << 10,
+       ZIO_FLAG_NODATA         = 1 << 11,
+       ZIO_FLAG_INDUCE_DAMAGE  = 1 << 12,
+
+#define        ZIO_FLAG_DDT_INHERIT    (ZIO_FLAG_IO_RETRY - 1)
+#define        ZIO_FLAG_GANG_INHERIT   (ZIO_FLAG_IO_RETRY - 1)
+
+       /*
+        * Flags inherited by vdev children.
+        */
+       ZIO_FLAG_IO_RETRY       = 1 << 13,      /* must be first for INHERIT */
+       ZIO_FLAG_PROBE          = 1 << 14,
+       ZIO_FLAG_TRYHARD        = 1 << 15,
+       ZIO_FLAG_OPTIONAL       = 1 << 16,
+
+#define        ZIO_FLAG_VDEV_INHERIT   (ZIO_FLAG_DONT_QUEUE - 1)
+
+       /*
+        * Flags not inherited by any children.
+        */
+       ZIO_FLAG_DONT_QUEUE     = 1 << 17,      /* must be first for INHERIT */
+       ZIO_FLAG_DONT_PROPAGATE = 1 << 18,
+       ZIO_FLAG_IO_BYPASS      = 1 << 19,
+       ZIO_FLAG_IO_REWRITE     = 1 << 20,
+       ZIO_FLAG_RAW            = 1 << 21,
+       ZIO_FLAG_GANG_CHILD     = 1 << 22,
+       ZIO_FLAG_DDT_CHILD      = 1 << 23,
+       ZIO_FLAG_GODFATHER      = 1 << 24
+};
+
+#define        ZIO_FLAG_MUSTSUCCEED            0
+
+#define        ZIO_DDT_CHILD_FLAGS(zio)                                \
+       (((zio)->io_flags & ZIO_FLAG_DDT_INHERIT) |             \
+       ZIO_FLAG_DDT_CHILD | ZIO_FLAG_CANFAIL)
+
+#define        ZIO_GANG_CHILD_FLAGS(zio)                               \
+       (((zio)->io_flags & ZIO_FLAG_GANG_INHERIT) |            \
+       ZIO_FLAG_GANG_CHILD | ZIO_FLAG_CANFAIL)
+
+#define        ZIO_VDEV_CHILD_FLAGS(zio)                               \
+       (((zio)->io_flags & ZIO_FLAG_VDEV_INHERIT) |            \
+       ZIO_FLAG_CANFAIL)
+
+enum zio_child {
+       ZIO_CHILD_VDEV = 0,
+       ZIO_CHILD_GANG,
+       ZIO_CHILD_DDT,
+       ZIO_CHILD_LOGICAL,
+       ZIO_CHILD_TYPES
+};
+
+enum zio_wait_type {
+       ZIO_WAIT_READY = 0,
+       ZIO_WAIT_DONE,
+       ZIO_WAIT_TYPES
+};
+
+/*
+ * We'll take the unused errnos, 'EBADE' and 'EBADR' (from the Convergent
+ * graveyard) to indicate checksum errors and fragmentation.
+ */
+#define        ECKSUM  EBADE
+#define        EFRAGS  EBADR
+
+typedef void zio_done_func_t(zio_t *zio);
+
+extern uint8_t zio_priority_table[ZIO_PRIORITY_TABLE_SIZE];
+extern char *zio_type_name[ZIO_TYPES];
+
+/*
+ * A bookmark is a four-tuple <objset, object, level, blkid> that uniquely
+ * identifies any block in the pool.  By convention, the meta-objset (MOS)
+ * is objset 0, and the meta-dnode is object 0.  This covers all blocks
+ * except root blocks and ZIL blocks, which are defined as follows:
+ *
+ * Root blocks (objset_phys_t) are object 0, level -1:  <objset, 0, -1, 0>.
+ * ZIL blocks are bookmarked <objset, 0, -2, blkid == ZIL sequence number>.
+ * dmu_sync()ed ZIL data blocks are bookmarked <objset, object, -2, blkid>.
+ *
+ * Note: this structure is called a bookmark because its original purpose
+ * was to remember where to resume a pool-wide traverse.
+ *
+ * Note: this structure is passed between userland and the kernel.
+ * Therefore it must not change size or alignment between 32/64 bit
+ * compilation options.
+ */
+typedef struct zbookmark {
+       uint64_t        zb_objset;
+       uint64_t        zb_object;
+       int64_t         zb_level;
+       uint64_t        zb_blkid;
+} zbookmark_t;
+
+#define        SET_BOOKMARK(zb, objset, object, level, blkid)  \
+{                                                       \
+       (zb)->zb_objset = objset;                       \
+       (zb)->zb_object = object;                       \
+       (zb)->zb_level = level;                         \
+       (zb)->zb_blkid = blkid;                         \
+}
+
+#define        ZB_DESTROYED_OBJSET     (-1ULL)
+
+#define        ZB_ROOT_OBJECT          (0ULL)
+#define        ZB_ROOT_LEVEL           (-1LL)
+#define        ZB_ROOT_BLKID           (0ULL)
+
+#define        ZB_ZIL_OBJECT           (0ULL)
+#define        ZB_ZIL_LEVEL            (-2LL)
+
+typedef struct zio_prop {
+       enum zio_checksum       zp_checksum;
+       enum zio_compress       zp_compress;
+       dmu_object_type_t       zp_type;
+       uint8_t                 zp_level;
+       uint8_t                 zp_copies;
+       uint8_t                 zp_dedup;
+       uint8_t                 zp_dedup_verify;
+} zio_prop_t;
+
+typedef struct zio_cksum_report zio_cksum_report_t;
+
+typedef void zio_cksum_finish_f(zio_cksum_report_t *rep,
+    const void *good_data);
+typedef void zio_cksum_free_f(void *cbdata, size_t size);
+
+struct zio_bad_cksum;                          /* defined in zio_checksum.h */
+
+struct zio_cksum_report {
+       struct zio_cksum_report *zcr_next;
+       nvlist_t                *zcr_ereport;
+       nvlist_t                *zcr_detector;
+       void                    *zcr_cbdata;
+       size_t                  zcr_cbinfo;     /* passed to zcr_free() */
+       uint64_t                zcr_align;
+       uint64_t                zcr_length;
+       zio_cksum_finish_f      *zcr_finish;
+       zio_cksum_free_f        *zcr_free;
+
+       /* internal use only */
+       struct zio_bad_cksum    *zcr_ckinfo;    /* information from failure */
+};
+
+typedef void zio_vsd_cksum_report_f(zio_t *zio, zio_cksum_report_t *zcr,
+    void *arg);
+
+zio_vsd_cksum_report_f zio_vsd_default_cksum_report;
+
+typedef struct zio_vsd_ops {
+       zio_done_func_t         *vsd_free;
+       zio_vsd_cksum_report_f  *vsd_cksum_report;
+} zio_vsd_ops_t;
+
+typedef struct zio_gang_node {
+       zio_gbh_phys_t          *gn_gbh;
+       struct zio_gang_node    *gn_child[SPA_GBH_NBLKPTRS];
+} zio_gang_node_t;
+
+typedef zio_t *zio_gang_issue_func_t(zio_t *zio, blkptr_t *bp,
+    zio_gang_node_t *gn, void *data);
+
+typedef void zio_transform_func_t(zio_t *zio, void *data, uint64_t size);
+
+typedef struct zio_transform {
+       void                    *zt_orig_data;
+       uint64_t                zt_orig_size;
+       uint64_t                zt_bufsize;
+       zio_transform_func_t    *zt_transform;
+       struct zio_transform    *zt_next;
+} zio_transform_t;
+
+typedef int zio_pipe_stage_t(zio_t *zio);
+
+/*
+ * The io_reexecute flags are distinct from io_flags because the child must
+ * be able to propagate them to the parent.  The normal io_flags are local
+ * to the zio, not protected by any lock, and not modifiable by children;
+ * the reexecute flags are protected by io_lock, modifiable by children,
+ * and always propagated -- even when ZIO_FLAG_DONT_PROPAGATE is set.
+ */
+#define        ZIO_REEXECUTE_NOW       0x01
+#define        ZIO_REEXECUTE_SUSPEND   0x02
+
+typedef struct zio_link {
+       zio_t           *zl_parent;
+       zio_t           *zl_child;
+       list_node_t     zl_parent_node;
+       list_node_t     zl_child_node;
+} zio_link_t;
+
+struct zio {
+       /* Core information about this I/O */
+       zbookmark_t     io_bookmark;
+       zio_prop_t      io_prop;
+       zio_type_t      io_type;
+       enum zio_child  io_child_type;
+       int             io_cmd;
+       uint8_t         io_priority;
+       uint8_t         io_reexecute;
+       uint8_t         io_state[ZIO_WAIT_TYPES];
+       uint64_t        io_txg;
+       spa_t           *io_spa;
+       blkptr_t        *io_bp;
+       blkptr_t        *io_bp_override;
+       blkptr_t        io_bp_copy;
+       list_t          io_parent_list;
+       list_t          io_child_list;
+       zio_link_t      *io_walk_link;
+       zio_t           *io_logical;
+       zio_transform_t *io_transform_stack;
+
+       /* Callback info */
+       zio_done_func_t *io_ready;
+       zio_done_func_t *io_done;
+       void            *io_private;
+       int64_t         io_prev_space_delta;    /* DMU private */
+       blkptr_t        io_bp_orig;
+
+       /* Data represented by this I/O */
+       void            *io_data;
+       void            *io_orig_data;
+       uint64_t        io_size;
+       uint64_t        io_orig_size;
+
+       /* Stuff for the vdev stack */
+       vdev_t          *io_vd;
+       void            *io_vsd;
+       const zio_vsd_ops_t *io_vsd_ops;
+
+       uint64_t        io_offset;
+       uint64_t        io_deadline;
+       avl_node_t      io_offset_node;
+       avl_node_t      io_deadline_node;
+       avl_tree_t      *io_vdev_tree;
+
+       /* Internal pipeline state */
+       enum zio_flag   io_flags;
+       enum zio_stage  io_stage;
+       enum zio_stage  io_pipeline;
+       enum zio_flag   io_orig_flags;
+       enum zio_stage  io_orig_stage;
+       enum zio_stage  io_orig_pipeline;
+       int             io_error;
+       int             io_child_error[ZIO_CHILD_TYPES];
+       uint64_t        io_children[ZIO_CHILD_TYPES][ZIO_WAIT_TYPES];
+       uint64_t        io_child_count;
+       uint64_t        io_parent_count;
+       uint64_t        *io_stall;
+       zio_t           *io_gang_leader;
+       zio_gang_node_t *io_gang_tree;
+       void            *io_executor;
+       void            *io_waiter;
+       kmutex_t        io_lock;
+       kcondvar_t      io_cv;
+
+       /* FMA state */
+       zio_cksum_report_t *io_cksum_report;
+       uint64_t        io_ena;
+};
+
+extern zio_t *zio_null(zio_t *pio, spa_t *spa, vdev_t *vd,
+    zio_done_func_t *done, void *private, enum zio_flag flags);
+
+extern zio_t *zio_root(spa_t *spa,
+    zio_done_func_t *done, void *private, enum zio_flag flags);
+
+extern zio_t *zio_read(zio_t *pio, spa_t *spa, const blkptr_t *bp, void *data,
+    uint64_t size, zio_done_func_t *done, void *private,
+    int priority, enum zio_flag flags, const zbookmark_t *zb);
+
+extern zio_t *zio_write(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp,
+    void *data, uint64_t size, const zio_prop_t *zp,
+    zio_done_func_t *ready, zio_done_func_t *done, void *private,
+    int priority, enum zio_flag flags, const zbookmark_t *zb);
+
+extern zio_t *zio_rewrite(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp,
+    void *data, uint64_t size, zio_done_func_t *done, void *private,
+    int priority, enum zio_flag flags, zbookmark_t *zb);
+
+extern void zio_write_override(zio_t *zio, blkptr_t *bp, int copies);
+
+extern void zio_free(spa_t *spa, uint64_t txg, const blkptr_t *bp);
+
+extern zio_t *zio_claim(zio_t *pio, spa_t *spa, uint64_t txg,
+    const blkptr_t *bp,
+    zio_done_func_t *done, void *private, enum zio_flag flags);
+
+extern zio_t *zio_ioctl(zio_t *pio, spa_t *spa, vdev_t *vd, int cmd,
+    zio_done_func_t *done, void *private, int priority, enum zio_flag flags);
+
+extern zio_t *zio_read_phys(zio_t *pio, vdev_t *vd, uint64_t offset,
+    uint64_t size, void *data, int checksum,
+    zio_done_func_t *done, void *private, int priority, enum zio_flag flags,
+    boolean_t labels);
+
+extern zio_t *zio_write_phys(zio_t *pio, vdev_t *vd, uint64_t offset,
+    uint64_t size, void *data, int checksum,
+    zio_done_func_t *done, void *private, int priority, enum zio_flag flags,
+    boolean_t labels);
+
+extern zio_t *zio_free_sync(zio_t *pio, spa_t *spa, uint64_t txg,
+    const blkptr_t *bp, enum zio_flag flags);
+
+extern int zio_alloc_zil(spa_t *spa, uint64_t txg, blkptr_t *new_bp,
+    blkptr_t *old_bp, uint64_t size, boolean_t use_slog);
+extern void zio_free_zil(spa_t *spa, uint64_t txg, blkptr_t *bp);
+extern void zio_flush(zio_t *zio, vdev_t *vd);
+extern void zio_shrink(zio_t *zio, uint64_t size);
+
+extern int zio_wait(zio_t *zio);
+extern void zio_nowait(zio_t *zio);
+extern void zio_execute(zio_t *zio);
+extern void zio_interrupt(zio_t *zio);
+
+extern zio_t *zio_walk_parents(zio_t *cio);
+extern zio_t *zio_walk_children(zio_t *pio);
+extern zio_t *zio_unique_parent(zio_t *cio);
+extern void zio_add_child(zio_t *pio, zio_t *cio);
+
+extern void *zio_buf_alloc(size_t size);
+extern void zio_buf_free(void *buf, size_t size);
+extern void *zio_data_buf_alloc(size_t size);
+extern void zio_data_buf_free(void *buf, size_t size);
+
+extern void zio_resubmit_stage_async(void *);
+
+extern zio_t *zio_vdev_child_io(zio_t *zio, blkptr_t *bp, vdev_t *vd,
+    uint64_t offset, void *data, uint64_t size, int type, int priority,
+    enum zio_flag flags, zio_done_func_t *done, void *private);
+
+extern zio_t *zio_vdev_delegated_io(vdev_t *vd, uint64_t offset,
+    void *data, uint64_t size, int type, int priority,
+    enum zio_flag flags, zio_done_func_t *done, void *private);
+
+extern void zio_vdev_io_bypass(zio_t *zio);
+extern void zio_vdev_io_reissue(zio_t *zio);
+extern void zio_vdev_io_redone(zio_t *zio);
+
+extern void zio_checksum_verified(zio_t *zio);
+extern int zio_worst_error(int e1, int e2);
+
+extern enum zio_checksum zio_checksum_select(enum zio_checksum child,
+    enum zio_checksum parent);
+extern enum zio_checksum zio_checksum_dedup_select(spa_t *spa,
+    enum zio_checksum child, enum zio_checksum parent);
+extern enum zio_compress zio_compress_select(enum zio_compress child,
+    enum zio_compress parent);
+
+extern void zio_suspend(spa_t *spa, zio_t *zio);
+extern int zio_resume(spa_t *spa);
+extern void zio_resume_wait(spa_t *spa);
+
+/*
+ * Initial setup and teardown.
+ */
+extern void zio_init(void);
+extern void zio_fini(void);
+
+/*
+ * Fault injection
+ */
+struct zinject_record;
+extern uint32_t zio_injection_enabled;
+extern int zio_inject_fault(char *name, int flags, int *id,
+    struct zinject_record *record);
+extern int zio_inject_list_next(int *id, char *name, size_t buflen,
+    struct zinject_record *record);
+extern int zio_clear_fault(int id);
+extern void zio_handle_panic_injection(spa_t *spa, char *tag, uint64_t type);
+extern int zio_handle_fault_injection(zio_t *zio, int error);
+extern int zio_handle_device_injection(vdev_t *vd, zio_t *zio, int error);
+extern int zio_handle_label_injection(zio_t *zio, int error);
+extern void zio_handle_ignored_writes(zio_t *zio);
+
+/*
+ * Checksum ereport functions
+ */
+extern void zfs_ereport_start_checksum(spa_t *spa, vdev_t *vd, struct zio *zio,
+    uint64_t offset, uint64_t length, void *arg, struct zio_bad_cksum *info);
+extern void zfs_ereport_finish_checksum(zio_cksum_report_t *report,
+    const void *good_data, const void *bad_data, boolean_t drop_if_identical);
+
+extern void zfs_ereport_send_interim_checksum(zio_cksum_report_t *report);
+extern void zfs_ereport_free_checksum(zio_cksum_report_t *report);
+
+/* If we have the good data in hand, this function can be used */
+extern void zfs_ereport_post_checksum(spa_t *spa, vdev_t *vd,
+    struct zio *zio, uint64_t offset, uint64_t length,
+    const void *good_data, const void *bad_data, struct zio_bad_cksum *info);
+
+/* Called from spa_sync(), but primarily an injection handler */
+extern void spa_handle_ignored_writes(spa_t *spa);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ZIO_H */
diff --git a/include/sys/zio_checksum.h b/include/sys/zio_checksum.h
new file mode 100644 (file)
index 0000000..0956c04
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _SYS_ZIO_CHECKSUM_H
+#define        _SYS_ZIO_CHECKSUM_H
+
+#include <sys/zio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Signature for checksum functions.
+ */
+typedef void zio_checksum_t(const void *data, uint64_t size, zio_cksum_t *zcp);
+
+/*
+ * Information about each checksum function.
+ */
+typedef struct zio_checksum_info {
+       zio_checksum_t  *ci_func[2]; /* checksum function for each byteorder */
+       int             ci_correctable; /* number of correctable bits   */
+       int             ci_eck;         /* uses zio embedded checksum? */
+       int             ci_dedup;       /* strong enough for dedup? */
+       char            *ci_name;       /* descriptive name */
+} zio_checksum_info_t;
+
+typedef struct zio_bad_cksum {
+       zio_cksum_t             zbc_expected;
+       zio_cksum_t             zbc_actual;
+       const char              *zbc_checksum_name;
+       uint8_t                 zbc_byteswapped;
+       uint8_t                 zbc_injected;
+       uint8_t                 zbc_has_cksum;  /* expected/actual valid */
+} zio_bad_cksum_t;
+
+extern zio_checksum_info_t zio_checksum_table[ZIO_CHECKSUM_FUNCTIONS];
+
+/*
+ * Checksum routines.
+ */
+extern zio_checksum_t zio_checksum_SHA256;
+
+extern void zio_checksum_compute(zio_t *zio, enum zio_checksum checksum,
+    void *data, uint64_t size);
+extern int zio_checksum_error(zio_t *zio, zio_bad_cksum_t *out);
+extern enum zio_checksum spa_dedup_checksum(spa_t *spa);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZIO_CHECKSUM_H */
diff --git a/include/sys/zio_compress.h b/include/sys/zio_compress.h
new file mode 100644 (file)
index 0000000..30bed1a
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _SYS_ZIO_COMPRESS_H
+#define        _SYS_ZIO_COMPRESS_H
+
+#include <sys/zio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Common signature for all zio compress/decompress functions.
+ */
+typedef size_t zio_compress_func_t(void *src, void *dst,
+    size_t s_len, size_t d_len, int);
+typedef int zio_decompress_func_t(void *src, void *dst,
+    size_t s_len, size_t d_len, int);
+
+/*
+ * Information about each compression function.
+ */
+typedef struct zio_compress_info {
+       zio_compress_func_t     *ci_compress;   /* compression function */
+       zio_decompress_func_t   *ci_decompress; /* decompression function */
+       int                     ci_level;       /* level parameter */
+       char                    *ci_name;       /* algorithm name */
+} zio_compress_info_t;
+
+extern zio_compress_info_t zio_compress_table[ZIO_COMPRESS_FUNCTIONS];
+
+/*
+ * Compression routines.
+ */
+extern size_t lzjb_compress(void *src, void *dst, size_t s_len, size_t d_len,
+    int level);
+extern int lzjb_decompress(void *src, void *dst, size_t s_len, size_t d_len,
+    int level);
+extern size_t gzip_compress(void *src, void *dst, size_t s_len, size_t d_len,
+    int level);
+extern int gzip_decompress(void *src, void *dst, size_t s_len, size_t d_len,
+    int level);
+extern size_t zle_compress(void *src, void *dst, size_t s_len, size_t d_len,
+    int level);
+extern int zle_decompress(void *src, void *dst, size_t s_len, size_t d_len,
+    int level);
+
+/*
+ * Compress and decompress data if necessary.
+ */
+extern size_t zio_compress_data(enum zio_compress c, void *src, void *dst,
+    size_t s_len);
+extern int zio_decompress_data(enum zio_compress c, void *src, void *dst,
+    size_t s_len, size_t d_len);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZIO_COMPRESS_H */
diff --git a/include/sys/zio_impl.h b/include/sys/zio_impl.h
new file mode 100644 (file)
index 0000000..d90bd8b
--- /dev/null
@@ -0,0 +1,175 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _ZIO_IMPL_H
+#define        _ZIO_IMPL_H
+
+#include <sys/zfs_context.h>
+#include <sys/zio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * zio pipeline stage definitions
+ */
+enum zio_stage {
+       ZIO_STAGE_OPEN                  = 1 << 0,       /* RWFCI */
+
+       ZIO_STAGE_READ_BP_INIT          = 1 << 1,       /* R---- */
+       ZIO_STAGE_FREE_BP_INIT          = 1 << 2,       /* --F-- */
+       ZIO_STAGE_ISSUE_ASYNC           = 1 << 3,       /* RWF-- */
+       ZIO_STAGE_WRITE_BP_INIT         = 1 << 4,       /* -W--- */
+
+       ZIO_STAGE_CHECKSUM_GENERATE     = 1 << 5,       /* -W--- */
+
+       ZIO_STAGE_DDT_READ_START        = 1 << 6,       /* R---- */
+       ZIO_STAGE_DDT_READ_DONE         = 1 << 7,       /* R---- */
+       ZIO_STAGE_DDT_WRITE             = 1 << 8,       /* -W--- */
+       ZIO_STAGE_DDT_FREE              = 1 << 9,       /* --F-- */
+
+       ZIO_STAGE_GANG_ASSEMBLE         = 1 << 10,      /* RWFC- */
+       ZIO_STAGE_GANG_ISSUE            = 1 << 11,      /* RWFC- */
+
+       ZIO_STAGE_DVA_ALLOCATE          = 1 << 12,      /* -W--- */
+       ZIO_STAGE_DVA_FREE              = 1 << 13,      /* --F-- */
+       ZIO_STAGE_DVA_CLAIM             = 1 << 14,      /* ---C- */
+
+       ZIO_STAGE_READY                 = 1 << 15,      /* RWFCI */
+
+       ZIO_STAGE_VDEV_IO_START         = 1 << 16,      /* RW--I */
+       ZIO_STAGE_VDEV_IO_DONE          = 1 << 17,      /* RW--I */
+       ZIO_STAGE_VDEV_IO_ASSESS        = 1 << 18,      /* RW--I */
+
+       ZIO_STAGE_CHECKSUM_VERIFY       = 1 << 19,      /* R---- */
+
+       ZIO_STAGE_DONE                  = 1 << 20       /* RWFCI */
+};
+
+#define        ZIO_INTERLOCK_STAGES                    \
+       (ZIO_STAGE_READY |                      \
+       ZIO_STAGE_DONE)
+
+#define        ZIO_INTERLOCK_PIPELINE                  \
+       ZIO_INTERLOCK_STAGES
+
+#define        ZIO_VDEV_IO_STAGES                      \
+       (ZIO_STAGE_VDEV_IO_START |              \
+       ZIO_STAGE_VDEV_IO_DONE |                \
+       ZIO_STAGE_VDEV_IO_ASSESS)
+
+#define        ZIO_VDEV_CHILD_PIPELINE                 \
+       (ZIO_VDEV_IO_STAGES |                   \
+       ZIO_STAGE_DONE)
+
+#define        ZIO_READ_COMMON_STAGES                  \
+       (ZIO_INTERLOCK_STAGES |                 \
+       ZIO_VDEV_IO_STAGES |                    \
+       ZIO_STAGE_CHECKSUM_VERIFY)
+
+#define        ZIO_READ_PHYS_PIPELINE                  \
+       ZIO_READ_COMMON_STAGES
+
+#define        ZIO_READ_PIPELINE                       \
+       (ZIO_READ_COMMON_STAGES |               \
+       ZIO_STAGE_READ_BP_INIT)
+
+#define        ZIO_DDT_CHILD_READ_PIPELINE             \
+       ZIO_READ_COMMON_STAGES
+
+#define        ZIO_DDT_READ_PIPELINE                   \
+       (ZIO_INTERLOCK_STAGES |                 \
+       ZIO_STAGE_READ_BP_INIT |                \
+       ZIO_STAGE_DDT_READ_START |              \
+       ZIO_STAGE_DDT_READ_DONE)
+
+#define        ZIO_WRITE_COMMON_STAGES                 \
+       (ZIO_INTERLOCK_STAGES |                 \
+       ZIO_VDEV_IO_STAGES |                    \
+       ZIO_STAGE_ISSUE_ASYNC |                 \
+       ZIO_STAGE_CHECKSUM_GENERATE)
+
+#define        ZIO_WRITE_PHYS_PIPELINE                 \
+       ZIO_WRITE_COMMON_STAGES
+
+#define        ZIO_REWRITE_PIPELINE                    \
+       (ZIO_WRITE_COMMON_STAGES |              \
+       ZIO_STAGE_WRITE_BP_INIT)
+
+#define        ZIO_WRITE_PIPELINE                      \
+       (ZIO_WRITE_COMMON_STAGES |              \
+       ZIO_STAGE_WRITE_BP_INIT |               \
+       ZIO_STAGE_DVA_ALLOCATE)
+
+#define        ZIO_DDT_CHILD_WRITE_PIPELINE            \
+       (ZIO_INTERLOCK_STAGES |                 \
+       ZIO_VDEV_IO_STAGES |                    \
+       ZIO_STAGE_DVA_ALLOCATE)
+
+#define        ZIO_DDT_WRITE_PIPELINE                  \
+       (ZIO_INTERLOCK_STAGES |                 \
+       ZIO_STAGE_ISSUE_ASYNC |                 \
+       ZIO_STAGE_WRITE_BP_INIT |               \
+       ZIO_STAGE_CHECKSUM_GENERATE |           \
+       ZIO_STAGE_DDT_WRITE)
+
+#define        ZIO_GANG_STAGES                         \
+       (ZIO_STAGE_GANG_ASSEMBLE |              \
+       ZIO_STAGE_GANG_ISSUE)
+
+#define        ZIO_FREE_PIPELINE                       \
+       (ZIO_INTERLOCK_STAGES |                 \
+       ZIO_STAGE_FREE_BP_INIT |                \
+       ZIO_STAGE_DVA_FREE)
+
+#define        ZIO_DDT_FREE_PIPELINE                   \
+       (ZIO_INTERLOCK_STAGES |                 \
+       ZIO_STAGE_FREE_BP_INIT |                \
+       ZIO_STAGE_ISSUE_ASYNC |                 \
+       ZIO_STAGE_DDT_FREE)
+
+#define        ZIO_CLAIM_PIPELINE                      \
+       (ZIO_INTERLOCK_STAGES |                 \
+       ZIO_STAGE_DVA_CLAIM)
+
+#define        ZIO_IOCTL_PIPELINE                      \
+       (ZIO_INTERLOCK_STAGES |                 \
+       ZIO_STAGE_VDEV_IO_START |               \
+       ZIO_STAGE_VDEV_IO_ASSESS)
+
+#define        ZIO_BLOCKING_STAGES                     \
+       (ZIO_STAGE_DVA_ALLOCATE |               \
+       ZIO_STAGE_DVA_CLAIM |                   \
+       ZIO_STAGE_VDEV_IO_START)
+
+extern void zio_inject_init(void);
+extern void zio_inject_fini(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ZIO_IMPL_H */
diff --git a/include/sys/zrlock.h b/include/sys/zrlock.h
new file mode 100644 (file)
index 0000000..dcd63f7
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_ZRLOCK_H
+#define        _SYS_ZRLOCK_H
+
+#include <sys/zfs_context.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct zrlock {
+       kmutex_t zr_mtx;
+       volatile int32_t zr_refcount;
+       kcondvar_t zr_cv;
+       uint16_t zr_pad;
+#ifdef ZFS_DEBUG
+       kthread_t *zr_owner;
+       const char *zr_caller;
+#endif
+} zrlock_t;
+
+extern void zrl_init(zrlock_t *);
+extern void zrl_destroy(zrlock_t *);
+#ifdef ZFS_DEBUG
+#define        zrl_add(_z)     zrl_add_debug((_z), __func__)
+extern void zrl_add_debug(zrlock_t *, const char *);
+#else
+extern void zrl_add(zrlock_t *);
+#endif
+extern void zrl_remove(zrlock_t *);
+extern int zrl_tryenter(zrlock_t *);
+extern void zrl_exit(zrlock_t *);
+extern int zrl_is_zero(zrlock_t *);
+extern int zrl_is_locked(zrlock_t *);
+#ifdef ZFS_DEBUG
+extern kthread_t *zrl_owner(zrlock_t *);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_ZRLOCK_H */
diff --git a/include/sys/zvol.h b/include/sys/zvol.h
new file mode 100644 (file)
index 0000000..c8b9d65
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _SYS_ZVOL_H
+#define        _SYS_ZVOL_H
+
+#include <sys/zfs_context.h>
+
+#define        ZVOL_OBJ                1ULL
+#define        ZVOL_ZAP_OBJ            2ULL
+
+#ifdef _KERNEL
+
+#include <sys/blkdev.h>
+
+extern int zvol_check_volsize(uint64_t volsize, uint64_t blocksize);
+extern int zvol_check_volblocksize(uint64_t volblocksize);
+extern int zvol_get_stats(objset_t *os, nvlist_t *nv);
+extern void zvol_create_cb(objset_t *os, void *arg, cred_t *cr, dmu_tx_t *tx);
+extern int zvol_create_minor(const char *);
+extern int zvol_create_minors(const char *);
+extern int zvol_remove_minor(const char *);
+extern void zvol_remove_minors(const char *);
+extern int zvol_set_volsize(const char *, uint64_t);
+extern int zvol_set_volblocksize(const char *, uint64_t);
+
+extern int zvol_init(void);
+extern void zvol_fini(void);
+
+#endif /* _KERNEL */
+#endif /* _SYS_ZVOL_H */
diff --git a/include/zfs_comutil.h b/include/zfs_comutil.h
new file mode 100644 (file)
index 0000000..61327f9
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _ZFS_COMUTIL_H
+#define        _ZFS_COMUTIL_H
+
+#include <sys/fs/zfs.h>
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern boolean_t zfs_allocatable_devs(nvlist_t *);
+extern void zpool_get_rewind_policy(nvlist_t *, zpool_rewind_policy_t *);
+
+extern int zfs_zpl_version_map(int spa_version);
+extern int zfs_spa_version_map(int zpl_version);
+extern const char *zfs_history_event_names[LOG_END];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ZFS_COMUTIL_H */
diff --git a/include/zfs_deleg.h b/include/zfs_deleg.h
new file mode 100644 (file)
index 0000000..b4cb8e2
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef        _ZFS_DELEG_H
+#define        _ZFS_DELEG_H
+
+#include <sys/fs/zfs.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define        ZFS_DELEG_SET_NAME_CHR          '@'             /* set name lead char */
+#define        ZFS_DELEG_FIELD_SEP_CHR         '$'             /* field separator */
+
+/*
+ * Max name length for a delegation attribute
+ */
+#define        ZFS_MAX_DELEG_NAME      128
+
+#define        ZFS_DELEG_LOCAL         'l'
+#define        ZFS_DELEG_DESCENDENT    'd'
+#define        ZFS_DELEG_NA            '-'
+
+typedef enum {
+       ZFS_DELEG_NOTE_CREATE,
+       ZFS_DELEG_NOTE_DESTROY,
+       ZFS_DELEG_NOTE_SNAPSHOT,
+       ZFS_DELEG_NOTE_ROLLBACK,
+       ZFS_DELEG_NOTE_CLONE,
+       ZFS_DELEG_NOTE_PROMOTE,
+       ZFS_DELEG_NOTE_RENAME,
+       ZFS_DELEG_NOTE_RECEIVE,
+       ZFS_DELEG_NOTE_ALLOW,
+       ZFS_DELEG_NOTE_USERPROP,
+       ZFS_DELEG_NOTE_MOUNT,
+       ZFS_DELEG_NOTE_SHARE,
+       ZFS_DELEG_NOTE_USERQUOTA,
+       ZFS_DELEG_NOTE_GROUPQUOTA,
+       ZFS_DELEG_NOTE_USERUSED,
+       ZFS_DELEG_NOTE_GROUPUSED,
+       ZFS_DELEG_NOTE_HOLD,
+       ZFS_DELEG_NOTE_RELEASE,
+       ZFS_DELEG_NOTE_DIFF,
+       ZFS_DELEG_NOTE_NONE
+} zfs_deleg_note_t;
+
+typedef struct zfs_deleg_perm_tab {
+       char *z_perm;
+       zfs_deleg_note_t z_note;
+} zfs_deleg_perm_tab_t;
+
+extern zfs_deleg_perm_tab_t zfs_deleg_perm_tab[];
+
+int zfs_deleg_verify_nvlist(nvlist_t *nvlist);
+void zfs_deleg_whokey(char *attr, zfs_deleg_who_type_t type,
+    char checkflag, void *data);
+const char *zfs_deleg_canonicalize_perm(const char *perm);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ZFS_DELEG_H */
diff --git a/include/zfs_fletcher.h b/include/zfs_fletcher.h
new file mode 100644 (file)
index 0000000..b49df0c
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _ZFS_FLETCHER_H
+#define        _ZFS_FLETCHER_H
+
+#include <sys/types.h>
+#include <sys/spa.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * fletcher checksum functions
+ */
+
+void fletcher_2_native(const void *, uint64_t, zio_cksum_t *);
+void fletcher_2_byteswap(const void *, uint64_t, zio_cksum_t *);
+void fletcher_4_native(const void *, uint64_t, zio_cksum_t *);
+void fletcher_4_byteswap(const void *, uint64_t, zio_cksum_t *);
+void fletcher_4_incremental_native(const void *, uint64_t,
+    zio_cksum_t *);
+void fletcher_4_incremental_byteswap(const void *, uint64_t,
+    zio_cksum_t *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ZFS_FLETCHER_H */
diff --git a/include/zfs_namecheck.h b/include/zfs_namecheck.h
new file mode 100644 (file)
index 0000000..7711da0
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _ZFS_NAMECHECK_H
+#define        _ZFS_NAMECHECK_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+       NAME_ERR_LEADING_SLASH,         /* name begins with leading slash */
+       NAME_ERR_EMPTY_COMPONENT,       /* name contains an empty component */
+       NAME_ERR_TRAILING_SLASH,        /* name ends with a slash */
+       NAME_ERR_INVALCHAR,             /* invalid character found */
+       NAME_ERR_MULTIPLE_AT,           /* multiple '@' characters found */
+       NAME_ERR_NOLETTER,              /* pool doesn't begin with a letter */
+       NAME_ERR_RESERVED,              /* entire name is reserved */
+       NAME_ERR_DISKLIKE,              /* reserved disk name (c[0-9].*) */
+       NAME_ERR_TOOLONG,               /* name is too long */
+       NAME_ERR_NO_AT,                 /* permission set is missing '@' */
+} namecheck_err_t;
+
+#define        ZFS_PERMSET_MAXLEN      64
+
+int pool_namecheck(const char *, namecheck_err_t *, char *);
+int dataset_namecheck(const char *, namecheck_err_t *, char *);
+int mountpoint_namecheck(const char *, namecheck_err_t *);
+int snapshot_namecheck(const char *, namecheck_err_t *, char *);
+int permset_namecheck(const char *, namecheck_err_t *, char *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ZFS_NAMECHECK_H */
diff --git a/include/zfs_prop.h b/include/zfs_prop.h
new file mode 100644 (file)
index 0000000..a632623
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef        _ZFS_PROP_H
+#define        _ZFS_PROP_H
+
+#include <sys/fs/zfs.h>
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * For index types (e.g. compression and checksum), we want the numeric value
+ * in the kernel, but the string value in userland.
+ */
+typedef enum {
+       PROP_TYPE_NUMBER,       /* numeric value */
+       PROP_TYPE_STRING,       /* string value */
+       PROP_TYPE_INDEX         /* numeric value indexed by string */
+} zprop_type_t;
+
+typedef enum {
+       PROP_DEFAULT,
+       PROP_READONLY,
+       PROP_INHERIT,
+       /*
+        * ONETIME properties are a sort of conglomeration of READONLY
+        * and INHERIT.  They can be set only during object creation,
+        * after that they are READONLY.  If not explicitly set during
+        * creation, they can be inherited.
+        */
+       PROP_ONETIME
+} zprop_attr_t;
+
+typedef struct zfs_index {
+       const char *pi_name;
+       uint64_t pi_value;
+} zprop_index_t;
+
+typedef struct {
+       const char *pd_name;            /* human-readable property name */
+       int pd_propnum;                 /* property number */
+       zprop_type_t pd_proptype;       /* string, boolean, index, number */
+       const char *pd_strdefault;      /* default for strings */
+       uint64_t pd_numdefault;         /* for boolean / index / number */
+       zprop_attr_t pd_attr;           /* default, readonly, inherit */
+       int pd_types;                   /* bitfield of valid dataset types */
+                                       /* fs | vol | snap; or pool */
+       const char *pd_values;          /* string telling acceptable values */
+       const char *pd_colname;         /* column header for "zfs list" */
+       boolean_t pd_rightalign;        /* column alignment for "zfs list" */
+       boolean_t pd_visible;           /* do we list this property with the */
+                                       /* "zfs get" help message */
+       const zprop_index_t *pd_table;  /* for index properties, a table */
+                                       /* defining the possible values */
+       size_t pd_table_size;           /* number of entries in pd_table[] */
+} zprop_desc_t;
+
+/*
+ * zfs dataset property functions
+ */
+void zfs_prop_init(void);
+zprop_type_t zfs_prop_get_type(zfs_prop_t);
+boolean_t zfs_prop_delegatable(zfs_prop_t prop);
+zprop_desc_t *zfs_prop_get_table(void);
+
+/*
+ * zpool property functions
+ */
+void zpool_prop_init(void);
+zprop_type_t zpool_prop_get_type(zpool_prop_t);
+zprop_desc_t *zpool_prop_get_table(void);
+
+/*
+ * Common routines to initialize property tables
+ */
+void zprop_register_impl(int, const char *, zprop_type_t, uint64_t,
+    const char *, zprop_attr_t, int, const char *, const char *,
+    boolean_t, boolean_t, const zprop_index_t *);
+void zprop_register_string(int, const char *, const char *,
+    zprop_attr_t attr, int, const char *, const char *);
+void zprop_register_number(int, const char *, uint64_t, zprop_attr_t, int,
+    const char *, const char *);
+void zprop_register_index(int, const char *, uint64_t, zprop_attr_t, int,
+    const char *, const char *, const zprop_index_t *);
+void zprop_register_hidden(int, const char *, zprop_type_t, zprop_attr_t,
+    int, const char *);
+
+/*
+ * Common routines for zfs and zpool property management
+ */
+int zprop_iter_common(zprop_func, void *, boolean_t, boolean_t, zfs_type_t);
+int zprop_name_to_prop(const char *, zfs_type_t);
+int zprop_string_to_index(int, const char *, uint64_t *, zfs_type_t);
+int zprop_index_to_string(int, uint64_t, const char **, zfs_type_t);
+uint64_t zprop_random_value(int, uint64_t, zfs_type_t);
+const char *zprop_values(int, zfs_type_t);
+size_t zprop_width(int, boolean_t *, zfs_type_t);
+boolean_t zprop_valid_for_type(int, zfs_type_t);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ZFS_PROP_H */
diff --git a/include/zpios-ctl.h b/include/zpios-ctl.h
new file mode 100644 (file)
index 0000000..234e96c
--- /dev/null
@@ -0,0 +1,198 @@
+/*****************************************************************************\
+ *  ZPIOS is a heavily modified version of the original PIOS test code.
+ *  It is designed to have the test code running in the Linux kernel
+ *  against ZFS while still being flexibly controled from user space.
+ *
+ *  Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
+ *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+ *  Written by Brian Behlendorf <behlendorf1@llnl.gov>.
+ *  LLNL-CODE-403049
+ *
+ *  Original PIOS Test Code
+ *  Copyright (C) 2004 Cluster File Systems, Inc.
+ *  Written by Peter Braam <braam@clusterfs.com>
+ *             Atul Vidwansa <atul@clusterfs.com>
+ *             Milind Dumbare <milind@clusterfs.com>
+ *
+ *  This file is part of ZFS on Linux.
+ *  For details, see <http://github.com/behlendorf/zfs/>.
+ *
+ *  ZPIOS is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ *
+ *  ZPIOS is distributed in the hope that it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with ZPIOS.  If not, see <http://www.gnu.org/licenses/>.
+\*****************************************************************************/
+
+#ifndef _ZPIOS_CTL_H
+#define _ZPIOS_CTL_H
+
+/* Contains shared definitions which both the userspace
+ * and kernelspace portions of zpios must agree on.
+ */
+#ifndef _KERNEL
+#include <stdint.h>
+#endif
+
+#define ZPIOS_MAJOR                    232 /* XXX - Arbitrary */
+#define ZPIOS_MINORS                   1
+#define ZPIOS_NAME                     "zpios"
+#define ZPIOS_DEV                      "/dev/zpios"
+
+#define DMU_IO                         0x01
+
+#define DMU_WRITE                      0x0001
+#define DMU_READ                       0x0002
+#define DMU_VERIFY                     0x0004
+#define DMU_REMOVE                     0x0008
+#define DMU_FPP                                0x0010
+#define DMU_WRITE_ZC                   0x0020 /* Incompatible w/DMU_VERIFY */
+#define DMU_READ_ZC                    0x0040 /* Incompatible w/DMU_VERIFY */
+#define DMU_WRITE_NOWAIT               0x0080
+#define DMU_READ_NOPF                  0x0100
+
+#define ZPIOS_NAME_SIZE                        16
+#define ZPIOS_PATH_SIZE                        128
+
+#define PHASE_PRE_RUN                  "pre-run"
+#define PHASE_PRE_CREATE               "pre-create"
+#define PHASE_PRE_WRITE                        "pre-write"
+#define PHASE_PRE_READ                 "pre-read"
+#define PHASE_PRE_REMOVE               "pre-remove"
+#define PHASE_POST_RUN                 "post-run"
+#define PHASE_POST_CREATE              "post-create"
+#define PHASE_POST_WRITE               "post-write"
+#define PHASE_POST_READ                        "post-read"
+#define PHASE_POST_REMOVE              "post-remove"
+
+#define        ZPIOS_CFG_MAGIC                 0x87237190U
+typedef struct zpios_cfg {
+       uint32_t cfg_magic;             /* Unique magic */
+       int32_t cfg_cmd;                /* Config command */
+       int32_t cfg_arg1;               /* Config command arg 1 */
+       int32_t cfg_rc1;                /* Config response 1 */
+} zpios_cfg_t;
+
+typedef struct zpios_timespec {
+       uint32_t ts_sec;
+       uint32_t ts_nsec;
+} zpios_timespec_t;
+
+typedef struct zpios_time {
+       zpios_timespec_t start;
+       zpios_timespec_t stop;
+       zpios_timespec_t delta;
+} zpios_time_t;
+
+typedef struct zpios_stats {
+       zpios_time_t total_time;
+       zpios_time_t cr_time;
+       zpios_time_t rm_time;
+       zpios_time_t wr_time;
+       zpios_time_t rd_time;
+       uint64_t wr_data;
+       uint64_t wr_chunks;
+       uint64_t rd_data;
+       uint64_t rd_chunks;
+} zpios_stats_t;
+
+#define        ZPIOS_CMD_MAGIC                 0x49715385U
+typedef struct zpios_cmd {
+       uint32_t cmd_magic;             /* Unique magic */
+       uint32_t cmd_id;                /* Run ID */
+       char cmd_pool[ZPIOS_NAME_SIZE]; /* Pool name */
+       uint64_t cmd_chunk_size;        /* Chunk size */
+       uint32_t cmd_thread_count;      /* Thread count */
+       uint32_t cmd_region_count;      /* Region count */
+       uint64_t cmd_region_size;       /* Region size */
+       uint64_t cmd_offset;            /* Region offset */
+       uint32_t cmd_region_noise;      /* Region noise */
+       uint32_t cmd_chunk_noise;       /* Chunk noise */
+       uint32_t cmd_thread_delay;      /* Thread delay */
+       uint32_t cmd_flags;             /* Test flags */
+        char cmd_pre[ZPIOS_PATH_SIZE]; /* Pre-exec hook */
+        char cmd_post[ZPIOS_PATH_SIZE];        /* Post-exec hook */
+       char cmd_log[ZPIOS_PATH_SIZE];  /* Requested log dir */
+       uint64_t cmd_data_size;         /* Opaque data size */
+       char cmd_data_str[0];           /* Opaque data region */
+} zpios_cmd_t;
+
+/* Valid ioctls */
+#define ZPIOS_CFG                      _IOWR('f', 101, zpios_cfg_t)
+#define ZPIOS_CMD                      _IOWR('f', 102, zpios_cmd_t)
+
+/* Valid configuration commands */
+#define ZPIOS_CFG_BUFFER_CLEAR         0x001   /* Clear text buffer */
+#define ZPIOS_CFG_BUFFER_SIZE          0x002   /* Resize text buffer */
+
+#ifndef NSEC_PER_SEC
+#define NSEC_PER_SEC    1000000000L
+#endif
+
+static inline
+void zpios_timespec_normalize(zpios_timespec_t *ts, uint32_t sec, uint32_t nsec)
+{
+       while (nsec >= NSEC_PER_SEC) {
+               nsec -= NSEC_PER_SEC;
+               sec++;
+       }
+       while (nsec < 0) {
+               nsec += NSEC_PER_SEC;
+               sec--;
+       }
+       ts->ts_sec = sec;
+       ts->ts_nsec = nsec;
+}
+
+static inline
+zpios_timespec_t zpios_timespec_add(zpios_timespec_t lhs, zpios_timespec_t rhs)
+{
+       zpios_timespec_t ts_delta;
+       zpios_timespec_normalize(&ts_delta, lhs.ts_sec + rhs.ts_sec,
+                                lhs.ts_nsec + rhs.ts_nsec);
+        return ts_delta;
+}
+
+static inline
+zpios_timespec_t zpios_timespec_sub(zpios_timespec_t lhs, zpios_timespec_t rhs)
+{
+       zpios_timespec_t ts_delta;
+       zpios_timespec_normalize(&ts_delta, lhs.ts_sec - rhs.ts_sec,
+                                lhs.ts_nsec - rhs.ts_nsec);
+       return ts_delta;
+}
+
+#ifdef _KERNEL
+
+static inline
+zpios_timespec_t zpios_timespec_now(void)
+{
+       zpios_timespec_t zts_now;
+       struct timespec ts_now;
+
+       ts_now = current_kernel_time();
+       zts_now.ts_sec  = ts_now.tv_sec;
+       zts_now.ts_nsec = ts_now.tv_nsec;
+
+       return zts_now;
+}
+
+#else
+
+static inline
+double zpios_timespec_to_double(zpios_timespec_t ts)
+{
+       return ((double)(ts.ts_sec) +
+              ((double)(ts.ts_nsec) / (double)(NSEC_PER_SEC)));
+}
+
+#endif /* _KERNEL */
+
+#endif /* _ZPIOS_CTL_H */
diff --git a/include/zpios-internal.h b/include/zpios-internal.h
new file mode 100644 (file)
index 0000000..c9b6e00
--- /dev/null
@@ -0,0 +1,138 @@
+/*****************************************************************************\
+ *  ZPIOS is a heavily modified version of the original PIOS test code.
+ *  It is designed to have the test code running in the Linux kernel
+ *  against ZFS while still being flexibly controled from user space.
+ *
+ *  Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
+ *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+ *  Written by Brian Behlendorf <behlendorf1@llnl.gov>.
+ *  LLNL-CODE-403049
+ *
+ *  Original PIOS Test Code
+ *  Copyright (C) 2004 Cluster File Systems, Inc.
+ *  Written by Peter Braam <braam@clusterfs.com>
+ *             Atul Vidwansa <atul@clusterfs.com>
+ *             Milind Dumbare <milind@clusterfs.com>
+ *
+ *  This file is part of ZFS on Linux.
+ *  For details, see <http://github.com/behlendorf/zfs/>.
+ *
+ *  ZPIOS is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ *
+ *  ZPIOS is distributed in the hope that it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with ZPIOS.  If not, see <http://www.gnu.org/licenses/>.
+\*****************************************************************************/
+
+#ifndef _ZPIOS_INTERNAL_H
+#define _ZPIOS_INTERNAL_H
+
+#include "zpios-ctl.h"
+
+#define OBJ_SIZE       64
+
+struct run_args;
+
+typedef struct dmu_obj {
+       objset_t *os;
+       uint64_t obj;
+} dmu_obj_t;
+
+/* thread doing the IO data */
+typedef struct thread_data {
+       struct run_args *run_args;
+       int thread_no;
+       int rc;
+       zpios_stats_t stats;
+        kmutex_t lock;
+} thread_data_t;
+
+/* region for IO data */
+typedef struct zpios_region {
+       __u64 wr_offset;
+       __u64 rd_offset;
+       __u64 init_offset;
+       __u64 max_offset;
+       dmu_obj_t obj;
+       zpios_stats_t stats;
+        kmutex_t lock;
+} zpios_region_t;
+
+/* arguments for one run */
+typedef struct run_args {
+       /* Config args */
+       int id;
+       char pool[ZPIOS_NAME_SIZE];
+       __u64 chunk_size;
+       __u32 thread_count;
+       __u32 region_count;
+       __u64 region_size;
+       __u64 offset;
+       __u32 region_noise;
+       __u32 chunk_noise;
+       __u32 thread_delay;
+       __u32 flags;
+       char pre[ZPIOS_PATH_SIZE];
+       char post[ZPIOS_PATH_SIZE];
+       char log[ZPIOS_PATH_SIZE];
+
+       /* Control data */
+       objset_t *os;
+        wait_queue_head_t waitq;
+       volatile uint64_t threads_done;
+        kmutex_t lock_work;
+       kmutex_t lock_ctl;
+       __u32 region_next;
+
+       /* Results data */
+       struct file *file;
+       zpios_stats_t stats;
+
+       thread_data_t **threads;
+       zpios_region_t regions[0]; /* Must be last element */
+} run_args_t;
+
+#define ZPIOS_INFO_BUFFER_SIZE          65536
+#define ZPIOS_INFO_BUFFER_REDZONE       1024
+
+typedef struct zpios_info {
+        spinlock_t info_lock;
+        int info_size;
+        char *info_buffer;
+        char *info_head;        /* Internal kernel use only */
+} zpios_info_t;
+
+#define zpios_print(file, format, args...)                              \
+({      zpios_info_t *_info_ = (zpios_info_t *)file->private_data;      \
+        int _rc_;                                                       \
+                                                                        \
+        ASSERT(_info_);                                                 \
+        ASSERT(_info_->info_buffer);                                    \
+                                                                        \
+        spin_lock(&_info_->info_lock);                                  \
+                                                                        \
+        /* Don't allow the kernel to start a write in the red zone */   \
+        if ((int)(_info_->info_head - _info_->info_buffer) >            \
+            (_info_->info_size - ZPIOS_INFO_BUFFER_REDZONE))      {     \
+                _rc_ = -EOVERFLOW;                                      \
+        } else {                                                        \
+                _rc_ = sprintf(_info_->info_head, format, args);        \
+                if (_rc_ >= 0)                                          \
+                        _info_->info_head += _rc_;                      \
+        }                                                               \
+                                                                        \
+        spin_unlock(&_info_->info_lock);                                \
+        _rc_;                                                           \
+})
+
+#define zpios_vprint(file, test, format, args...)                       \
+        zpios_print(file, "%*s: " format, ZPIOS_NAME_SIZE, test, args)
+
+#endif /* _ZPIOS_INTERNAL_H */
index 45b45969997b50cf822325759fcb3fdf4b4de22a..dc4c9a680c2b5c256225d5cb079a68881a024459 100644 (file)
@@ -132,14 +132,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -177,7 +175,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -192,7 +189,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -211,7 +207,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -221,7 +216,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
index 50185e281f190bab6b6a8fa8f6780e8eda25914f..b06904fc61246644221412299cc79a046209ffbc 100644 (file)
@@ -3,12 +3,10 @@ include $(top_srcdir)/config/Rules.am
 AM_CFLAGS += $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/lib/libspl/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 lib_LTLIBRARIES = libavl.la
 
 libavl_la_SOURCES = \
-       ${top_srcdir}/module/avl/avl.c \
-       ${top_srcdir}/module/avl/include/sys/avl.h \
-       ${top_srcdir}/module/avl/include/sys/avl_impl.h
+       $(top_srcdir)/module/avl/avl.c
index c22691e136c2379da90d90dc49bc9e593df79d09..454be6a672acc40b782c48bb0235b79972ec14e8 100644 (file)
@@ -144,14 +144,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -189,7 +187,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -204,7 +201,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -223,7 +219,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -233,7 +228,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -304,9 +298,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/lib/libspl/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
@@ -315,9 +308,7 @@ AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 lib_LTLIBRARIES = libavl.la
 libavl_la_SOURCES = \
-       ${top_srcdir}/module/avl/avl.c \
-       ${top_srcdir}/module/avl/include/sys/avl.h \
-       ${top_srcdir}/module/avl/include/sys/avl_impl.h
+       $(top_srcdir)/module/avl/avl.c
 
 all: all-am
 
@@ -419,13 +410,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-avl.lo: ${top_srcdir}/module/avl/avl.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl.lo -MD -MP -MF $(DEPDIR)/avl.Tpo -c -o avl.lo `test -f '${top_srcdir}/module/avl/avl.c' || echo '$(srcdir)/'`${top_srcdir}/module/avl/avl.c
+avl.lo: $(top_srcdir)/module/avl/avl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT avl.lo -MD -MP -MF $(DEPDIR)/avl.Tpo -c -o avl.lo `test -f '$(top_srcdir)/module/avl/avl.c' || echo '$(srcdir)/'`$(top_srcdir)/module/avl/avl.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/avl.Tpo $(DEPDIR)/avl.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/avl/avl.c' object='avl.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/avl/avl.c' object='avl.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl.lo `test -f '${top_srcdir}/module/avl/avl.c' || echo '$(srcdir)/'`${top_srcdir}/module/avl/avl.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o avl.lo `test -f '$(top_srcdir)/module/avl/avl.c' || echo '$(srcdir)/'`$(top_srcdir)/module/avl/avl.c
 
 mostlyclean-libtool:
        -rm -f *.lo
index 431179340a7e7fac729ffc0550ae1e9a721100cf..57f1bd31ec195820dce7a02311fbb604664b0aff 100644 (file)
@@ -3,12 +3,10 @@ include $(top_srcdir)/config/Rules.am
 AM_CFLAGS += $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libspl/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 lib_LTLIBRARIES = libefi.la
 
 libefi_la_SOURCES = \
-       ${top_srcdir}/lib/libefi/rdwr_efi.c \
-       ${top_srcdir}/lib/libefi/include/sys/efi_partition.h \
-       ${top_srcdir}/lib/libefi/include/sys/uuid.h
+       $(top_srcdir)/lib/libefi/rdwr_efi.c
index 6fa193c8c7a886092829ed863542b31a283f53aa..debd06fd8f3bc48a7cb3bac96f720fae1c3a4443 100644 (file)
@@ -144,14 +144,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -189,7 +187,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -204,7 +201,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -223,7 +219,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -233,7 +228,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -304,9 +298,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/lib/libspl/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
@@ -315,9 +308,7 @@ AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 lib_LTLIBRARIES = libefi.la
 libefi_la_SOURCES = \
-       ${top_srcdir}/lib/libefi/rdwr_efi.c \
-       ${top_srcdir}/lib/libefi/include/sys/efi_partition.h \
-       ${top_srcdir}/lib/libefi/include/sys/uuid.h
+       $(top_srcdir)/lib/libefi/rdwr_efi.c
 
 all: all-am
 
@@ -419,13 +410,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-rdwr_efi.lo: ${top_srcdir}/lib/libefi/rdwr_efi.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rdwr_efi.lo -MD -MP -MF $(DEPDIR)/rdwr_efi.Tpo -c -o rdwr_efi.lo `test -f '${top_srcdir}/lib/libefi/rdwr_efi.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libefi/rdwr_efi.c
+rdwr_efi.lo: $(top_srcdir)/lib/libefi/rdwr_efi.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rdwr_efi.lo -MD -MP -MF $(DEPDIR)/rdwr_efi.Tpo -c -o rdwr_efi.lo `test -f '$(top_srcdir)/lib/libefi/rdwr_efi.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libefi/rdwr_efi.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/rdwr_efi.Tpo $(DEPDIR)/rdwr_efi.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libefi/rdwr_efi.c' object='rdwr_efi.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libefi/rdwr_efi.c' object='rdwr_efi.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rdwr_efi.lo `test -f '${top_srcdir}/lib/libefi/rdwr_efi.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libefi/rdwr_efi.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rdwr_efi.lo `test -f '$(top_srcdir)/lib/libefi/rdwr_efi.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libefi/rdwr_efi.c
 
 mostlyclean-libtool:
        -rm -f *.lo
diff --git a/lib/libefi/include/sys/efi_partition.h b/lib/libefi/include/sys/efi_partition.h
deleted file mode 100644 (file)
index ff38df5..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_EFI_PARTITION_H
-#define        _SYS_EFI_PARTITION_H
-
-#include <sys/uuid.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * GUID Partition Table Header
- */
-
-#define        EFI_LABEL_SIZE  512
-#define        LEN_EFI_PAD     (EFI_LABEL_SIZE - \
-                           ((5 * sizeof (diskaddr_t)) + \
-                           (7 * sizeof (uint_t)) + \
-                           (8 * sizeof (char)) + \
-                           (1 * (sizeof (struct uuid)))))
-
-#define        EFI_SIGNATURE   0x5452415020494645ULL
-
-/* EFI Guid Partition Table Header -- little endian on-disk format */
-typedef struct efi_gpt {
-       uint64_t        efi_gpt_Signature;
-       uint_t          efi_gpt_Revision;
-       uint_t          efi_gpt_HeaderSize;
-       uint_t          efi_gpt_HeaderCRC32;
-       uint_t          efi_gpt_Reserved1;
-       diskaddr_t      efi_gpt_MyLBA;
-       diskaddr_t      efi_gpt_AlternateLBA;
-       diskaddr_t      efi_gpt_FirstUsableLBA;
-       diskaddr_t      efi_gpt_LastUsableLBA;
-       struct uuid     efi_gpt_DiskGUID;
-       diskaddr_t      efi_gpt_PartitionEntryLBA;
-       uint_t          efi_gpt_NumberOfPartitionEntries;
-       uint_t          efi_gpt_SizeOfPartitionEntry;
-       uint_t          efi_gpt_PartitionEntryArrayCRC32;
-       char            efi_gpt_Reserved2[LEN_EFI_PAD];
-} efi_gpt_t;
-
-/* EFI Guid Partition Entry Attributes -- little endian format */
-typedef struct efi_gpe_Attrs {
-       uint32_t        PartitionAttrs          :16,
-                       Reserved2               :16;
-       uint32_t        Reserved1               :31,
-                       RequiredPartition       :1;
-} efi_gpe_Attrs_t;
-
-/*
- * 6a96237f-1dd2-11b2-99a6-080020736631        V_UNASSIGNED (not used as such)
- * 6a82cb45-1dd2-11b2-99a6-080020736631        V_BOOT
- * 6a85cf4d-1dd2-11b2-99a6-080020736631        V_ROOT
- * 6a87c46f-1dd2-11b2-99a6-080020736631        V_SWAP
- * 6a898cc3-1dd2-11b2-99a6-080020736631        V_USR
- * 6a8b642b-1dd2-11b2-99a6-080020736631        V_BACKUP
- * 6a8d2ac7-1dd2-11b2-99a6-080020736631        V_STAND (not used)
- * 6a8ef2e9-1dd2-11b2-99a6-080020736631        V_VAR
- * 6a90ba39-1dd2-11b2-99a6-080020736631        V_HOME
- * 6a9283a5-1dd2-11b2-99a6-080020736631        V_ALTSCTR
- * 6a945a3b-1dd2-11b2-99a6-080020736631        V_CACHE
- */
-
-#define        EFI_UNUSED      { 0x00000000, 0x0000, 0x0000, 0x00, 0x00, \
-                           { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }
-#define        EFI_RESV1       { 0x6a96237f, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_BOOT        { 0x6a82cb45, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_ROOT        { 0x6a85cf4d, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_SWAP        { 0x6a87c46f, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_USR         { 0x6a898cc3, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_BACKUP      { 0x6a8b642b, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_RESV2       { 0x6a8d2ac7, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_VAR         { 0x6a8ef2e9, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_HOME        { 0x6a90ba39, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_ALTSCTR     { 0x6a9283a5, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_RESERVED    { 0x6a945a3b, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_SYSTEM      { 0xC12A7328, 0xF81F, 0x11d2, 0xBA, 0x4B, \
-                           { 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B } }
-#define        EFI_LEGACY_MBR  { 0x024DEE41, 0x33E7, 0x11d3, 0x9D, 0x69, \
-                           { 0x00, 0x08, 0xC7, 0x81, 0xF3, 0x9F } }
-#define        EFI_SYMC_PUB    { 0x6a9630d1, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_SYMC_CDS    { 0x6a980767, 0x1dd2, 0x11b2, 0x99, 0xa6, \
-                           { 0x08, 0x00, 0x20, 0x73, 0x66, 0x31 } }
-#define        EFI_MSFT_RESV   { 0xE3C9E316, 0x0B5C, 0x4DB8, 0x81, 0x7D, \
-                           { 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE } }
-#define        EFI_DELL_BASIC  { 0xebd0a0a2, 0xb9e5, 0x4433, 0x87, 0xc0, \
-                           { 0x68, 0xb6, 0xb7, 0x26, 0x99, 0xc7 } }
-#define        EFI_DELL_RAID   { 0xa19d880f, 0x05fc, 0x4d3b, 0xa0, 0x06, \
-                           { 0x74, 0x3f, 0x0f, 0x84, 0x91, 0x1e } }
-#define        EFI_DELL_SWAP   { 0x0657fd6d, 0xa4ab, 0x43c4, 0x84, 0xe5, \
-                           { 0x09, 0x33, 0xc8, 0x4b, 0x4f, 0x4f } }
-#define        EFI_DELL_LVM    { 0xe6d6d379, 0xf507, 0x44c2, 0xa2, 0x3c, \
-                           { 0x23, 0x8f, 0x2a, 0x3d, 0xf9, 0x28 } }
-#define        EFI_DELL_RESV   { 0x8da63339, 0x0007, 0x60c0, 0xc4, 0x36, \
-                           { 0x08, 0x3a, 0xc8, 0x23, 0x09, 0x08 } }
-#define        EFI_AAPL_HFS    { 0x48465300, 0x0000, 0x11aa, 0xaa, 0x11, \
-                           { 0x00, 0x30, 0x65, 0x43, 0xec, 0xac } }
-#define        EFI_AAPL_UFS    { 0x55465300, 0x0000, 0x11aa, 0xaa, 0x11, \
-                           { 0x00, 0x30, 0x65, 0x43, 0xec, 0xac } }
-
-/* minimum # of bytes for partition table entires, per EFI spec */
-#define        EFI_MIN_ARRAY_SIZE      (16 * 1024)
-
-#define        EFI_PART_NAME_LEN       36
-
-/* size of the "reserved" partition, in blocks */
-#define        EFI_MIN_RESV_SIZE       (16 * 1024)
-
-/* EFI Guid Partition Entry */
-typedef struct efi_gpe {
-       struct uuid     efi_gpe_PartitionTypeGUID;
-       struct uuid     efi_gpe_UniquePartitionGUID;
-       diskaddr_t      efi_gpe_StartingLBA;
-       diskaddr_t      efi_gpe_EndingLBA;
-       efi_gpe_Attrs_t efi_gpe_Attributes;
-       ushort_t        efi_gpe_PartitionName[EFI_PART_NAME_LEN];
-} efi_gpe_t;
-
-/*
- * passed to the useful (we hope) routines (efi_alloc_and_read and
- * efi_write) that take this VTOC-like struct.  These routines handle
- * converting this struct into the EFI struct, generate UUIDs and
- * checksums, and perform any necessary byte-swapping to the on-disk
- * format.
- */
-/* Solaris library abstraction for EFI partitons */
-typedef struct dk_part {
-       diskaddr_t      p_start;        /* starting LBA */
-       diskaddr_t      p_size;         /* size in blocks */
-       struct uuid     p_guid;         /* partion type GUID */
-       ushort_t        p_tag;          /* converted to part'n type GUID */
-       ushort_t        p_flag;         /* attributes */
-       char            p_name[EFI_PART_NAME_LEN]; /* partition name */
-       struct uuid     p_uguid;        /* unique partition GUID */
-       uint_t          p_resv[8];      /* future use - set to zero */
-} dk_part_t;
-
-/* Solaris library abstraction for an EFI GPT */
-#define        EFI_VERSION102          0x00010002
-#define        EFI_VERSION100          0x00010000
-#define        EFI_VERSION_CURRENT     EFI_VERSION100
-typedef struct dk_gpt {
-       uint_t          efi_version;    /* set to EFI_VERSION_CURRENT */
-       uint_t          efi_nparts;     /* number of partitions below */
-       uint_t          efi_part_size;  /* size of each partition entry */
-                                       /* efi_part_size is unused */
-       uint_t          efi_lbasize;    /* size of block in bytes */
-       diskaddr_t      efi_last_lba;   /* last block on the disk */
-       diskaddr_t      efi_first_u_lba; /* first block after labels */
-       diskaddr_t      efi_last_u_lba; /* last block before backup labels */
-       struct uuid     efi_disk_uguid; /* unique disk GUID */
-       uint_t          efi_flags;
-       uint_t          efi_reserved1;  /* future use - set to zero */
-       diskaddr_t      efi_altern_lba; /* lba of alternate GPT header */
-       uint_t          efi_reserved[12]; /* future use - set to zero */
-       struct dk_part  efi_parts[1];   /* array of partitions */
-} dk_gpt_t;
-
-/* possible values for "efi_flags" */
-#define        EFI_GPT_PRIMARY_CORRUPT 0x1     /* primary label corrupt */
-
-/* the private ioctl between libefi and the driver */
-typedef struct dk_efi {
-       diskaddr_t       dki_lba;       /* starting block */
-       len_t            dki_length;    /* length in bytes */
-       union {
-               efi_gpt_t       *_dki_data;
-               uint64_t        _dki_data_64;
-       } dki_un;
-#define        dki_data        dki_un._dki_data
-#define        dki_data_64     dki_un._dki_data_64
-} dk_efi_t;
-
-struct partition64 {
-       struct uuid     p_type;
-       uint_t          p_partno;
-       uint_t          p_resv1;
-       diskaddr_t      p_start;
-       diskaddr_t      p_size;
-};
-
-/*
- * Number of EFI partitions
- */
-#if defined(__linux__)
-#define        EFI_NUMPAR      128 /* Expected by parted-1.8.1 */
-#else
-#define        EFI_NUMPAR      9
-#endif
-
-#ifndef _KERNEL
-extern int     efi_alloc_and_init(int, uint32_t, struct dk_gpt **);
-extern int     efi_alloc_and_read(int, struct dk_gpt **);
-extern int     efi_write(int, struct dk_gpt *);
-extern void    efi_free(struct dk_gpt *);
-extern int     efi_type(int);
-extern void    efi_err_check(struct dk_gpt *);
-extern int     efi_auto_sense(int fd, struct dk_gpt **);
-extern int     efi_use_whole_disk(int fd);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_EFI_PARTITION_H */
diff --git a/lib/libefi/include/sys/uuid.h b/lib/libefi/include/sys/uuid.h
deleted file mode 100644 (file)
index eab4622..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _SYS_UUID_H
-#define        _SYS_UUID_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The copyright in this file is taken from the original Leach
- * & Salz UUID specification, from which this implementation
- * is derived.
- */
-
-/*
- * Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
- * Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
- * Digital Equipment Corporation, Maynard, Mass.  Copyright (c) 1998
- * Microsoft.  To anyone who acknowledges that this file is provided
- * "AS IS" without any express or implied warranty: permission to use,
- * copy, modify, and distribute this file for any purpose is hereby
- * granted without fee, provided that the above copyright notices and
- * this notice appears in all source code copies, and that none of the
- * names of Open Software Foundation, Inc., Hewlett-Packard Company,
- * or Digital Equipment Corporation be used in advertising or
- * publicity pertaining to distribution of the software without
- * specific, written prior permission.  Neither Open Software
- * Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
- * Equipment Corporation makes any representations about the
- * suitability of this software for any purpose.
- */
-
-#include <sys/types.h>
-#include <sys/byteorder.h>
-
-typedef struct {
-       uint8_t         nodeID[6];
-} uuid_node_t;
-
-/*
- * The uuid type used throughout when referencing uuids themselves
- */
-struct uuid {
-       uint32_t        time_low;
-       uint16_t        time_mid;
-       uint16_t        time_hi_and_version;
-       uint8_t         clock_seq_hi_and_reserved;
-       uint8_t         clock_seq_low;
-       uint8_t         node_addr[6];
-};
-
-#define        UUID_PRINTABLE_STRING_LENGTH 37
-
-/*
- * Convert a uuid to/from little-endian format
- */
-#define        UUID_LE_CONVERT(dest, src)                                      \
-{                                                                      \
-       (dest) = (src);                                                 \
-       (dest).time_low = LE_32((dest).time_low);                       \
-       (dest).time_mid = LE_16((dest).time_mid);                       \
-       (dest).time_hi_and_version = LE_16((dest).time_hi_and_version); \
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_UUID_H */
index 9cac22c530457e29cb9760379f99062ed34c0645..33edf3ba256ca47633f94a673a6a88052c8ed54a 100644 (file)
@@ -3,17 +3,16 @@ include $(top_srcdir)/config/Rules.am
 AM_CFLAGS += $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/lib/libspl/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 lib_LTLIBRARIES = libnvpair.la
 
 libnvpair_la_SOURCES = \
-       ${top_srcdir}/lib/libnvpair/libnvpair.c \
-       ${top_srcdir}/lib/libnvpair/nvpair_alloc_system.c \
-       ${top_srcdir}/lib/libnvpair/include/libnvpair.h \
-       ${top_srcdir}/module/nvpair/nvpair_alloc_fixed.c \
-       ${top_srcdir}/module/nvpair/nvpair.c \
-       ${top_srcdir}/module/nvpair/include/sys/nvpair.h \
-       ${top_srcdir}/module/nvpair/include/sys/nvpair_impl.h
+       $(top_srcdir)/lib/libnvpair/libnvpair.c \
+       $(top_srcdir)/lib/libnvpair/nvpair_alloc_system.c \
+       $(top_srcdir)/module/nvpair/nvpair_alloc_fixed.c \
+       $(top_srcdir)/module/nvpair/nvpair.c
+
+EXTRA_DIST = \
+       $(top_srcdir)/module/nvpair/nvpair_alloc_spl.c
index bc60fbb14dcc991622319ca9e798156c0bd7d21f..27873bd1bd72f0e6de174f59c98cb80364c64ff2 100644 (file)
@@ -145,14 +145,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -190,7 +188,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -205,7 +202,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -224,7 +220,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -234,7 +229,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -305,10 +299,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/lib/libspl/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
@@ -317,13 +309,13 @@ AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 lib_LTLIBRARIES = libnvpair.la
 libnvpair_la_SOURCES = \
-       ${top_srcdir}/lib/libnvpair/libnvpair.c \
-       ${top_srcdir}/lib/libnvpair/nvpair_alloc_system.c \
-       ${top_srcdir}/lib/libnvpair/include/libnvpair.h \
-       ${top_srcdir}/module/nvpair/nvpair_alloc_fixed.c \
-       ${top_srcdir}/module/nvpair/nvpair.c \
-       ${top_srcdir}/module/nvpair/include/sys/nvpair.h \
-       ${top_srcdir}/module/nvpair/include/sys/nvpair_impl.h
+       $(top_srcdir)/lib/libnvpair/libnvpair.c \
+       $(top_srcdir)/lib/libnvpair/nvpair_alloc_system.c \
+       $(top_srcdir)/module/nvpair/nvpair_alloc_fixed.c \
+       $(top_srcdir)/module/nvpair/nvpair.c
+
+EXTRA_DIST = \
+       $(top_srcdir)/module/nvpair/nvpair_alloc_spl.c
 
 all: all-am
 
@@ -428,37 +420,37 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-libnvpair.lo: ${top_srcdir}/lib/libnvpair/libnvpair.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnvpair.lo -MD -MP -MF $(DEPDIR)/libnvpair.Tpo -c -o libnvpair.lo `test -f '${top_srcdir}/lib/libnvpair/libnvpair.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libnvpair/libnvpair.c
+libnvpair.lo: $(top_srcdir)/lib/libnvpair/libnvpair.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnvpair.lo -MD -MP -MF $(DEPDIR)/libnvpair.Tpo -c -o libnvpair.lo `test -f '$(top_srcdir)/lib/libnvpair/libnvpair.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libnvpair/libnvpair.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libnvpair.Tpo $(DEPDIR)/libnvpair.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libnvpair/libnvpair.c' object='libnvpair.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libnvpair/libnvpair.c' object='libnvpair.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnvpair.lo `test -f '${top_srcdir}/lib/libnvpair/libnvpair.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libnvpair/libnvpair.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnvpair.lo `test -f '$(top_srcdir)/lib/libnvpair/libnvpair.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libnvpair/libnvpair.c
 
-nvpair_alloc_system.lo: ${top_srcdir}/lib/libnvpair/nvpair_alloc_system.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nvpair_alloc_system.lo -MD -MP -MF $(DEPDIR)/nvpair_alloc_system.Tpo -c -o nvpair_alloc_system.lo `test -f '${top_srcdir}/lib/libnvpair/nvpair_alloc_system.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libnvpair/nvpair_alloc_system.c
+nvpair_alloc_system.lo: $(top_srcdir)/lib/libnvpair/nvpair_alloc_system.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nvpair_alloc_system.lo -MD -MP -MF $(DEPDIR)/nvpair_alloc_system.Tpo -c -o nvpair_alloc_system.lo `test -f '$(top_srcdir)/lib/libnvpair/nvpair_alloc_system.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libnvpair/nvpair_alloc_system.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/nvpair_alloc_system.Tpo $(DEPDIR)/nvpair_alloc_system.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libnvpair/nvpair_alloc_system.c' object='nvpair_alloc_system.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libnvpair/nvpair_alloc_system.c' object='nvpair_alloc_system.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nvpair_alloc_system.lo `test -f '${top_srcdir}/lib/libnvpair/nvpair_alloc_system.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libnvpair/nvpair_alloc_system.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nvpair_alloc_system.lo `test -f '$(top_srcdir)/lib/libnvpair/nvpair_alloc_system.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libnvpair/nvpair_alloc_system.c
 
-nvpair_alloc_fixed.lo: ${top_srcdir}/module/nvpair/nvpair_alloc_fixed.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nvpair_alloc_fixed.lo -MD -MP -MF $(DEPDIR)/nvpair_alloc_fixed.Tpo -c -o nvpair_alloc_fixed.lo `test -f '${top_srcdir}/module/nvpair/nvpair_alloc_fixed.c' || echo '$(srcdir)/'`${top_srcdir}/module/nvpair/nvpair_alloc_fixed.c
+nvpair_alloc_fixed.lo: $(top_srcdir)/module/nvpair/nvpair_alloc_fixed.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nvpair_alloc_fixed.lo -MD -MP -MF $(DEPDIR)/nvpair_alloc_fixed.Tpo -c -o nvpair_alloc_fixed.lo `test -f '$(top_srcdir)/module/nvpair/nvpair_alloc_fixed.c' || echo '$(srcdir)/'`$(top_srcdir)/module/nvpair/nvpair_alloc_fixed.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/nvpair_alloc_fixed.Tpo $(DEPDIR)/nvpair_alloc_fixed.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/nvpair/nvpair_alloc_fixed.c' object='nvpair_alloc_fixed.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/nvpair/nvpair_alloc_fixed.c' object='nvpair_alloc_fixed.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nvpair_alloc_fixed.lo `test -f '${top_srcdir}/module/nvpair/nvpair_alloc_fixed.c' || echo '$(srcdir)/'`${top_srcdir}/module/nvpair/nvpair_alloc_fixed.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nvpair_alloc_fixed.lo `test -f '$(top_srcdir)/module/nvpair/nvpair_alloc_fixed.c' || echo '$(srcdir)/'`$(top_srcdir)/module/nvpair/nvpair_alloc_fixed.c
 
-nvpair.lo: ${top_srcdir}/module/nvpair/nvpair.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nvpair.lo -MD -MP -MF $(DEPDIR)/nvpair.Tpo -c -o nvpair.lo `test -f '${top_srcdir}/module/nvpair/nvpair.c' || echo '$(srcdir)/'`${top_srcdir}/module/nvpair/nvpair.c
+nvpair.lo: $(top_srcdir)/module/nvpair/nvpair.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT nvpair.lo -MD -MP -MF $(DEPDIR)/nvpair.Tpo -c -o nvpair.lo `test -f '$(top_srcdir)/module/nvpair/nvpair.c' || echo '$(srcdir)/'`$(top_srcdir)/module/nvpair/nvpair.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/nvpair.Tpo $(DEPDIR)/nvpair.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/nvpair/nvpair.c' object='nvpair.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/nvpair/nvpair.c' object='nvpair.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nvpair.lo `test -f '${top_srcdir}/module/nvpair/nvpair.c' || echo '$(srcdir)/'`${top_srcdir}/module/nvpair/nvpair.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o nvpair.lo `test -f '$(top_srcdir)/module/nvpair/nvpair.c' || echo '$(srcdir)/'`$(top_srcdir)/module/nvpair/nvpair.c
 
 mostlyclean-libtool:
        -rm -f *.lo
diff --git a/lib/libnvpair/include/libnvpair.h b/lib/libnvpair/include/libnvpair.h
deleted file mode 100644 (file)
index 4c2615d..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _LIBNVPAIR_H
-#define        _LIBNVPAIR_H
-
-#include <sys/nvpair.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <regex.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * All interfaces described in this file are private to Solaris, and
- * are subject to change at any time and without notice.  The public
- * nvlist/nvpair interfaces, as documented in manpage sections 3NVPAIR,
- * are all imported from <sys/nvpair.h> included above.
- */
-
-extern int nvpair_value_match(nvpair_t *, int, char *, char **);
-extern int nvpair_value_match_regex(nvpair_t *, int, char *, regex_t *,
-    char **);
-
-extern void nvlist_print(FILE *, nvlist_t *);
-extern void dump_nvlist(nvlist_t *, int);
-
-/*
- * Private nvlist printing interface that allows the caller some control
- * over output rendering (as opposed to nvlist_print and dump_nvlist).
- *
- * Obtain an opaque nvlist_prtctl_t cookie using nvlist_prtctl_alloc
- * (NULL on failure);  on return the cookie is set up for default formatting
- * and rendering.  Quote the cookie in subsequent customisation functions and
- * then pass the cookie to nvlist_prt to render the nvlist.  Finally,
- * use nvlist_prtctl_free to release the cookie.
- *
- * For all nvlist_lookup_xxx and nvlist_lookup_xxx_array functions
- * we have a corresponding brace of functions that appoint replacement
- * rendering functions:
- *
- *     extern void nvlist_prtctl_xxx(nvlist_prtctl_t,
- *         void (*)(nvlist_prtctl_t ctl, void *private, const char *name,
- *         xxxtype value))
- *
- *     and
- *
- *     extern void nvlist_prtctl_xxx_array(nvlist_prtctl_t,
- *         void (*)(nvlist_prtctl_t ctl, void *private, const char *name,
- *         xxxtype value, uint_t count))
- *
- * where xxxtype is the C datatype corresponding to xxx, eg int8_t for "int8"
- * and char * for "string".  The function that is appointed to render the
- * specified datatype receives as arguments the cookie, the nvlist
- * member name, the value of that member (or a pointer for array function),
- * and (for array rendering functions) a count of the number of elements.
- */
-
-typedef struct nvlist_prtctl *nvlist_prtctl_t; /* opaque */
-
-enum nvlist_indent_mode {
-       NVLIST_INDENT_ABS,      /* Absolute indentation */
-       NVLIST_INDENT_TABBED    /* Indent with tabstops */
-};
-
-extern nvlist_prtctl_t nvlist_prtctl_alloc(void);
-extern void nvlist_prtctl_free(nvlist_prtctl_t);
-extern void nvlist_prt(nvlist_t *, nvlist_prtctl_t);
-
-/* Output stream */
-extern void nvlist_prtctl_setdest(nvlist_prtctl_t, FILE *);
-extern FILE *nvlist_prtctl_getdest(nvlist_prtctl_t);
-
-/* Indentation mode, start indent, indent increment; default tabbed/0/1 */
-extern void nvlist_prtctl_setindent(nvlist_prtctl_t, enum nvlist_indent_mode,
-    int, int);
-extern void nvlist_prtctl_doindent(nvlist_prtctl_t, int);
-
-enum nvlist_prtctl_fmt {
-       NVLIST_FMT_MEMBER_NAME,         /* name fmt; default "%s = " */
-       NVLIST_FMT_MEMBER_POSTAMBLE,    /* after nvlist member; default "\n" */
-       NVLIST_FMT_BTWN_ARRAY           /* between array members; default " " */
-};
-
-extern void nvlist_prtctl_setfmt(nvlist_prtctl_t, enum nvlist_prtctl_fmt,
-    const char *);
-extern void nvlist_prtctl_dofmt(nvlist_prtctl_t, enum nvlist_prtctl_fmt, ...);
-
-/*
- * Function prototypes for interfaces that appoint a new rendering function
- * for single-valued nvlist members.
- *
- * A replacement function receives arguments as follows:
- *
- *     nvlist_prtctl_t Print control structure; do not change preferences
- *                     for this object from a print callback function.
- *
- *     void *          The function-private cookie argument registered
- *                     when the replacement function was appointed.
- *
- *     nvlist_t *      The full nvlist that is being processed.  The
- *                     rendering function is called to render a single
- *                     member (name and value passed as below) but it may
- *                     want to reference or incorporate other aspects of
- *                     the full nvlist.
- *
- *     const char *    Member name to render
- *
- *     valtype         Value of the member to render
- *
- * The function must return non-zero if it has rendered output for this
- * member, or 0 if it wants to default to standard rendering for this
- * one member.
- */
-
-#define        NVLIST_PRINTCTL_SVDECL(funcname, valtype) \
-    extern void funcname(nvlist_prtctl_t, \
-    int (*)(nvlist_prtctl_t, void *, nvlist_t *, const char *, valtype), \
-    void *)
-
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_boolean, int);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_boolean_value, boolean_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_byte, uchar_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_int8, int8_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_uint8, uint8_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_int16, int16_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_uint16, uint16_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_int32, int32_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_uint32, uint32_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_int64, int64_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_uint64, uint64_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_double, double);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_string, char *);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_hrtime, hrtime_t);
-NVLIST_PRINTCTL_SVDECL(nvlist_prtctlop_nvlist, nvlist_t *);
-
-#undef NVLIST_PRINTCTL_SVDECL  /* was just for "clarity" above */
-
-/*
- * Function prototypes for interfaces that appoint a new rendering function
- * for array-valued nvlist members.
- *
- * One additional argument is taken: uint_t for the number of array elements
- *
- * Return values as above.
- */
-#define        NVLIST_PRINTCTL_AVDECL(funcname, vtype) \
-    extern void funcname(nvlist_prtctl_t, \
-    int (*)(nvlist_prtctl_t, void *, nvlist_t *, const char *, vtype, uint_t), \
-    void *)
-
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_boolean_array, boolean_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_byte_array, uchar_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_int8_array, int8_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_uint8_array, uint8_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_int16_array, int16_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_uint16_array, uint16_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_int32_array, int32_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_uint32_array, uint32_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_int64_array, int64_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_uint64_array, uint64_t *);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_string_array, char **);
-NVLIST_PRINTCTL_AVDECL(nvlist_prtctlop_nvlist_array, nvlist_t **);
-
-#undef NVLIST_PRINTCTL_AVDECL  /* was just for "clarity" above */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _LIBNVPAIR_H */
index ad91ae851e74efec13d2ed54e8e35f74a744ef7a..f95e42bf0708a6487d67a607d0b5879f7fc28bbd 100644 (file)
@@ -6,28 +6,28 @@ SUBDIRS = include $(TARGET_ASM_DIR)
 DIST_SUBDIRS = include asm-generic asm-i386 asm-x86_64
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/lib/libspl/include
+       -I$(top_srcdir)/lib/libspl/include
 
 AM_CCASFLAGS = \
-       -I${top_srcdir}/lib/libspl/include
+       -I$(top_srcdir)/lib/libspl/include
 
 lib_LTLIBRARIES = libspl.la
 
 libspl_la_LDFLAGS = -lrt
 
 libspl_la_SOURCES = \
-       ${top_srcdir}/lib/libspl/getexecname.c \
-       ${top_srcdir}/lib/libspl/gethrtime.c \
-       ${top_srcdir}/lib/libspl/gethrestime.c \
-       ${top_srcdir}/lib/libspl/getmntany.c \
-       ${top_srcdir}/lib/libspl/list.c \
-       ${top_srcdir}/lib/libspl/mkdirp.c \
-       ${top_srcdir}/lib/libspl/strlcat.c \
-       ${top_srcdir}/lib/libspl/strlcpy.c \
-       ${top_srcdir}/lib/libspl/strnlen.c \
-       ${top_srcdir}/lib/libspl/timestamp.c \
-       ${top_srcdir}/lib/libspl/zone.c \
-       ${top_srcdir}/lib/libspl/xdr.c \
-       ${top_srcdir}/lib/libspl/${TARGET_ASM_DIR}/atomic.S \
-       ${top_srcdir}/lib/libspl/include/sys/list.h \
-       ${top_srcdir}/lib/libspl/include/sys/list_impl.h
+       $(top_srcdir)/lib/libspl/getexecname.c \
+       $(top_srcdir)/lib/libspl/gethrtime.c \
+       $(top_srcdir)/lib/libspl/gethrestime.c \
+       $(top_srcdir)/lib/libspl/getmntany.c \
+       $(top_srcdir)/lib/libspl/list.c \
+       $(top_srcdir)/lib/libspl/mkdirp.c \
+       $(top_srcdir)/lib/libspl/strlcat.c \
+       $(top_srcdir)/lib/libspl/strlcpy.c \
+       $(top_srcdir)/lib/libspl/strnlen.c \
+       $(top_srcdir)/lib/libspl/timestamp.c \
+       $(top_srcdir)/lib/libspl/zone.c \
+       $(top_srcdir)/lib/libspl/xdr.c \
+       $(top_srcdir)/lib/libspl/$(TARGET_ASM_DIR)/atomic.S \
+       $(top_srcdir)/lib/libspl/include/sys/list.h \
+       $(top_srcdir)/lib/libspl/include/sys/list_impl.h
index 7af9a8e1f00d66061bb3db458349a62b90d91b95..c2f3bc665992838ca7c290e4e46311459bf46edb 100644 (file)
@@ -195,14 +195,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -240,7 +238,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -255,7 +252,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -274,7 +270,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -284,7 +279,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -355,8 +349,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libspl/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
@@ -366,26 +360,26 @@ AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
 SUBDIRS = include $(TARGET_ASM_DIR)
 DIST_SUBDIRS = include asm-generic asm-i386 asm-x86_64
 AM_CCASFLAGS = \
-       -I${top_srcdir}/lib/libspl/include
+       -I$(top_srcdir)/lib/libspl/include
 
 lib_LTLIBRARIES = libspl.la
 libspl_la_LDFLAGS = -lrt
 libspl_la_SOURCES = \
-       ${top_srcdir}/lib/libspl/getexecname.c \
-       ${top_srcdir}/lib/libspl/gethrtime.c \
-       ${top_srcdir}/lib/libspl/gethrestime.c \
-       ${top_srcdir}/lib/libspl/getmntany.c \
-       ${top_srcdir}/lib/libspl/list.c \
-       ${top_srcdir}/lib/libspl/mkdirp.c \
-       ${top_srcdir}/lib/libspl/strlcat.c \
-       ${top_srcdir}/lib/libspl/strlcpy.c \
-       ${top_srcdir}/lib/libspl/strnlen.c \
-       ${top_srcdir}/lib/libspl/timestamp.c \
-       ${top_srcdir}/lib/libspl/zone.c \
-       ${top_srcdir}/lib/libspl/xdr.c \
-       ${top_srcdir}/lib/libspl/${TARGET_ASM_DIR}/atomic.S \
-       ${top_srcdir}/lib/libspl/include/sys/list.h \
-       ${top_srcdir}/lib/libspl/include/sys/list_impl.h
+       $(top_srcdir)/lib/libspl/getexecname.c \
+       $(top_srcdir)/lib/libspl/gethrtime.c \
+       $(top_srcdir)/lib/libspl/gethrestime.c \
+       $(top_srcdir)/lib/libspl/getmntany.c \
+       $(top_srcdir)/lib/libspl/list.c \
+       $(top_srcdir)/lib/libspl/mkdirp.c \
+       $(top_srcdir)/lib/libspl/strlcat.c \
+       $(top_srcdir)/lib/libspl/strlcpy.c \
+       $(top_srcdir)/lib/libspl/strnlen.c \
+       $(top_srcdir)/lib/libspl/timestamp.c \
+       $(top_srcdir)/lib/libspl/zone.c \
+       $(top_srcdir)/lib/libspl/xdr.c \
+       $(top_srcdir)/lib/libspl/$(TARGET_ASM_DIR)/atomic.S \
+       $(top_srcdir)/lib/libspl/include/sys/list.h \
+       $(top_srcdir)/lib/libspl/include/sys/list_impl.h
 
 all: all-recursive
 
@@ -499,13 +493,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@    DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCCAS_FALSE@        $(LTCPPASCOMPILE) -c -o $@ $<
 
-atomic.lo: ${top_srcdir}/lib/libspl/${TARGET_ASM_DIR}/atomic.S
-@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT atomic.lo -MD -MP -MF $(DEPDIR)/atomic.Tpo -c -o atomic.lo `test -f '${top_srcdir}/lib/libspl/${TARGET_ASM_DIR}/atomic.S' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/${TARGET_ASM_DIR}/atomic.S
+atomic.lo: $(top_srcdir)/lib/libspl/$(TARGET_ASM_DIR)/atomic.S
+@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT atomic.lo -MD -MP -MF $(DEPDIR)/atomic.Tpo -c -o atomic.lo `test -f '$(top_srcdir)/lib/libspl/$(TARGET_ASM_DIR)/atomic.S' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/$(TARGET_ASM_DIR)/atomic.S
 @am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/atomic.Tpo $(DEPDIR)/atomic.Plo
 @am__fastdepCCAS_FALSE@        $(AM_V_CPPAS) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCCAS_FALSE@    source='${top_srcdir}/lib/libspl/${TARGET_ASM_DIR}/atomic.S' object='atomic.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@    source='$(top_srcdir)/lib/libspl/$(TARGET_ASM_DIR)/atomic.S' object='atomic.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@    DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCCAS_FALSE@        $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o atomic.lo `test -f '${top_srcdir}/lib/libspl/${TARGET_ASM_DIR}/atomic.S' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/${TARGET_ASM_DIR}/atomic.S
+@am__fastdepCCAS_FALSE@        $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o atomic.lo `test -f '$(top_srcdir)/lib/libspl/$(TARGET_ASM_DIR)/atomic.S' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/$(TARGET_ASM_DIR)/atomic.S
 
 .c.o:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -531,101 +525,101 @@ atomic.lo: ${top_srcdir}/lib/libspl/${TARGET_ASM_DIR}/atomic.S
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-getexecname.lo: ${top_srcdir}/lib/libspl/getexecname.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT getexecname.lo -MD -MP -MF $(DEPDIR)/getexecname.Tpo -c -o getexecname.lo `test -f '${top_srcdir}/lib/libspl/getexecname.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/getexecname.c
+getexecname.lo: $(top_srcdir)/lib/libspl/getexecname.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT getexecname.lo -MD -MP -MF $(DEPDIR)/getexecname.Tpo -c -o getexecname.lo `test -f '$(top_srcdir)/lib/libspl/getexecname.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/getexecname.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/getexecname.Tpo $(DEPDIR)/getexecname.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/getexecname.c' object='getexecname.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/getexecname.c' object='getexecname.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getexecname.lo `test -f '${top_srcdir}/lib/libspl/getexecname.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/getexecname.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getexecname.lo `test -f '$(top_srcdir)/lib/libspl/getexecname.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/getexecname.c
 
-gethrtime.lo: ${top_srcdir}/lib/libspl/gethrtime.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gethrtime.lo -MD -MP -MF $(DEPDIR)/gethrtime.Tpo -c -o gethrtime.lo `test -f '${top_srcdir}/lib/libspl/gethrtime.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/gethrtime.c
+gethrtime.lo: $(top_srcdir)/lib/libspl/gethrtime.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gethrtime.lo -MD -MP -MF $(DEPDIR)/gethrtime.Tpo -c -o gethrtime.lo `test -f '$(top_srcdir)/lib/libspl/gethrtime.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/gethrtime.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gethrtime.Tpo $(DEPDIR)/gethrtime.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/gethrtime.c' object='gethrtime.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/gethrtime.c' object='gethrtime.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gethrtime.lo `test -f '${top_srcdir}/lib/libspl/gethrtime.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/gethrtime.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gethrtime.lo `test -f '$(top_srcdir)/lib/libspl/gethrtime.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/gethrtime.c
 
-gethrestime.lo: ${top_srcdir}/lib/libspl/gethrestime.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gethrestime.lo -MD -MP -MF $(DEPDIR)/gethrestime.Tpo -c -o gethrestime.lo `test -f '${top_srcdir}/lib/libspl/gethrestime.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/gethrestime.c
+gethrestime.lo: $(top_srcdir)/lib/libspl/gethrestime.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gethrestime.lo -MD -MP -MF $(DEPDIR)/gethrestime.Tpo -c -o gethrestime.lo `test -f '$(top_srcdir)/lib/libspl/gethrestime.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/gethrestime.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gethrestime.Tpo $(DEPDIR)/gethrestime.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/gethrestime.c' object='gethrestime.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/gethrestime.c' object='gethrestime.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gethrestime.lo `test -f '${top_srcdir}/lib/libspl/gethrestime.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/gethrestime.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gethrestime.lo `test -f '$(top_srcdir)/lib/libspl/gethrestime.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/gethrestime.c
 
-getmntany.lo: ${top_srcdir}/lib/libspl/getmntany.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT getmntany.lo -MD -MP -MF $(DEPDIR)/getmntany.Tpo -c -o getmntany.lo `test -f '${top_srcdir}/lib/libspl/getmntany.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/getmntany.c
+getmntany.lo: $(top_srcdir)/lib/libspl/getmntany.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT getmntany.lo -MD -MP -MF $(DEPDIR)/getmntany.Tpo -c -o getmntany.lo `test -f '$(top_srcdir)/lib/libspl/getmntany.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/getmntany.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/getmntany.Tpo $(DEPDIR)/getmntany.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/getmntany.c' object='getmntany.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/getmntany.c' object='getmntany.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getmntany.lo `test -f '${top_srcdir}/lib/libspl/getmntany.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/getmntany.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getmntany.lo `test -f '$(top_srcdir)/lib/libspl/getmntany.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/getmntany.c
 
-list.lo: ${top_srcdir}/lib/libspl/list.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list.lo -MD -MP -MF $(DEPDIR)/list.Tpo -c -o list.lo `test -f '${top_srcdir}/lib/libspl/list.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/list.c
+list.lo: $(top_srcdir)/lib/libspl/list.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list.lo -MD -MP -MF $(DEPDIR)/list.Tpo -c -o list.lo `test -f '$(top_srcdir)/lib/libspl/list.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/list.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/list.Tpo $(DEPDIR)/list.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/list.c' object='list.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/list.c' object='list.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list.lo `test -f '${top_srcdir}/lib/libspl/list.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/list.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list.lo `test -f '$(top_srcdir)/lib/libspl/list.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/list.c
 
-mkdirp.lo: ${top_srcdir}/lib/libspl/mkdirp.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mkdirp.lo -MD -MP -MF $(DEPDIR)/mkdirp.Tpo -c -o mkdirp.lo `test -f '${top_srcdir}/lib/libspl/mkdirp.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/mkdirp.c
+mkdirp.lo: $(top_srcdir)/lib/libspl/mkdirp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mkdirp.lo -MD -MP -MF $(DEPDIR)/mkdirp.Tpo -c -o mkdirp.lo `test -f '$(top_srcdir)/lib/libspl/mkdirp.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/mkdirp.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/mkdirp.Tpo $(DEPDIR)/mkdirp.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/mkdirp.c' object='mkdirp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/mkdirp.c' object='mkdirp.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mkdirp.lo `test -f '${top_srcdir}/lib/libspl/mkdirp.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/mkdirp.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mkdirp.lo `test -f '$(top_srcdir)/lib/libspl/mkdirp.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/mkdirp.c
 
-strlcat.lo: ${top_srcdir}/lib/libspl/strlcat.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT strlcat.lo -MD -MP -MF $(DEPDIR)/strlcat.Tpo -c -o strlcat.lo `test -f '${top_srcdir}/lib/libspl/strlcat.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/strlcat.c
+strlcat.lo: $(top_srcdir)/lib/libspl/strlcat.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT strlcat.lo -MD -MP -MF $(DEPDIR)/strlcat.Tpo -c -o strlcat.lo `test -f '$(top_srcdir)/lib/libspl/strlcat.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/strlcat.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/strlcat.Tpo $(DEPDIR)/strlcat.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/strlcat.c' object='strlcat.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/strlcat.c' object='strlcat.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strlcat.lo `test -f '${top_srcdir}/lib/libspl/strlcat.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/strlcat.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strlcat.lo `test -f '$(top_srcdir)/lib/libspl/strlcat.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/strlcat.c
 
-strlcpy.lo: ${top_srcdir}/lib/libspl/strlcpy.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT strlcpy.lo -MD -MP -MF $(DEPDIR)/strlcpy.Tpo -c -o strlcpy.lo `test -f '${top_srcdir}/lib/libspl/strlcpy.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/strlcpy.c
+strlcpy.lo: $(top_srcdir)/lib/libspl/strlcpy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT strlcpy.lo -MD -MP -MF $(DEPDIR)/strlcpy.Tpo -c -o strlcpy.lo `test -f '$(top_srcdir)/lib/libspl/strlcpy.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/strlcpy.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/strlcpy.Tpo $(DEPDIR)/strlcpy.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/strlcpy.c' object='strlcpy.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/strlcpy.c' object='strlcpy.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strlcpy.lo `test -f '${top_srcdir}/lib/libspl/strlcpy.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/strlcpy.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strlcpy.lo `test -f '$(top_srcdir)/lib/libspl/strlcpy.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/strlcpy.c
 
-strnlen.lo: ${top_srcdir}/lib/libspl/strnlen.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT strnlen.lo -MD -MP -MF $(DEPDIR)/strnlen.Tpo -c -o strnlen.lo `test -f '${top_srcdir}/lib/libspl/strnlen.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/strnlen.c
+strnlen.lo: $(top_srcdir)/lib/libspl/strnlen.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT strnlen.lo -MD -MP -MF $(DEPDIR)/strnlen.Tpo -c -o strnlen.lo `test -f '$(top_srcdir)/lib/libspl/strnlen.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/strnlen.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/strnlen.Tpo $(DEPDIR)/strnlen.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/strnlen.c' object='strnlen.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/strnlen.c' object='strnlen.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strnlen.lo `test -f '${top_srcdir}/lib/libspl/strnlen.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/strnlen.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o strnlen.lo `test -f '$(top_srcdir)/lib/libspl/strnlen.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/strnlen.c
 
-timestamp.lo: ${top_srcdir}/lib/libspl/timestamp.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT timestamp.lo -MD -MP -MF $(DEPDIR)/timestamp.Tpo -c -o timestamp.lo `test -f '${top_srcdir}/lib/libspl/timestamp.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/timestamp.c
+timestamp.lo: $(top_srcdir)/lib/libspl/timestamp.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT timestamp.lo -MD -MP -MF $(DEPDIR)/timestamp.Tpo -c -o timestamp.lo `test -f '$(top_srcdir)/lib/libspl/timestamp.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/timestamp.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/timestamp.Tpo $(DEPDIR)/timestamp.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/timestamp.c' object='timestamp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/timestamp.c' object='timestamp.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o timestamp.lo `test -f '${top_srcdir}/lib/libspl/timestamp.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/timestamp.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o timestamp.lo `test -f '$(top_srcdir)/lib/libspl/timestamp.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/timestamp.c
 
-zone.lo: ${top_srcdir}/lib/libspl/zone.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zone.lo -MD -MP -MF $(DEPDIR)/zone.Tpo -c -o zone.lo `test -f '${top_srcdir}/lib/libspl/zone.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/zone.c
+zone.lo: $(top_srcdir)/lib/libspl/zone.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zone.lo -MD -MP -MF $(DEPDIR)/zone.Tpo -c -o zone.lo `test -f '$(top_srcdir)/lib/libspl/zone.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/zone.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zone.Tpo $(DEPDIR)/zone.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/zone.c' object='zone.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/zone.c' object='zone.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zone.lo `test -f '${top_srcdir}/lib/libspl/zone.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/zone.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zone.lo `test -f '$(top_srcdir)/lib/libspl/zone.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/zone.c
 
-xdr.lo: ${top_srcdir}/lib/libspl/xdr.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xdr.lo -MD -MP -MF $(DEPDIR)/xdr.Tpo -c -o xdr.lo `test -f '${top_srcdir}/lib/libspl/xdr.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/xdr.c
+xdr.lo: $(top_srcdir)/lib/libspl/xdr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xdr.lo -MD -MP -MF $(DEPDIR)/xdr.Tpo -c -o xdr.lo `test -f '$(top_srcdir)/lib/libspl/xdr.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/xdr.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/xdr.Tpo $(DEPDIR)/xdr.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libspl/xdr.c' object='xdr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libspl/xdr.c' object='xdr.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xdr.lo `test -f '${top_srcdir}/lib/libspl/xdr.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libspl/xdr.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xdr.lo `test -f '$(top_srcdir)/lib/libspl/xdr.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libspl/xdr.c
 
 mostlyclean-libtool:
        -rm -f *.lo
index 4f5032f739c2f0650dd565cb075662f5be8ebce7..17fe501fa1836baddc4b063effd62030dfbf331a 100644 (file)
@@ -1,18 +1,18 @@
 include $(top_srcdir)/config/Rules.am
 
 DEFAULT_INCLUDES += \
-        -I${top_srcdir}/lib/libspl/include
+        -I$(top_srcdir)/lib/libspl/include
 
 atomic_SOURCE = atomic.c
 atomic_ASM = atomic.S
 
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
          $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -fPIC
-EXTRA_DIST = ${atomic_SOURCE}
+EXTRA_DIST = $(atomic_SOURCE)
 
 # Generates assembly to simplify inclusion in ../Makefile.am
 all-am:
-       $(COMPILE) -c -S ${atomic_SOURCE} -o ${atomic_ASM}
+       $(COMPILE) -c -S $(atomic_SOURCE) -o $(atomic_ASM)
 
 clean-generic:
-       $(RM) ${atomic_ASM}
+       $(RM) $(atomic_ASM)
index 1cb6f82c559a507b65d0aa909bcc9f8845f7b2ef..632910f182823cf849caef8ffa4683cbfe63a11f 100644 (file)
@@ -93,14 +93,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -138,7 +136,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -153,7 +150,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -172,7 +168,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -182,7 +177,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -253,8 +247,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libspl/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
@@ -265,7 +259,7 @@ atomic_ASM = atomic.S
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
          $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -fPIC
 
-EXTRA_DIST = ${atomic_SOURCE}
+EXTRA_DIST = $(atomic_SOURCE)
 all: all-am
 
 .SUFFIXES:
@@ -451,10 +445,10 @@ uninstall-am:
 
 # Generates assembly to simplify inclusion in ../Makefile.am
 all-am:
-       $(COMPILE) -c -S ${atomic_SOURCE} -o ${atomic_ASM}
+       $(COMPILE) -c -S $(atomic_SOURCE) -o $(atomic_ASM)
 
 clean-generic:
-       $(RM) ${atomic_ASM}
+       $(RM) $(atomic_ASM)
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/lib/libspl/asm-generic/atomic.S b/lib/libspl/asm-generic/atomic.S
deleted file mode 100644 (file)
index 7550fd9..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-Stub file for 'make dist' distdir rule.
-
-This file is directly referenced by ../Makefile.am as a source
-file and thus will be expected by 'make dist'.  To avoid this
-being a problem this stub file was added.  It will be overwritten
-at build time based on assmebly generated from atomic.c.
index 02403ecebbd2e9c7a717e20f2d8931dec541ec04..417b640bc4488cc5ab4362f186dcb9abebc22357 100644 (file)
@@ -1 +1 @@
-noinst_HEADERS = *.S
+noinst_HEADERS = $(top_srcdir)/lib/libspl/asm-i386/*.S
index 8236c11484c88841e6f1c342c7c610006f896325..281f365999471b8f34a48382cc6b6784d87bc449 100644 (file)
@@ -97,14 +97,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -142,7 +140,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -157,7 +154,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -176,7 +172,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -186,7 +181,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -257,7 +251,7 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-noinst_HEADERS = *.S
+noinst_HEADERS = $(top_srcdir)/lib/libspl/asm-i386/*.S
 all: all-am
 
 .SUFFIXES:
index 02403ecebbd2e9c7a717e20f2d8931dec541ec04..339c18d7ccb0a04b2857fc848e0d565e4546be33 100644 (file)
@@ -1 +1 @@
-noinst_HEADERS = *.S
+noinst_HEADERS = $(top_srcdir)/lib/libspl/asm-x86_64/*.S
index 8b9d1a97f3f1df7f0b497d1ac81a91a1c4256f98..51689b6cb1185b3213a8dcdae74a24984f8944fd 100644 (file)
@@ -97,14 +97,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -142,7 +140,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -157,7 +154,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -176,7 +172,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -186,7 +181,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -257,7 +251,7 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-noinst_HEADERS = *.S
+noinst_HEADERS = $(top_srcdir)/lib/libspl/asm-x86_64/*.S
 all: all-am
 
 .SUFFIXES:
index 631130ce709c18e17979d3047cef96d2d003b3fb..c1cbb0138ee2b6c6d950a7fffce83cb9f230734f 100644 (file)
@@ -1,7 +1,27 @@
-nobase_pkginclude_HEADERS  = *.h
-nobase_pkginclude_HEADERS += ia32/sys/*.h
-nobase_pkginclude_HEADERS += rpc/*.h
-nobase_pkginclude_HEADERS += sys/*.h
-nobase_pkginclude_HEADERS += sys/dktp/*.h
-nobase_pkginclude_HEADERS += sys/sysevent/*.h
-nobase_pkginclude_HEADERS += util/*.h
+SUBDIRS = ia32 rpc sys util
+
+libspldir = $(includedir)/libspl
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/assert.h \
+       $(top_srcdir)/lib/libspl/include/atomic.h \
+       $(top_srcdir)/lib/libspl/include/attr.h \
+       $(top_srcdir)/lib/libspl/include/devid.h \
+       $(top_srcdir)/lib/libspl/include/libdevinfo.h \
+       $(top_srcdir)/lib/libspl/include/libshare.h \
+       $(top_srcdir)/lib/libspl/include/limits.h \
+       $(top_srcdir)/lib/libspl/include/locale.h \
+       $(top_srcdir)/lib/libspl/include/note.h \
+       $(top_srcdir)/lib/libspl/include/priv.h \
+       $(top_srcdir)/lib/libspl/include/statcommon.h \
+       $(top_srcdir)/lib/libspl/include/stdio.h \
+       $(top_srcdir)/lib/libspl/include/stdlib.h \
+       $(top_srcdir)/lib/libspl/include/string.h \
+       $(top_srcdir)/lib/libspl/include/strings.h \
+       $(top_srcdir)/lib/libspl/include/stropts.h \
+       $(top_srcdir)/lib/libspl/include/synch.h \
+       $(top_srcdir)/lib/libspl/include/thread.h \
+       $(top_srcdir)/lib/libspl/include/tzfile.h \
+       $(top_srcdir)/lib/libspl/include/ucred.h \
+       $(top_srcdir)/lib/libspl/include/umem.h \
+       $(top_srcdir)/lib/libspl/include/unistd.h \
+       $(top_srcdir)/lib/libspl/include/zone.h
index c17a435aa7ec830767f085313f203e7c5f55c48b..ec0dd912c3f9306205d83e967544aced2a939e08 100644 (file)
@@ -36,7 +36,7 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = lib/libspl/include
-DIST_COMMON = $(nobase_pkginclude_HEADERS) $(srcdir)/Makefile.am \
+DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
        $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
@@ -83,6 +83,13 @@ am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -104,11 +111,42 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pkgincludedir)"
-HEADERS = $(nobase_pkginclude_HEADERS)
+am__installdirs = "$(DESTDIR)$(libspldir)"
+HEADERS = $(libspl_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
 ETAGS = etags
 CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 ALIEN = @ALIEN@
 ALIEN_VERSION = @ALIEN_VERSION@
@@ -119,14 +157,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -164,7 +200,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -179,7 +214,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -198,7 +232,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -208,7 +241,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -279,9 +311,34 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-nobase_pkginclude_HEADERS = *.h ia32/sys/*.h rpc/*.h sys/*.h \
-       sys/dktp/*.h sys/sysevent/*.h util/*.h
-all: all-am
+SUBDIRS = ia32 rpc sys util
+libspldir = $(includedir)/libspl
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/assert.h \
+       $(top_srcdir)/lib/libspl/include/atomic.h \
+       $(top_srcdir)/lib/libspl/include/attr.h \
+       $(top_srcdir)/lib/libspl/include/devid.h \
+       $(top_srcdir)/lib/libspl/include/libdevinfo.h \
+       $(top_srcdir)/lib/libspl/include/libshare.h \
+       $(top_srcdir)/lib/libspl/include/limits.h \
+       $(top_srcdir)/lib/libspl/include/locale.h \
+       $(top_srcdir)/lib/libspl/include/note.h \
+       $(top_srcdir)/lib/libspl/include/priv.h \
+       $(top_srcdir)/lib/libspl/include/statcommon.h \
+       $(top_srcdir)/lib/libspl/include/stdio.h \
+       $(top_srcdir)/lib/libspl/include/stdlib.h \
+       $(top_srcdir)/lib/libspl/include/string.h \
+       $(top_srcdir)/lib/libspl/include/strings.h \
+       $(top_srcdir)/lib/libspl/include/stropts.h \
+       $(top_srcdir)/lib/libspl/include/synch.h \
+       $(top_srcdir)/lib/libspl/include/thread.h \
+       $(top_srcdir)/lib/libspl/include/tzfile.h \
+       $(top_srcdir)/lib/libspl/include/ucred.h \
+       $(top_srcdir)/lib/libspl/include/umem.h \
+       $(top_srcdir)/lib/libspl/include/unistd.h \
+       $(top_srcdir)/lib/libspl/include/zone.h
+
+all: all-recursive
 
 .SUFFIXES:
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
@@ -320,29 +377,96 @@ mostlyclean-libtool:
 
 clean-libtool:
        -rm -rf .libs _libs
-install-nobase_pkgincludeHEADERS: $(nobase_pkginclude_HEADERS)
+install-libsplHEADERS: $(libspl_HEADERS)
        @$(NORMAL_INSTALL)
-       test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)"
-       @list='$(nobase_pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-       $(am__nobase_list) | while read dir files; do \
-         xfiles=; for file in $$files; do \
-           if test -f "$$file"; then xfiles="$$xfiles $$file"; \
-           else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
-         test -z "$$xfiles" || { \
-           test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(pkgincludedir)/$$dir'"; \
-             $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)/$$dir"; }; \
-           echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(pkgincludedir)/$$dir'"; \
-           $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(pkgincludedir)/$$dir" || exit $$?; }; \
+       test -z "$(libspldir)" || $(MKDIR_P) "$(DESTDIR)$(libspldir)"
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libspldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libspldir)" || exit $$?; \
        done
 
-uninstall-nobase_pkgincludeHEADERS:
+uninstall-libsplHEADERS:
        @$(NORMAL_UNINSTALL)
-       @list='$(nobase_pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-       $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
        test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
+       echo " ( cd '$(DESTDIR)$(libspldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libspldir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -354,10 +478,23 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        mkid -fID $$unique
 tags: TAGS
 
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
        set x; \
        here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
@@ -376,7 +513,7 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
          fi; \
        fi
 ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
@@ -426,22 +563,51 @@ distdir: $(DISTFILES)
            || exit 1; \
          fi; \
        done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
 check-am: all-am
-check: check-am
+check: check-recursive
 all-am: Makefile $(HEADERS)
-installdirs:
-       for dir in "$(DESTDIR)$(pkgincludedir)"; do \
+installdirs: installdirs-recursive
+installdirs-am:
+       for dir in "$(DESTDIR)$(libspldir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
 
 install-am: all-am
        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
-installcheck: installcheck-am
+installcheck: installcheck-recursive
 install-strip:
        $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
          install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
@@ -458,86 +624,89 @@ distclean-generic:
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
+clean: clean-recursive
 
 clean-am: clean-generic clean-libtool mostlyclean-am
 
-distclean: distclean-am
+distclean: distclean-recursive
        -rm -f Makefile
 distclean-am: clean-am distclean-generic distclean-tags
 
-dvi: dvi-am
+dvi: dvi-recursive
 
 dvi-am:
 
-html: html-am
+html: html-recursive
 
 html-am:
 
-info: info-am
+info: info-recursive
 
 info-am:
 
-install-data-am: install-nobase_pkgincludeHEADERS
+install-data-am: install-libsplHEADERS
 
-install-dvi: install-dvi-am
+install-dvi: install-dvi-recursive
 
 install-dvi-am:
 
 install-exec-am:
 
-install-html: install-html-am
+install-html: install-html-recursive
 
 install-html-am:
 
-install-info: install-info-am
+install-info: install-info-recursive
 
 install-info-am:
 
 install-man:
 
-install-pdf: install-pdf-am
+install-pdf: install-pdf-recursive
 
 install-pdf-am:
 
-install-ps: install-ps-am
+install-ps: install-ps-recursive
 
 install-ps-am:
 
 installcheck-am:
 
-maintainer-clean: maintainer-clean-am
+maintainer-clean: maintainer-clean-recursive
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
-mostlyclean: mostlyclean-am
+mostlyclean: mostlyclean-recursive
 
 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
-pdf: pdf-am
+pdf: pdf-recursive
 
 pdf-am:
 
-ps: ps-am
+ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-nobase_pkgincludeHEADERS
+uninstall-am: uninstall-libsplHEADERS
 
-.MAKE: install-am install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libtool ctags distclean distclean-generic \
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       ctags ctags-recursive distclean distclean-generic \
        distclean-libtool distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-data \
        install-data-am install-dvi install-dvi-am install-exec \
        install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-nobase_pkgincludeHEADERS \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
+       install-info-am install-libsplHEADERS install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs installdirs-am \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am uninstall-nobase_pkgincludeHEADERS
+       tags tags-recursive uninstall uninstall-am \
+       uninstall-libsplHEADERS
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/lib/libspl/include/ia32/Makefile.am b/lib/libspl/include/ia32/Makefile.am
new file mode 100644 (file)
index 0000000..081839c
--- /dev/null
@@ -0,0 +1 @@
+SUBDIRS = sys
diff --git a/lib/libspl/include/ia32/Makefile.in b/lib/libspl/include/ia32/Makefile.in
new file mode 100644 (file)
index 0000000..4c39db6
--- /dev/null
@@ -0,0 +1,639 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = lib/libspl/include/ia32
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = sys
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/libspl/include/ia32/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu lib/libspl/include/ia32/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       ctags ctags-recursive distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+       uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/libspl/include/ia32/sys/Makefile.am b/lib/libspl/include/ia32/sys/Makefile.am
new file mode 100644 (file)
index 0000000..c8136ee
--- /dev/null
@@ -0,0 +1,3 @@
+libspldir = $(includedir)/libspl/ia32/sys
+libspl_HEADERS = \
+        $(top_srcdir)/lib/libspl/include/ia32/sys/asm_linkage.h
diff --git a/lib/libspl/include/ia32/sys/Makefile.in b/lib/libspl/include/ia32/sys/Makefile.in
new file mode 100644 (file)
index 0000000..2cf46c9
--- /dev/null
@@ -0,0 +1,538 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = lib/libspl/include/ia32/sys
+DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libspldir)"
+HEADERS = $(libspl_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libspldir = $(includedir)/libspl/ia32/sys
+libspl_HEADERS = \
+        $(top_srcdir)/lib/libspl/include/ia32/sys/asm_linkage.h
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/libspl/include/ia32/sys/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu lib/libspl/include/ia32/sys/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-libsplHEADERS: $(libspl_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libspldir)" || $(MKDIR_P) "$(DESTDIR)$(libspldir)"
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libspldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libspldir)" || exit $$?; \
+       done
+
+uninstall-libsplHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libspldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libspldir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(libspldir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-libsplHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libsplHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool ctags distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-libsplHEADERS install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-libsplHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/libspl/include/rpc/Makefile.am b/lib/libspl/include/rpc/Makefile.am
new file mode 100644 (file)
index 0000000..7a29aba
--- /dev/null
@@ -0,0 +1,4 @@
+libspldir = $(includedir)/libspl/rpc
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/rpc/types.h \
+       $(top_srcdir)/lib/libspl/include/rpc/xdr.h
diff --git a/lib/libspl/include/rpc/Makefile.in b/lib/libspl/include/rpc/Makefile.in
new file mode 100644 (file)
index 0000000..5c946ee
--- /dev/null
@@ -0,0 +1,539 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = lib/libspl/include/rpc
+DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libspldir)"
+HEADERS = $(libspl_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libspldir = $(includedir)/libspl/rpc
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/rpc/types.h \
+       $(top_srcdir)/lib/libspl/include/rpc/xdr.h
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/libspl/include/rpc/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu lib/libspl/include/rpc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-libsplHEADERS: $(libspl_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libspldir)" || $(MKDIR_P) "$(DESTDIR)$(libspldir)"
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libspldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libspldir)" || exit $$?; \
+       done
+
+uninstall-libsplHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libspldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libspldir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(libspldir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-libsplHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libsplHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool ctags distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-libsplHEADERS install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-libsplHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/libspl/include/sys/Makefile.am b/lib/libspl/include/sys/Makefile.am
new file mode 100644 (file)
index 0000000..5f5496f
--- /dev/null
@@ -0,0 +1,55 @@
+SUBDIRS = dktp sysevent
+
+libspldir = $(includedir)/libspl/sys
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/sys/acl.h \
+       $(top_srcdir)/lib/libspl/include/sys/acl_impl.h \
+       $(top_srcdir)/lib/libspl/include/sys/bitmap.h \
+       $(top_srcdir)/lib/libspl/include/sys/byteorder.h \
+       $(top_srcdir)/lib/libspl/include/sys/callb.h \
+       $(top_srcdir)/lib/libspl/include/sys/cmn_err.h \
+       $(top_srcdir)/lib/libspl/include/sys/compress.h \
+       $(top_srcdir)/lib/libspl/include/sys/cred.h \
+       $(top_srcdir)/lib/libspl/include/sys/debug.h \
+       $(top_srcdir)/lib/libspl/include/sys/dkio.h \
+       $(top_srcdir)/lib/libspl/include/sys/dklabel.h \
+       $(top_srcdir)/lib/libspl/include/sys/feature_tests.h \
+       $(top_srcdir)/lib/libspl/include/sys/file.h \
+       $(top_srcdir)/lib/libspl/include/sys/frame.h \
+       $(top_srcdir)/lib/libspl/include/sys/int_limits.h \
+       $(top_srcdir)/lib/libspl/include/sys/int_types.h \
+       $(top_srcdir)/lib/libspl/include/sys/inttypes.h \
+       $(top_srcdir)/lib/libspl/include/sys/isa_defs.h \
+       $(top_srcdir)/lib/libspl/include/sys/kmem.h \
+       $(top_srcdir)/lib/libspl/include/sys/kstat.h \
+       $(top_srcdir)/lib/libspl/include/sys/list.h \
+       $(top_srcdir)/lib/libspl/include/sys/list_impl.h \
+       $(top_srcdir)/lib/libspl/include/sys/machelf.h \
+       $(top_srcdir)/lib/libspl/include/sys/mhd.h \
+       $(top_srcdir)/lib/libspl/include/sys/mkdev.h \
+       $(top_srcdir)/lib/libspl/include/sys/mntent.h \
+       $(top_srcdir)/lib/libspl/include/sys/mnttab.h \
+       $(top_srcdir)/lib/libspl/include/sys/mount.h \
+       $(top_srcdir)/lib/libspl/include/sys/note.h \
+       $(top_srcdir)/lib/libspl/include/sys/param.h \
+       $(top_srcdir)/lib/libspl/include/sys/priv.h \
+       $(top_srcdir)/lib/libspl/include/sys/processor.h \
+       $(top_srcdir)/lib/libspl/include/sys/sdt.h \
+       $(top_srcdir)/lib/libspl/include/sys/stack.h \
+       $(top_srcdir)/lib/libspl/include/sys/stropts.h \
+       $(top_srcdir)/lib/libspl/include/sys/sunddi.h \
+       $(top_srcdir)/lib/libspl/include/sys/sysevent.h \
+       $(top_srcdir)/lib/libspl/include/sys/sysmacros.h \
+       $(top_srcdir)/lib/libspl/include/sys/systeminfo.h \
+       $(top_srcdir)/lib/libspl/include/sys/systm.h \
+       $(top_srcdir)/lib/libspl/include/sys/time.h \
+       $(top_srcdir)/lib/libspl/include/sys/types32.h \
+       $(top_srcdir)/lib/libspl/include/sys/types.h \
+       $(top_srcdir)/lib/libspl/include/sys/tzfile.h \
+       $(top_srcdir)/lib/libspl/include/sys/uio.h \
+       $(top_srcdir)/lib/libspl/include/sys/utsname.h \
+       $(top_srcdir)/lib/libspl/include/sys/va_list.h \
+       $(top_srcdir)/lib/libspl/include/sys/varargs.h \
+       $(top_srcdir)/lib/libspl/include/sys/vnode.h \
+       $(top_srcdir)/lib/libspl/include/sys/vtoc.h \
+       $(top_srcdir)/lib/libspl/include/sys/zone.h
diff --git a/lib/libspl/include/sys/Makefile.in b/lib/libspl/include/sys/Makefile.in
new file mode 100644 (file)
index 0000000..28fa391
--- /dev/null
@@ -0,0 +1,742 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = lib/libspl/include/sys
+DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libspldir)"
+HEADERS = $(libspl_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = dktp sysevent
+libspldir = $(includedir)/libspl/sys
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/sys/acl.h \
+       $(top_srcdir)/lib/libspl/include/sys/acl_impl.h \
+       $(top_srcdir)/lib/libspl/include/sys/bitmap.h \
+       $(top_srcdir)/lib/libspl/include/sys/byteorder.h \
+       $(top_srcdir)/lib/libspl/include/sys/callb.h \
+       $(top_srcdir)/lib/libspl/include/sys/cmn_err.h \
+       $(top_srcdir)/lib/libspl/include/sys/compress.h \
+       $(top_srcdir)/lib/libspl/include/sys/cred.h \
+       $(top_srcdir)/lib/libspl/include/sys/debug.h \
+       $(top_srcdir)/lib/libspl/include/sys/dkio.h \
+       $(top_srcdir)/lib/libspl/include/sys/dklabel.h \
+       $(top_srcdir)/lib/libspl/include/sys/feature_tests.h \
+       $(top_srcdir)/lib/libspl/include/sys/file.h \
+       $(top_srcdir)/lib/libspl/include/sys/frame.h \
+       $(top_srcdir)/lib/libspl/include/sys/int_limits.h \
+       $(top_srcdir)/lib/libspl/include/sys/int_types.h \
+       $(top_srcdir)/lib/libspl/include/sys/inttypes.h \
+       $(top_srcdir)/lib/libspl/include/sys/isa_defs.h \
+       $(top_srcdir)/lib/libspl/include/sys/kmem.h \
+       $(top_srcdir)/lib/libspl/include/sys/kstat.h \
+       $(top_srcdir)/lib/libspl/include/sys/list.h \
+       $(top_srcdir)/lib/libspl/include/sys/list_impl.h \
+       $(top_srcdir)/lib/libspl/include/sys/machelf.h \
+       $(top_srcdir)/lib/libspl/include/sys/mhd.h \
+       $(top_srcdir)/lib/libspl/include/sys/mkdev.h \
+       $(top_srcdir)/lib/libspl/include/sys/mntent.h \
+       $(top_srcdir)/lib/libspl/include/sys/mnttab.h \
+       $(top_srcdir)/lib/libspl/include/sys/mount.h \
+       $(top_srcdir)/lib/libspl/include/sys/note.h \
+       $(top_srcdir)/lib/libspl/include/sys/param.h \
+       $(top_srcdir)/lib/libspl/include/sys/priv.h \
+       $(top_srcdir)/lib/libspl/include/sys/processor.h \
+       $(top_srcdir)/lib/libspl/include/sys/sdt.h \
+       $(top_srcdir)/lib/libspl/include/sys/stack.h \
+       $(top_srcdir)/lib/libspl/include/sys/stropts.h \
+       $(top_srcdir)/lib/libspl/include/sys/sunddi.h \
+       $(top_srcdir)/lib/libspl/include/sys/sysevent.h \
+       $(top_srcdir)/lib/libspl/include/sys/sysmacros.h \
+       $(top_srcdir)/lib/libspl/include/sys/systeminfo.h \
+       $(top_srcdir)/lib/libspl/include/sys/systm.h \
+       $(top_srcdir)/lib/libspl/include/sys/time.h \
+       $(top_srcdir)/lib/libspl/include/sys/types32.h \
+       $(top_srcdir)/lib/libspl/include/sys/types.h \
+       $(top_srcdir)/lib/libspl/include/sys/tzfile.h \
+       $(top_srcdir)/lib/libspl/include/sys/uio.h \
+       $(top_srcdir)/lib/libspl/include/sys/utsname.h \
+       $(top_srcdir)/lib/libspl/include/sys/va_list.h \
+       $(top_srcdir)/lib/libspl/include/sys/varargs.h \
+       $(top_srcdir)/lib/libspl/include/sys/vnode.h \
+       $(top_srcdir)/lib/libspl/include/sys/vtoc.h \
+       $(top_srcdir)/lib/libspl/include/sys/zone.h
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/libspl/include/sys/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu lib/libspl/include/sys/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-libsplHEADERS: $(libspl_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libspldir)" || $(MKDIR_P) "$(DESTDIR)$(libspldir)"
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libspldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libspldir)" || exit $$?; \
+       done
+
+uninstall-libsplHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libspldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libspldir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+       for dir in "$(DESTDIR)$(libspldir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-libsplHEADERS
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-libsplHEADERS
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       ctags ctags-recursive distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-libsplHEADERS install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs installdirs-am \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-recursive uninstall uninstall-am \
+       uninstall-libsplHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/libspl/include/sys/dktp/Makefile.am b/lib/libspl/include/sys/dktp/Makefile.am
new file mode 100644 (file)
index 0000000..9887675
--- /dev/null
@@ -0,0 +1,4 @@
+libspldir = $(includedir)/libspl/sys/dktp
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/sys/dktp/fdisk.h
+
diff --git a/lib/libspl/include/sys/dktp/Makefile.in b/lib/libspl/include/sys/dktp/Makefile.in
new file mode 100644 (file)
index 0000000..02b107e
--- /dev/null
@@ -0,0 +1,538 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = lib/libspl/include/sys/dktp
+DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libspldir)"
+HEADERS = $(libspl_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libspldir = $(includedir)/libspl/sys/dktp
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/sys/dktp/fdisk.h
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/libspl/include/sys/dktp/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu lib/libspl/include/sys/dktp/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-libsplHEADERS: $(libspl_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libspldir)" || $(MKDIR_P) "$(DESTDIR)$(libspldir)"
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libspldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libspldir)" || exit $$?; \
+       done
+
+uninstall-libsplHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libspldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libspldir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(libspldir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-libsplHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libsplHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool ctags distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-libsplHEADERS install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-libsplHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/libspl/include/sys/sysevent/Makefile.am b/lib/libspl/include/sys/sysevent/Makefile.am
new file mode 100644 (file)
index 0000000..b849583
--- /dev/null
@@ -0,0 +1,3 @@
+libspldir = $(includedir)/libspl/sys/sysevent
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/sys/sysevent/eventdefs.h
diff --git a/lib/libspl/include/sys/sysevent/Makefile.in b/lib/libspl/include/sys/sysevent/Makefile.in
new file mode 100644 (file)
index 0000000..71cb626
--- /dev/null
@@ -0,0 +1,538 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = lib/libspl/include/sys/sysevent
+DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libspldir)"
+HEADERS = $(libspl_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libspldir = $(includedir)/libspl/sys/sysevent
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/sys/sysevent/eventdefs.h
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/libspl/include/sys/sysevent/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu lib/libspl/include/sys/sysevent/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-libsplHEADERS: $(libspl_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libspldir)" || $(MKDIR_P) "$(DESTDIR)$(libspldir)"
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libspldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libspldir)" || exit $$?; \
+       done
+
+uninstall-libsplHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libspldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libspldir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(libspldir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-libsplHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libsplHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool ctags distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-libsplHEADERS install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-libsplHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lib/libspl/include/util/Makefile.am b/lib/libspl/include/util/Makefile.am
new file mode 100644 (file)
index 0000000..060e143
--- /dev/null
@@ -0,0 +1,3 @@
+libspldir = $(includedir)/libspl
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/util/sscanf.h
diff --git a/lib/libspl/include/util/Makefile.in b/lib/libspl/include/util/Makefile.in
new file mode 100644 (file)
index 0000000..07cdb78
--- /dev/null
@@ -0,0 +1,538 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = lib/libspl/include/util
+DIST_COMMON = $(libspl_HEADERS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libspldir)"
+HEADERS = $(libspl_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libspldir = $(includedir)/libspl
+libspl_HEADERS = \
+       $(top_srcdir)/lib/libspl/include/util/sscanf.h
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/libspl/include/util/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu lib/libspl/include/util/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-libsplHEADERS: $(libspl_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(libspldir)" || $(MKDIR_P) "$(DESTDIR)$(libspldir)"
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libspldir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libspldir)" || exit $$?; \
+       done
+
+uninstall-libsplHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libspl_HEADERS)'; test -n "$(libspldir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libspldir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libspldir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(libspldir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-libsplHEADERS
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libsplHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool ctags distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-libsplHEADERS install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+       uninstall-am uninstall-libsplHEADERS
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
index 9d5785595f4a5837b27efa3a07a685d79d2db978..bdf0491dc48525203a784f1fe2d508a5ece51f54 100644 (file)
@@ -3,13 +3,11 @@ include $(top_srcdir)/config/Rules.am
 AM_CFLAGS += $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/module/unicode/include \
-       -I${top_srcdir}/lib/libspl/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 lib_LTLIBRARIES = libunicode.la
 
 libunicode_la_SOURCES = \
-       ${top_srcdir}/module/unicode/u8_textprep.c \
-       ${top_srcdir}/module/unicode/uconv.c \
-       ${top_srcdir}/module/unicode/include/sys/u8_textprep.h \
-       ${top_srcdir}/module/unicode/include/sys/u8_textprep_data.h
+       $(top_srcdir)/module/unicode/u8_textprep.c \
+       $(top_srcdir)/module/unicode/uconv.c
index 43145f277d68cc7bc66c00ebcb8c0e4972109114..035a243c3cd010267d501a3b6b080c442c9340ea 100644 (file)
@@ -144,14 +144,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -189,7 +187,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -204,7 +201,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -223,7 +219,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -233,7 +228,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -304,9 +298,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/module/unicode/include \
-       -I${top_srcdir}/lib/libspl/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
@@ -315,10 +308,8 @@ AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 lib_LTLIBRARIES = libunicode.la
 libunicode_la_SOURCES = \
-       ${top_srcdir}/module/unicode/u8_textprep.c \
-       ${top_srcdir}/module/unicode/uconv.c \
-       ${top_srcdir}/module/unicode/include/sys/u8_textprep.h \
-       ${top_srcdir}/module/unicode/include/sys/u8_textprep_data.h
+       $(top_srcdir)/module/unicode/u8_textprep.c \
+       $(top_srcdir)/module/unicode/uconv.c
 
 all: all-am
 
@@ -421,21 +412,21 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-u8_textprep.lo: ${top_srcdir}/module/unicode/u8_textprep.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT u8_textprep.lo -MD -MP -MF $(DEPDIR)/u8_textprep.Tpo -c -o u8_textprep.lo `test -f '${top_srcdir}/module/unicode/u8_textprep.c' || echo '$(srcdir)/'`${top_srcdir}/module/unicode/u8_textprep.c
+u8_textprep.lo: $(top_srcdir)/module/unicode/u8_textprep.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT u8_textprep.lo -MD -MP -MF $(DEPDIR)/u8_textprep.Tpo -c -o u8_textprep.lo `test -f '$(top_srcdir)/module/unicode/u8_textprep.c' || echo '$(srcdir)/'`$(top_srcdir)/module/unicode/u8_textprep.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/u8_textprep.Tpo $(DEPDIR)/u8_textprep.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/unicode/u8_textprep.c' object='u8_textprep.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/unicode/u8_textprep.c' object='u8_textprep.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o u8_textprep.lo `test -f '${top_srcdir}/module/unicode/u8_textprep.c' || echo '$(srcdir)/'`${top_srcdir}/module/unicode/u8_textprep.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o u8_textprep.lo `test -f '$(top_srcdir)/module/unicode/u8_textprep.c' || echo '$(srcdir)/'`$(top_srcdir)/module/unicode/u8_textprep.c
 
-uconv.lo: ${top_srcdir}/module/unicode/uconv.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uconv.lo -MD -MP -MF $(DEPDIR)/uconv.Tpo -c -o uconv.lo `test -f '${top_srcdir}/module/unicode/uconv.c' || echo '$(srcdir)/'`${top_srcdir}/module/unicode/uconv.c
+uconv.lo: $(top_srcdir)/module/unicode/uconv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uconv.lo -MD -MP -MF $(DEPDIR)/uconv.Tpo -c -o uconv.lo `test -f '$(top_srcdir)/module/unicode/uconv.c' || echo '$(srcdir)/'`$(top_srcdir)/module/unicode/uconv.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uconv.Tpo $(DEPDIR)/uconv.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/unicode/uconv.c' object='uconv.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/unicode/uconv.c' object='uconv.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uconv.lo `test -f '${top_srcdir}/module/unicode/uconv.c' || echo '$(srcdir)/'`${top_srcdir}/module/unicode/uconv.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uconv.lo `test -f '$(top_srcdir)/module/unicode/uconv.c' || echo '$(srcdir)/'`$(top_srcdir)/module/unicode/uconv.c
 
 mostlyclean-libtool:
        -rm -f *.lo
index 6edca7313e8e936ec400746a123280bedcd3ac6b..6ff181d7a8f35bae899f54170145efe4dbf5cb56 100644 (file)
@@ -3,25 +3,21 @@ include $(top_srcdir)/config/Rules.am
 AM_CFLAGS += $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/module/avl/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 lib_LTLIBRARIES = libuutil.la
 
-libuutil_la_LIBADD = ${top_srcdir}/lib/libavl/libavl.la
+libuutil_la_LIBADD = $(top_builddir)/lib/libavl/libavl.la
 
 libuutil_la_SOURCES = \
-       ${top_srcdir}/lib/libuutil/uu_alloc.c \
-       ${top_srcdir}/lib/libuutil/uu_avl.c \
-       ${top_srcdir}/lib/libuutil/uu_dprintf.c \
-       ${top_srcdir}/lib/libuutil/uu_ident.c \
-       ${top_srcdir}/lib/libuutil/uu_list.c \
-       ${top_srcdir}/lib/libuutil/uu_misc.c \
-       ${top_srcdir}/lib/libuutil/uu_open.c \
-       ${top_srcdir}/lib/libuutil/uu_pname.c \
-       ${top_srcdir}/lib/libuutil/uu_string.c \
-       ${top_srcdir}/lib/libuutil/uu_strtoint.c \
-       ${top_srcdir}/lib/libuutil/include/libuutil.h \
-       ${top_srcdir}/lib/libuutil/include/libuutil_common.h \
-       ${top_srcdir}/lib/libuutil/include/libuutil_impl.h
+       $(top_srcdir)/lib/libuutil/uu_alloc.c \
+       $(top_srcdir)/lib/libuutil/uu_avl.c \
+       $(top_srcdir)/lib/libuutil/uu_dprintf.c \
+       $(top_srcdir)/lib/libuutil/uu_ident.c \
+       $(top_srcdir)/lib/libuutil/uu_list.c \
+       $(top_srcdir)/lib/libuutil/uu_misc.c \
+       $(top_srcdir)/lib/libuutil/uu_open.c \
+       $(top_srcdir)/lib/libuutil/uu_pname.c \
+       $(top_srcdir)/lib/libuutil/uu_string.c \
+       $(top_srcdir)/lib/libuutil/uu_strtoint.c
index 01d8b98bf13e1a4f7b4da2d9a5d45f26d796324d..34a1248a45697e7566013fced2a047d7348ac337 100644 (file)
@@ -98,7 +98,7 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
-libuutil_la_DEPENDENCIES = ${top_srcdir}/lib/libavl/libavl.la
+libuutil_la_DEPENDENCIES = $(top_builddir)/lib/libavl/libavl.la
 am_libuutil_la_OBJECTS = uu_alloc.lo uu_avl.lo uu_dprintf.lo \
        uu_ident.lo uu_list.lo uu_misc.lo uu_open.lo uu_pname.lo \
        uu_string.lo uu_strtoint.lo
@@ -146,14 +146,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -191,7 +189,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -206,7 +203,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -225,7 +221,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -235,7 +230,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -306,10 +300,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/module/avl/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
@@ -317,21 +309,18 @@ AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        -D_LARGEFILE64_SOURCE -DTEXT_DOMAIN=\"zfs-linux-user\" \
        $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 lib_LTLIBRARIES = libuutil.la
-libuutil_la_LIBADD = ${top_srcdir}/lib/libavl/libavl.la
+libuutil_la_LIBADD = $(top_builddir)/lib/libavl/libavl.la
 libuutil_la_SOURCES = \
-       ${top_srcdir}/lib/libuutil/uu_alloc.c \
-       ${top_srcdir}/lib/libuutil/uu_avl.c \
-       ${top_srcdir}/lib/libuutil/uu_dprintf.c \
-       ${top_srcdir}/lib/libuutil/uu_ident.c \
-       ${top_srcdir}/lib/libuutil/uu_list.c \
-       ${top_srcdir}/lib/libuutil/uu_misc.c \
-       ${top_srcdir}/lib/libuutil/uu_open.c \
-       ${top_srcdir}/lib/libuutil/uu_pname.c \
-       ${top_srcdir}/lib/libuutil/uu_string.c \
-       ${top_srcdir}/lib/libuutil/uu_strtoint.c \
-       ${top_srcdir}/lib/libuutil/include/libuutil.h \
-       ${top_srcdir}/lib/libuutil/include/libuutil_common.h \
-       ${top_srcdir}/lib/libuutil/include/libuutil_impl.h
+       $(top_srcdir)/lib/libuutil/uu_alloc.c \
+       $(top_srcdir)/lib/libuutil/uu_avl.c \
+       $(top_srcdir)/lib/libuutil/uu_dprintf.c \
+       $(top_srcdir)/lib/libuutil/uu_ident.c \
+       $(top_srcdir)/lib/libuutil/uu_list.c \
+       $(top_srcdir)/lib/libuutil/uu_misc.c \
+       $(top_srcdir)/lib/libuutil/uu_open.c \
+       $(top_srcdir)/lib/libuutil/uu_pname.c \
+       $(top_srcdir)/lib/libuutil/uu_string.c \
+       $(top_srcdir)/lib/libuutil/uu_strtoint.c
 
 all: all-am
 
@@ -442,85 +431,85 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-uu_alloc.lo: ${top_srcdir}/lib/libuutil/uu_alloc.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_alloc.lo -MD -MP -MF $(DEPDIR)/uu_alloc.Tpo -c -o uu_alloc.lo `test -f '${top_srcdir}/lib/libuutil/uu_alloc.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_alloc.c
+uu_alloc.lo: $(top_srcdir)/lib/libuutil/uu_alloc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_alloc.lo -MD -MP -MF $(DEPDIR)/uu_alloc.Tpo -c -o uu_alloc.lo `test -f '$(top_srcdir)/lib/libuutil/uu_alloc.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_alloc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uu_alloc.Tpo $(DEPDIR)/uu_alloc.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libuutil/uu_alloc.c' object='uu_alloc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libuutil/uu_alloc.c' object='uu_alloc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_alloc.lo `test -f '${top_srcdir}/lib/libuutil/uu_alloc.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_alloc.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_alloc.lo `test -f '$(top_srcdir)/lib/libuutil/uu_alloc.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_alloc.c
 
-uu_avl.lo: ${top_srcdir}/lib/libuutil/uu_avl.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_avl.lo -MD -MP -MF $(DEPDIR)/uu_avl.Tpo -c -o uu_avl.lo `test -f '${top_srcdir}/lib/libuutil/uu_avl.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_avl.c
+uu_avl.lo: $(top_srcdir)/lib/libuutil/uu_avl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_avl.lo -MD -MP -MF $(DEPDIR)/uu_avl.Tpo -c -o uu_avl.lo `test -f '$(top_srcdir)/lib/libuutil/uu_avl.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_avl.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uu_avl.Tpo $(DEPDIR)/uu_avl.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libuutil/uu_avl.c' object='uu_avl.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libuutil/uu_avl.c' object='uu_avl.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_avl.lo `test -f '${top_srcdir}/lib/libuutil/uu_avl.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_avl.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_avl.lo `test -f '$(top_srcdir)/lib/libuutil/uu_avl.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_avl.c
 
-uu_dprintf.lo: ${top_srcdir}/lib/libuutil/uu_dprintf.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_dprintf.lo -MD -MP -MF $(DEPDIR)/uu_dprintf.Tpo -c -o uu_dprintf.lo `test -f '${top_srcdir}/lib/libuutil/uu_dprintf.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_dprintf.c
+uu_dprintf.lo: $(top_srcdir)/lib/libuutil/uu_dprintf.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_dprintf.lo -MD -MP -MF $(DEPDIR)/uu_dprintf.Tpo -c -o uu_dprintf.lo `test -f '$(top_srcdir)/lib/libuutil/uu_dprintf.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_dprintf.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uu_dprintf.Tpo $(DEPDIR)/uu_dprintf.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libuutil/uu_dprintf.c' object='uu_dprintf.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libuutil/uu_dprintf.c' object='uu_dprintf.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_dprintf.lo `test -f '${top_srcdir}/lib/libuutil/uu_dprintf.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_dprintf.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_dprintf.lo `test -f '$(top_srcdir)/lib/libuutil/uu_dprintf.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_dprintf.c
 
-uu_ident.lo: ${top_srcdir}/lib/libuutil/uu_ident.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_ident.lo -MD -MP -MF $(DEPDIR)/uu_ident.Tpo -c -o uu_ident.lo `test -f '${top_srcdir}/lib/libuutil/uu_ident.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_ident.c
+uu_ident.lo: $(top_srcdir)/lib/libuutil/uu_ident.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_ident.lo -MD -MP -MF $(DEPDIR)/uu_ident.Tpo -c -o uu_ident.lo `test -f '$(top_srcdir)/lib/libuutil/uu_ident.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_ident.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uu_ident.Tpo $(DEPDIR)/uu_ident.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libuutil/uu_ident.c' object='uu_ident.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libuutil/uu_ident.c' object='uu_ident.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_ident.lo `test -f '${top_srcdir}/lib/libuutil/uu_ident.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_ident.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_ident.lo `test -f '$(top_srcdir)/lib/libuutil/uu_ident.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_ident.c
 
-uu_list.lo: ${top_srcdir}/lib/libuutil/uu_list.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_list.lo -MD -MP -MF $(DEPDIR)/uu_list.Tpo -c -o uu_list.lo `test -f '${top_srcdir}/lib/libuutil/uu_list.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_list.c
+uu_list.lo: $(top_srcdir)/lib/libuutil/uu_list.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_list.lo -MD -MP -MF $(DEPDIR)/uu_list.Tpo -c -o uu_list.lo `test -f '$(top_srcdir)/lib/libuutil/uu_list.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_list.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uu_list.Tpo $(DEPDIR)/uu_list.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libuutil/uu_list.c' object='uu_list.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libuutil/uu_list.c' object='uu_list.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_list.lo `test -f '${top_srcdir}/lib/libuutil/uu_list.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_list.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_list.lo `test -f '$(top_srcdir)/lib/libuutil/uu_list.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_list.c
 
-uu_misc.lo: ${top_srcdir}/lib/libuutil/uu_misc.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_misc.lo -MD -MP -MF $(DEPDIR)/uu_misc.Tpo -c -o uu_misc.lo `test -f '${top_srcdir}/lib/libuutil/uu_misc.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_misc.c
+uu_misc.lo: $(top_srcdir)/lib/libuutil/uu_misc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_misc.lo -MD -MP -MF $(DEPDIR)/uu_misc.Tpo -c -o uu_misc.lo `test -f '$(top_srcdir)/lib/libuutil/uu_misc.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_misc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uu_misc.Tpo $(DEPDIR)/uu_misc.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libuutil/uu_misc.c' object='uu_misc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libuutil/uu_misc.c' object='uu_misc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_misc.lo `test -f '${top_srcdir}/lib/libuutil/uu_misc.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_misc.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_misc.lo `test -f '$(top_srcdir)/lib/libuutil/uu_misc.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_misc.c
 
-uu_open.lo: ${top_srcdir}/lib/libuutil/uu_open.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_open.lo -MD -MP -MF $(DEPDIR)/uu_open.Tpo -c -o uu_open.lo `test -f '${top_srcdir}/lib/libuutil/uu_open.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_open.c
+uu_open.lo: $(top_srcdir)/lib/libuutil/uu_open.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_open.lo -MD -MP -MF $(DEPDIR)/uu_open.Tpo -c -o uu_open.lo `test -f '$(top_srcdir)/lib/libuutil/uu_open.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_open.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uu_open.Tpo $(DEPDIR)/uu_open.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libuutil/uu_open.c' object='uu_open.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libuutil/uu_open.c' object='uu_open.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_open.lo `test -f '${top_srcdir}/lib/libuutil/uu_open.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_open.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_open.lo `test -f '$(top_srcdir)/lib/libuutil/uu_open.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_open.c
 
-uu_pname.lo: ${top_srcdir}/lib/libuutil/uu_pname.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_pname.lo -MD -MP -MF $(DEPDIR)/uu_pname.Tpo -c -o uu_pname.lo `test -f '${top_srcdir}/lib/libuutil/uu_pname.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_pname.c
+uu_pname.lo: $(top_srcdir)/lib/libuutil/uu_pname.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_pname.lo -MD -MP -MF $(DEPDIR)/uu_pname.Tpo -c -o uu_pname.lo `test -f '$(top_srcdir)/lib/libuutil/uu_pname.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_pname.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uu_pname.Tpo $(DEPDIR)/uu_pname.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libuutil/uu_pname.c' object='uu_pname.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libuutil/uu_pname.c' object='uu_pname.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_pname.lo `test -f '${top_srcdir}/lib/libuutil/uu_pname.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_pname.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_pname.lo `test -f '$(top_srcdir)/lib/libuutil/uu_pname.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_pname.c
 
-uu_string.lo: ${top_srcdir}/lib/libuutil/uu_string.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_string.lo -MD -MP -MF $(DEPDIR)/uu_string.Tpo -c -o uu_string.lo `test -f '${top_srcdir}/lib/libuutil/uu_string.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_string.c
+uu_string.lo: $(top_srcdir)/lib/libuutil/uu_string.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_string.lo -MD -MP -MF $(DEPDIR)/uu_string.Tpo -c -o uu_string.lo `test -f '$(top_srcdir)/lib/libuutil/uu_string.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_string.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uu_string.Tpo $(DEPDIR)/uu_string.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libuutil/uu_string.c' object='uu_string.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libuutil/uu_string.c' object='uu_string.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_string.lo `test -f '${top_srcdir}/lib/libuutil/uu_string.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_string.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_string.lo `test -f '$(top_srcdir)/lib/libuutil/uu_string.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_string.c
 
-uu_strtoint.lo: ${top_srcdir}/lib/libuutil/uu_strtoint.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_strtoint.lo -MD -MP -MF $(DEPDIR)/uu_strtoint.Tpo -c -o uu_strtoint.lo `test -f '${top_srcdir}/lib/libuutil/uu_strtoint.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_strtoint.c
+uu_strtoint.lo: $(top_srcdir)/lib/libuutil/uu_strtoint.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uu_strtoint.lo -MD -MP -MF $(DEPDIR)/uu_strtoint.Tpo -c -o uu_strtoint.lo `test -f '$(top_srcdir)/lib/libuutil/uu_strtoint.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_strtoint.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uu_strtoint.Tpo $(DEPDIR)/uu_strtoint.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libuutil/uu_strtoint.c' object='uu_strtoint.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libuutil/uu_strtoint.c' object='uu_strtoint.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_strtoint.lo `test -f '${top_srcdir}/lib/libuutil/uu_strtoint.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libuutil/uu_strtoint.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uu_strtoint.lo `test -f '$(top_srcdir)/lib/libuutil/uu_strtoint.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libuutil/uu_strtoint.c
 
 mostlyclean-libtool:
        -rm -f *.lo
diff --git a/lib/libuutil/include/libuutil.h b/lib/libuutil/include/libuutil.h
deleted file mode 100644 (file)
index 6675424..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _LIBUUTIL_H
-#define        _LIBUUTIL_H
-
-#include <sys/types.h>
-#include <stdarg.h>
-#include <stdio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Standard flags codes.
- */
-#define        UU_DEFAULT              0
-
-/*
- * Standard error codes.
- */
-#define        UU_ERROR_NONE           0       /* no error */
-#define        UU_ERROR_INVALID_ARGUMENT 1     /* invalid argument */
-#define        UU_ERROR_UNKNOWN_FLAG   2       /* passed flag invalid */
-#define        UU_ERROR_NO_MEMORY      3       /* out of memory */
-#define        UU_ERROR_CALLBACK_FAILED 4      /* callback-initiated error */
-#define        UU_ERROR_NOT_SUPPORTED  5       /* operation not supported */
-#define        UU_ERROR_EMPTY          6       /* no value provided */
-#define        UU_ERROR_UNDERFLOW      7       /* value is too small */
-#define        UU_ERROR_OVERFLOW       8       /* value is too value */
-#define        UU_ERROR_INVALID_CHAR   9       /* value contains unexpected char */
-#define        UU_ERROR_INVALID_DIGIT  10      /* value contains digit not in base */
-
-#define        UU_ERROR_SYSTEM         99      /* underlying system error */
-#define        UU_ERROR_UNKNOWN        100     /* error status not known */
-
-/*
- * Standard program exit codes.
- */
-#define        UU_EXIT_OK      (*(uu_exit_ok()))
-#define        UU_EXIT_FATAL   (*(uu_exit_fatal()))
-#define        UU_EXIT_USAGE   (*(uu_exit_usage()))
-
-/*
- * Exit status profiles.
- */
-#define        UU_PROFILE_DEFAULT      0
-#define        UU_PROFILE_LAUNCHER     1
-
-/*
- * Error reporting functions.
- */
-uint32_t uu_error(void);
-const char *uu_strerror(uint32_t);
-
-/*
- * Program notification functions.
- */
-extern void uu_alt_exit(int);
-extern const char *uu_setpname(char *);
-extern const char *uu_getpname(void);
-/*PRINTFLIKE1*/
-extern void uu_warn(const char *, ...);
-extern void uu_vwarn(const char *, va_list);
-/*PRINTFLIKE1*/
-extern void uu_die(const char *, ...) __NORETURN;
-extern void uu_vdie(const char *, va_list) __NORETURN;
-/*PRINTFLIKE2*/
-extern void uu_xdie(int, const char *, ...) __NORETURN;
-extern void uu_vxdie(int, const char *, va_list) __NORETURN;
-
-/*
- * Exit status functions (not to be used directly)
- */
-extern int *uu_exit_ok(void);
-extern int *uu_exit_fatal(void);
-extern int *uu_exit_usage(void);
-
-/*
- * string->number conversions
- */
-extern int uu_strtoint(const char *, void *, size_t, int, int64_t, int64_t);
-extern int uu_strtouint(const char *, void *, size_t, int, uint64_t, uint64_t);
-
-/*
- * Debug print facility functions.
- */
-typedef struct uu_dprintf uu_dprintf_t;
-
-typedef enum {
-       UU_DPRINTF_SILENT,
-       UU_DPRINTF_FATAL,
-       UU_DPRINTF_WARNING,
-       UU_DPRINTF_NOTICE,
-       UU_DPRINTF_INFO,
-       UU_DPRINTF_DEBUG
-} uu_dprintf_severity_t;
-
-extern uu_dprintf_t *uu_dprintf_create(const char *, uu_dprintf_severity_t,
-    uint_t);
-/*PRINTFLIKE3*/
-extern void uu_dprintf(uu_dprintf_t *, uu_dprintf_severity_t,
-    const char *, ...);
-extern void uu_dprintf_destroy(uu_dprintf_t *);
-extern const char *uu_dprintf_getname(uu_dprintf_t *);
-
-/*
- * Identifier test flags and function.
- */
-#define        UU_NAME_DOMAIN          0x1     /* allow SUNW, or com.sun, prefix */
-#define        UU_NAME_PATH            0x2     /* allow '/'-delimited paths */
-
-int uu_check_name(const char *, uint_t);
-
-/*
- * File creation functions.
- */
-extern int uu_open_tmp(const char *dir, uint_t uflags);
-
-/*
- * Convenience functions.
- */
-#define        UU_NELEM(a)     (sizeof (a) / sizeof ((a)[0]))
-
-/*PRINTFLIKE1*/
-extern char *uu_msprintf(const char *format, ...);
-extern void *uu_zalloc(size_t);
-extern char *uu_strdup(const char *);
-extern void uu_free(void *);
-
-extern boolean_t uu_strcaseeq(const char *a, const char *b);
-extern boolean_t uu_streq(const char *a, const char *b);
-extern char *uu_strndup(const char *s, size_t n);
-extern boolean_t uu_strbw(const char *a, const char *b);
-extern void *uu_memdup(const void *buf, size_t sz);
-extern void uu_dump(FILE *out, const char *prefix, const void *buf, size_t len);
-
-/*
- * Comparison function type definition.
- *   Developers should be careful in their use of the _private argument. If you
- *   break interface guarantees, you get undefined behavior.
- */
-typedef int uu_compare_fn_t(const void *__left, const void *__right,
-    void *__private);
-
-/*
- * Walk variant flags.
- *   A data structure need not provide support for all variants and
- *   combinations.  Refer to the appropriate documentation.
- */
-#define        UU_WALK_ROBUST          0x00000001      /* walk can survive removes */
-#define        UU_WALK_REVERSE         0x00000002      /* reverse walk order */
-
-#define        UU_WALK_PREORDER        0x00000010      /* walk tree in pre-order */
-#define        UU_WALK_POSTORDER       0x00000020      /* walk tree in post-order */
-
-/*
- * Walk callback function return codes.
- */
-#define        UU_WALK_ERROR           -1
-#define        UU_WALK_NEXT            0
-#define        UU_WALK_DONE            1
-
-/*
- * Walk callback function type definition.
- */
-typedef int uu_walk_fn_t(void *_elem, void *_private);
-
-/*
- * lists: opaque structures
- */
-typedef struct uu_list_pool uu_list_pool_t;
-typedef struct uu_list uu_list_t;
-
-typedef struct uu_list_node {
-       uintptr_t uln_opaque[2];
-} uu_list_node_t;
-
-typedef struct uu_list_walk uu_list_walk_t;
-
-typedef uintptr_t uu_list_index_t;
-
-/*
- * lists: interface
- *
- * basic usage:
- *     typedef struct foo {
- *             ...
- *             uu_list_node_t foo_node;
- *             ...
- *     } foo_t;
- *
- *     static int
- *     foo_compare(void *l_arg, void *r_arg, void *private)
- *     {
- *             foo_t *l = l_arg;
- *             foo_t *r = r_arg;
- *
- *             if (... l greater than r ...)
- *                     return (1);
- *             if (... l less than r ...)
- *                     return (-1);
- *             return (0);
- *     }
- *
- *     ...
- *             // at initialization time
- *             foo_pool = uu_list_pool_create("foo_pool",
- *                 sizeof (foo_t), offsetof(foo_t, foo_node), foo_compare,
- *                 debugging? 0 : UU_AVL_POOL_DEBUG);
- *     ...
- */
-uu_list_pool_t *uu_list_pool_create(const char *, size_t, size_t,
-    uu_compare_fn_t *, uint32_t);
-#define        UU_LIST_POOL_DEBUG      0x00000001
-
-void uu_list_pool_destroy(uu_list_pool_t *);
-
-/*
- * usage:
- *
- *     foo_t *a;
- *     a = malloc(sizeof(*a));
- *     uu_list_node_init(a, &a->foo_list, pool);
- *     ...
- *     uu_list_node_fini(a, &a->foo_list, pool);
- *     free(a);
- */
-void uu_list_node_init(void *, uu_list_node_t *, uu_list_pool_t *);
-void uu_list_node_fini(void *, uu_list_node_t *, uu_list_pool_t *);
-
-uu_list_t *uu_list_create(uu_list_pool_t *, void *_parent, uint32_t);
-#define        UU_LIST_DEBUG   0x00000001
-#define        UU_LIST_SORTED  0x00000002      /* list is sorted */
-
-void uu_list_destroy(uu_list_t *);     /* list must be empty */
-
-size_t uu_list_numnodes(uu_list_t *);
-
-void *uu_list_first(uu_list_t *);
-void *uu_list_last(uu_list_t *);
-
-void *uu_list_next(uu_list_t *, void *);
-void *uu_list_prev(uu_list_t *, void *);
-
-int uu_list_walk(uu_list_t *, uu_walk_fn_t *, void *, uint32_t);
-
-uu_list_walk_t *uu_list_walk_start(uu_list_t *, uint32_t);
-void *uu_list_walk_next(uu_list_walk_t *);
-void uu_list_walk_end(uu_list_walk_t *);
-
-void *uu_list_find(uu_list_t *, void *, void *, uu_list_index_t *);
-void uu_list_insert(uu_list_t *, void *, uu_list_index_t);
-
-void *uu_list_nearest_next(uu_list_t *, uu_list_index_t);
-void *uu_list_nearest_prev(uu_list_t *, uu_list_index_t);
-
-void *uu_list_teardown(uu_list_t *, void **);
-
-void uu_list_remove(uu_list_t *, void *);
-
-/*
- * lists: interfaces for non-sorted lists only
- */
-int uu_list_insert_before(uu_list_t *, void *_target, void *_elem);
-int uu_list_insert_after(uu_list_t *, void *_target, void *_elem);
-
-/*
- * avl trees: opaque structures
- */
-typedef struct uu_avl_pool uu_avl_pool_t;
-typedef struct uu_avl uu_avl_t;
-
-typedef struct uu_avl_node {
-#ifdef _LP64
-       uintptr_t uan_opaque[3];
-#else
-       uintptr_t uan_opaque[4];
-#endif
-} uu_avl_node_t;
-
-typedef struct uu_avl_walk uu_avl_walk_t;
-
-typedef uintptr_t uu_avl_index_t;
-
-/*
- * avl trees: interface
- *
- * basic usage:
- *     typedef struct foo {
- *             ...
- *             uu_avl_node_t foo_node;
- *             ...
- *     } foo_t;
- *
- *     static int
- *     foo_compare(void *l_arg, void *r_arg, void *private)
- *     {
- *             foo_t *l = l_arg;
- *             foo_t *r = r_arg;
- *
- *             if (... l greater than r ...)
- *                     return (1);
- *             if (... l less than r ...)
- *                     return (-1);
- *             return (0);
- *     }
- *
- *     ...
- *             // at initialization time
- *             foo_pool = uu_avl_pool_create("foo_pool",
- *                 sizeof (foo_t), offsetof(foo_t, foo_node), foo_compare,
- *                 debugging? 0 : UU_AVL_POOL_DEBUG);
- *     ...
- */
-uu_avl_pool_t *uu_avl_pool_create(const char *, size_t, size_t,
-    uu_compare_fn_t *, uint32_t);
-#define        UU_AVL_POOL_DEBUG       0x00000001
-
-void uu_avl_pool_destroy(uu_avl_pool_t *);
-
-/*
- * usage:
- *
- *     foo_t *a;
- *     a = malloc(sizeof(*a));
- *     uu_avl_node_init(a, &a->foo_avl, pool);
- *     ...
- *     uu_avl_node_fini(a, &a->foo_avl, pool);
- *     free(a);
- */
-void uu_avl_node_init(void *, uu_avl_node_t *, uu_avl_pool_t *);
-void uu_avl_node_fini(void *, uu_avl_node_t *, uu_avl_pool_t *);
-
-uu_avl_t *uu_avl_create(uu_avl_pool_t *, void *_parent, uint32_t);
-#define        UU_AVL_DEBUG    0x00000001
-
-void uu_avl_destroy(uu_avl_t *);       /* list must be empty */
-
-size_t uu_avl_numnodes(uu_avl_t *);
-
-void *uu_avl_first(uu_avl_t *);
-void *uu_avl_last(uu_avl_t *);
-
-void *uu_avl_next(uu_avl_t *, void *);
-void *uu_avl_prev(uu_avl_t *, void *);
-
-int uu_avl_walk(uu_avl_t *, uu_walk_fn_t *, void *, uint32_t);
-
-uu_avl_walk_t *uu_avl_walk_start(uu_avl_t *, uint32_t);
-void *uu_avl_walk_next(uu_avl_walk_t *);
-void uu_avl_walk_end(uu_avl_walk_t *);
-
-void *uu_avl_find(uu_avl_t *, void *, void *, uu_avl_index_t *);
-void uu_avl_insert(uu_avl_t *, void *, uu_avl_index_t);
-
-void *uu_avl_nearest_next(uu_avl_t *, uu_avl_index_t);
-void *uu_avl_nearest_prev(uu_avl_t *, uu_avl_index_t);
-
-void *uu_avl_teardown(uu_avl_t *, void **);
-
-void uu_avl_remove(uu_avl_t *, void *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _LIBUUTIL_H */
diff --git a/lib/libuutil/include/libuutil_common.h b/lib/libuutil/include/libuutil_common.h
deleted file mode 100644 (file)
index 52ac488..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _LIBUUTIL_COMMON_H
-#define        _LIBUUTIL_COMMON_H
-
-
-
-#include <libuutil.h>
-#include <libuutil_impl.h>
-
-#endif /* _LIBUUTIL_COMMON_H */
diff --git a/lib/libuutil/include/libuutil_impl.h b/lib/libuutil/include/libuutil_impl.h
deleted file mode 100644 (file)
index f978b47..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _LIBUUTIL_IMPL_H
-#define        _LIBUUTIL_IMPL_H
-
-
-
-#include <libuutil.h>
-#include <pthread.h>
-
-#include <sys/avl_impl.h>
-#include <sys/byteorder.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void uu_set_error(uint_t);
-
-
-/*PRINTFLIKE1*/
-void uu_panic(const char *format, ...);
-
-
-struct uu_dprintf {
-       char    *uud_name;
-       uu_dprintf_severity_t uud_severity;
-       uint_t  uud_flags;
-};
-
-/*
- * For debugging purposes, libuutil keeps around linked lists of all uu_lists
- * and uu_avls, along with pointers to their parents.  These can cause false
- * negatives when looking for memory leaks, so we encode the pointers by
- * storing them with swapped endianness;  this is not perfect, but it's about
- * the best we can do without wasting a lot of space.
- */
-#ifdef _LP64
-#define        UU_PTR_ENCODE(ptr)              BSWAP_64((uintptr_t)(void *)(ptr))
-#else
-#define        UU_PTR_ENCODE(ptr)              BSWAP_32((uintptr_t)(void *)(ptr))
-#endif
-
-#define        UU_PTR_DECODE(ptr)              ((void *)UU_PTR_ENCODE(ptr))
-
-/*
- * uu_list structures
- */
-typedef struct uu_list_node_impl {
-       struct uu_list_node_impl *uln_next;
-       struct uu_list_node_impl *uln_prev;
-} uu_list_node_impl_t;
-
-struct uu_list_walk {
-       uu_list_walk_t  *ulw_next;
-       uu_list_walk_t  *ulw_prev;
-
-       uu_list_t       *ulw_list;
-       int8_t          ulw_dir;
-       uint8_t         ulw_robust;
-       uu_list_node_impl_t *ulw_next_result;
-};
-
-struct uu_list {
-       uintptr_t       ul_next_enc;
-       uintptr_t       ul_prev_enc;
-
-       uu_list_pool_t  *ul_pool;
-       uintptr_t       ul_parent_enc;  /* encoded parent pointer */
-       size_t          ul_offset;
-       size_t          ul_numnodes;
-       uint8_t         ul_debug;
-       uint8_t         ul_sorted;
-       uint8_t         ul_index;       /* mark for uu_list_index_ts */
-
-       uu_list_node_impl_t ul_null_node;
-       uu_list_walk_t  ul_null_walk;   /* for robust walkers */
-};
-
-#define        UU_LIST_PTR(ptr)                ((uu_list_t *)UU_PTR_DECODE(ptr))
-
-#define        UU_LIST_POOL_MAXNAME    64
-
-struct uu_list_pool {
-       uu_list_pool_t  *ulp_next;
-       uu_list_pool_t  *ulp_prev;
-
-       char            ulp_name[UU_LIST_POOL_MAXNAME];
-       size_t          ulp_nodeoffset;
-       size_t          ulp_objsize;
-       uu_compare_fn_t *ulp_cmp;
-       uint8_t         ulp_debug;
-       uint8_t         ulp_last_index;
-       pthread_mutex_t ulp_lock;               /* protects null_list */
-       uu_list_t       ulp_null_list;
-};
-
-/*
- * uu_avl structures
- */
-typedef struct avl_node                uu_avl_node_impl_t;
-
-struct uu_avl_walk {
-       uu_avl_walk_t   *uaw_next;
-       uu_avl_walk_t   *uaw_prev;
-
-       uu_avl_t        *uaw_avl;
-       void            *uaw_next_result;
-       int8_t          uaw_dir;
-       uint8_t         uaw_robust;
-};
-
-struct uu_avl {
-       uintptr_t       ua_next_enc;
-       uintptr_t       ua_prev_enc;
-
-       uu_avl_pool_t   *ua_pool;
-       uintptr_t       ua_parent_enc;
-       uint8_t         ua_debug;
-       uint8_t         ua_index;       /* mark for uu_avl_index_ts */
-
-       struct avl_tree ua_tree;
-       uu_avl_walk_t   ua_null_walk;
-};
-
-#define        UU_AVL_PTR(x)           ((uu_avl_t *)UU_PTR_DECODE(x))
-
-#define        UU_AVL_POOL_MAXNAME     64
-
-struct uu_avl_pool {
-       uu_avl_pool_t   *uap_next;
-       uu_avl_pool_t   *uap_prev;
-
-       char            uap_name[UU_AVL_POOL_MAXNAME];
-       size_t          uap_nodeoffset;
-       size_t          uap_objsize;
-       uu_compare_fn_t *uap_cmp;
-       uint8_t         uap_debug;
-       uint8_t         uap_last_index;
-       pthread_mutex_t uap_lock;               /* protects null_avl */
-       uu_avl_t        uap_null_avl;
-};
-
-/*
- * atfork() handlers
- */
-void uu_avl_lockup(void);
-void uu_avl_release(void);
-
-void uu_list_lockup(void);
-void uu_list_release(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _LIBUUTIL_IMPL_H */
index 071362a86af8cd8f15178a1c504437c55ff4cdf3..70210c35b1727ec1f017569f8ad924b246ce92e1 100644 (file)
@@ -1,39 +1,27 @@
 include $(top_srcdir)/config/Rules.am
 
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/lib/libzpool/include \
-       -I${top_srcdir}/lib/libspl/include \
-        -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libefi/include \
-       -I${top_srcdir}/module/zfs \
-       -I${top_srcdir}/module/zfs/include \
-        -I${top_srcdir}/module/zcommon/include \
-        -I${top_srcdir}/module/nvpair/include \
-        -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 lib_LTLIBRARIES = libzfs.la
 
 libzfs_la_LDFLAGS = -lm
 
 libzfs_la_LIBADD = \
-       ${top_srcdir}/lib/libefi/libefi.la \
-       ${top_srcdir}/lib/libuutil/libuutil.la
+       $(top_builddir)/lib/libefi/libefi.la \
+       $(top_builddir)/lib/libuutil/libuutil.la
 
 libzfs_la_SOURCES = \
-       ${top_srcdir}/lib/libzfs/libzfs_changelist.c \
-       ${top_srcdir}/lib/libzfs/libzfs_config.c \
-       ${top_srcdir}/lib/libzfs/libzfs_dataset.c \
-       ${top_srcdir}/lib/libzfs/libzfs_diff.c \
-       ${top_srcdir}/lib/libzfs/libzfs_fru.c \
-       ${top_srcdir}/lib/libzfs/libzfs_graph.c \
-       ${top_srcdir}/lib/libzfs/libzfs_import.c \
-       ${top_srcdir}/lib/libzfs/libzfs_mount.c \
-       ${top_srcdir}/lib/libzfs/libzfs_pool.c \
-       ${top_srcdir}/lib/libzfs/libzfs_sendrecv.c \
-       ${top_srcdir}/lib/libzfs/libzfs_status.c \
-       ${top_srcdir}/lib/libzfs/libzfs_util.c \
-       ${top_srcdir}/lib/libzfs/include/libzfs.h \
-       ${top_srcdir}/lib/libzfs/include/libzfs_impl.h
+       $(top_srcdir)/lib/libzfs/libzfs_changelist.c \
+       $(top_srcdir)/lib/libzfs/libzfs_config.c \
+       $(top_srcdir)/lib/libzfs/libzfs_dataset.c \
+       $(top_srcdir)/lib/libzfs/libzfs_diff.c \
+       $(top_srcdir)/lib/libzfs/libzfs_fru.c \
+       $(top_srcdir)/lib/libzfs/libzfs_graph.c \
+       $(top_srcdir)/lib/libzfs/libzfs_import.c \
+       $(top_srcdir)/lib/libzfs/libzfs_mount.c \
+       $(top_srcdir)/lib/libzfs/libzfs_pool.c \
+       $(top_srcdir)/lib/libzfs/libzfs_sendrecv.c \
+       $(top_srcdir)/lib/libzfs/libzfs_status.c \
+       $(top_srcdir)/lib/libzfs/libzfs_util.c
index 8c0073e5f7d15842c731d2a97baa841cf34c6563..f41504ecd5eccfcdfc1dc7ab4a62ca120b9a7fdf 100644 (file)
@@ -98,8 +98,8 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
-libzfs_la_DEPENDENCIES = ${top_srcdir}/lib/libefi/libefi.la \
-       ${top_srcdir}/lib/libuutil/libuutil.la
+libzfs_la_DEPENDENCIES = $(top_builddir)/lib/libefi/libefi.la \
+       $(top_builddir)/lib/libuutil/libuutil.la
 am_libzfs_la_OBJECTS = libzfs_changelist.lo libzfs_config.lo \
        libzfs_dataset.lo libzfs_diff.lo libzfs_fru.lo libzfs_graph.lo \
        libzfs_import.lo libzfs_mount.lo libzfs_pool.lo \
@@ -151,14 +151,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -196,7 +194,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -211,7 +208,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -230,7 +226,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -240,7 +235,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -311,18 +305,8 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libzfs/include \
-       -I${top_srcdir}/lib/libzpool/include \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/lib/libuutil/include \
-       -I${top_srcdir}/lib/libefi/include -I${top_srcdir}/module/zfs \
-       -I${top_srcdir}/module/zfs/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
@@ -331,24 +315,22 @@ AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
 lib_LTLIBRARIES = libzfs.la
 libzfs_la_LDFLAGS = -lm
 libzfs_la_LIBADD = \
-       ${top_srcdir}/lib/libefi/libefi.la \
-       ${top_srcdir}/lib/libuutil/libuutil.la
+       $(top_builddir)/lib/libefi/libefi.la \
+       $(top_builddir)/lib/libuutil/libuutil.la
 
 libzfs_la_SOURCES = \
-       ${top_srcdir}/lib/libzfs/libzfs_changelist.c \
-       ${top_srcdir}/lib/libzfs/libzfs_config.c \
-       ${top_srcdir}/lib/libzfs/libzfs_dataset.c \
-       ${top_srcdir}/lib/libzfs/libzfs_diff.c \
-       ${top_srcdir}/lib/libzfs/libzfs_fru.c \
-       ${top_srcdir}/lib/libzfs/libzfs_graph.c \
-       ${top_srcdir}/lib/libzfs/libzfs_import.c \
-       ${top_srcdir}/lib/libzfs/libzfs_mount.c \
-       ${top_srcdir}/lib/libzfs/libzfs_pool.c \
-       ${top_srcdir}/lib/libzfs/libzfs_sendrecv.c \
-       ${top_srcdir}/lib/libzfs/libzfs_status.c \
-       ${top_srcdir}/lib/libzfs/libzfs_util.c \
-       ${top_srcdir}/lib/libzfs/include/libzfs.h \
-       ${top_srcdir}/lib/libzfs/include/libzfs_impl.h
+       $(top_srcdir)/lib/libzfs/libzfs_changelist.c \
+       $(top_srcdir)/lib/libzfs/libzfs_config.c \
+       $(top_srcdir)/lib/libzfs/libzfs_dataset.c \
+       $(top_srcdir)/lib/libzfs/libzfs_diff.c \
+       $(top_srcdir)/lib/libzfs/libzfs_fru.c \
+       $(top_srcdir)/lib/libzfs/libzfs_graph.c \
+       $(top_srcdir)/lib/libzfs/libzfs_import.c \
+       $(top_srcdir)/lib/libzfs/libzfs_mount.c \
+       $(top_srcdir)/lib/libzfs/libzfs_pool.c \
+       $(top_srcdir)/lib/libzfs/libzfs_sendrecv.c \
+       $(top_srcdir)/lib/libzfs/libzfs_status.c \
+       $(top_srcdir)/lib/libzfs/libzfs_util.c
 
 all: all-am
 
@@ -461,101 +443,101 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-libzfs_changelist.lo: ${top_srcdir}/lib/libzfs/libzfs_changelist.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_changelist.lo -MD -MP -MF $(DEPDIR)/libzfs_changelist.Tpo -c -o libzfs_changelist.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_changelist.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_changelist.c
+libzfs_changelist.lo: $(top_srcdir)/lib/libzfs/libzfs_changelist.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_changelist.lo -MD -MP -MF $(DEPDIR)/libzfs_changelist.Tpo -c -o libzfs_changelist.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_changelist.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_changelist.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_changelist.Tpo $(DEPDIR)/libzfs_changelist.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_changelist.c' object='libzfs_changelist.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_changelist.c' object='libzfs_changelist.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_changelist.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_changelist.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_changelist.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_changelist.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_changelist.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_changelist.c
 
-libzfs_config.lo: ${top_srcdir}/lib/libzfs/libzfs_config.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_config.lo -MD -MP -MF $(DEPDIR)/libzfs_config.Tpo -c -o libzfs_config.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_config.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_config.c
+libzfs_config.lo: $(top_srcdir)/lib/libzfs/libzfs_config.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_config.lo -MD -MP -MF $(DEPDIR)/libzfs_config.Tpo -c -o libzfs_config.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_config.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_config.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_config.Tpo $(DEPDIR)/libzfs_config.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_config.c' object='libzfs_config.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_config.c' object='libzfs_config.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_config.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_config.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_config.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_config.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_config.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_config.c
 
-libzfs_dataset.lo: ${top_srcdir}/lib/libzfs/libzfs_dataset.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_dataset.lo -MD -MP -MF $(DEPDIR)/libzfs_dataset.Tpo -c -o libzfs_dataset.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_dataset.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_dataset.c
+libzfs_dataset.lo: $(top_srcdir)/lib/libzfs/libzfs_dataset.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_dataset.lo -MD -MP -MF $(DEPDIR)/libzfs_dataset.Tpo -c -o libzfs_dataset.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_dataset.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_dataset.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_dataset.Tpo $(DEPDIR)/libzfs_dataset.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_dataset.c' object='libzfs_dataset.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_dataset.c' object='libzfs_dataset.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_dataset.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_dataset.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_dataset.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_dataset.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_dataset.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_dataset.c
 
-libzfs_diff.lo: ${top_srcdir}/lib/libzfs/libzfs_diff.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_diff.lo -MD -MP -MF $(DEPDIR)/libzfs_diff.Tpo -c -o libzfs_diff.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_diff.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_diff.c
+libzfs_diff.lo: $(top_srcdir)/lib/libzfs/libzfs_diff.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_diff.lo -MD -MP -MF $(DEPDIR)/libzfs_diff.Tpo -c -o libzfs_diff.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_diff.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_diff.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_diff.Tpo $(DEPDIR)/libzfs_diff.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_diff.c' object='libzfs_diff.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_diff.c' object='libzfs_diff.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_diff.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_diff.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_diff.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_diff.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_diff.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_diff.c
 
-libzfs_fru.lo: ${top_srcdir}/lib/libzfs/libzfs_fru.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_fru.lo -MD -MP -MF $(DEPDIR)/libzfs_fru.Tpo -c -o libzfs_fru.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_fru.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_fru.c
+libzfs_fru.lo: $(top_srcdir)/lib/libzfs/libzfs_fru.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_fru.lo -MD -MP -MF $(DEPDIR)/libzfs_fru.Tpo -c -o libzfs_fru.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_fru.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_fru.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_fru.Tpo $(DEPDIR)/libzfs_fru.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_fru.c' object='libzfs_fru.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_fru.c' object='libzfs_fru.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_fru.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_fru.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_fru.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_fru.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_fru.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_fru.c
 
-libzfs_graph.lo: ${top_srcdir}/lib/libzfs/libzfs_graph.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_graph.lo -MD -MP -MF $(DEPDIR)/libzfs_graph.Tpo -c -o libzfs_graph.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_graph.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_graph.c
+libzfs_graph.lo: $(top_srcdir)/lib/libzfs/libzfs_graph.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_graph.lo -MD -MP -MF $(DEPDIR)/libzfs_graph.Tpo -c -o libzfs_graph.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_graph.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_graph.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_graph.Tpo $(DEPDIR)/libzfs_graph.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_graph.c' object='libzfs_graph.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_graph.c' object='libzfs_graph.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_graph.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_graph.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_graph.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_graph.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_graph.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_graph.c
 
-libzfs_import.lo: ${top_srcdir}/lib/libzfs/libzfs_import.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_import.lo -MD -MP -MF $(DEPDIR)/libzfs_import.Tpo -c -o libzfs_import.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_import.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_import.c
+libzfs_import.lo: $(top_srcdir)/lib/libzfs/libzfs_import.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_import.lo -MD -MP -MF $(DEPDIR)/libzfs_import.Tpo -c -o libzfs_import.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_import.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_import.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_import.Tpo $(DEPDIR)/libzfs_import.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_import.c' object='libzfs_import.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_import.c' object='libzfs_import.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_import.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_import.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_import.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_import.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_import.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_import.c
 
-libzfs_mount.lo: ${top_srcdir}/lib/libzfs/libzfs_mount.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_mount.lo -MD -MP -MF $(DEPDIR)/libzfs_mount.Tpo -c -o libzfs_mount.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_mount.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_mount.c
+libzfs_mount.lo: $(top_srcdir)/lib/libzfs/libzfs_mount.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_mount.lo -MD -MP -MF $(DEPDIR)/libzfs_mount.Tpo -c -o libzfs_mount.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_mount.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_mount.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_mount.Tpo $(DEPDIR)/libzfs_mount.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_mount.c' object='libzfs_mount.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_mount.c' object='libzfs_mount.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_mount.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_mount.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_mount.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_mount.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_mount.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_mount.c
 
-libzfs_pool.lo: ${top_srcdir}/lib/libzfs/libzfs_pool.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_pool.lo -MD -MP -MF $(DEPDIR)/libzfs_pool.Tpo -c -o libzfs_pool.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_pool.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_pool.c
+libzfs_pool.lo: $(top_srcdir)/lib/libzfs/libzfs_pool.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_pool.lo -MD -MP -MF $(DEPDIR)/libzfs_pool.Tpo -c -o libzfs_pool.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_pool.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_pool.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_pool.Tpo $(DEPDIR)/libzfs_pool.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_pool.c' object='libzfs_pool.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_pool.c' object='libzfs_pool.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_pool.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_pool.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_pool.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_pool.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_pool.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_pool.c
 
-libzfs_sendrecv.lo: ${top_srcdir}/lib/libzfs/libzfs_sendrecv.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_sendrecv.lo -MD -MP -MF $(DEPDIR)/libzfs_sendrecv.Tpo -c -o libzfs_sendrecv.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_sendrecv.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_sendrecv.c
+libzfs_sendrecv.lo: $(top_srcdir)/lib/libzfs/libzfs_sendrecv.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_sendrecv.lo -MD -MP -MF $(DEPDIR)/libzfs_sendrecv.Tpo -c -o libzfs_sendrecv.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_sendrecv.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_sendrecv.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_sendrecv.Tpo $(DEPDIR)/libzfs_sendrecv.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_sendrecv.c' object='libzfs_sendrecv.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_sendrecv.c' object='libzfs_sendrecv.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_sendrecv.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_sendrecv.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_sendrecv.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_sendrecv.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_sendrecv.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_sendrecv.c
 
-libzfs_status.lo: ${top_srcdir}/lib/libzfs/libzfs_status.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_status.lo -MD -MP -MF $(DEPDIR)/libzfs_status.Tpo -c -o libzfs_status.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_status.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_status.c
+libzfs_status.lo: $(top_srcdir)/lib/libzfs/libzfs_status.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_status.lo -MD -MP -MF $(DEPDIR)/libzfs_status.Tpo -c -o libzfs_status.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_status.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_status.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_status.Tpo $(DEPDIR)/libzfs_status.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_status.c' object='libzfs_status.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_status.c' object='libzfs_status.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_status.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_status.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_status.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_status.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_status.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_status.c
 
-libzfs_util.lo: ${top_srcdir}/lib/libzfs/libzfs_util.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_util.lo -MD -MP -MF $(DEPDIR)/libzfs_util.Tpo -c -o libzfs_util.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_util.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_util.c
+libzfs_util.lo: $(top_srcdir)/lib/libzfs/libzfs_util.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libzfs_util.lo -MD -MP -MF $(DEPDIR)/libzfs_util.Tpo -c -o libzfs_util.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_util.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_util.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libzfs_util.Tpo $(DEPDIR)/libzfs_util.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzfs/libzfs_util.c' object='libzfs_util.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzfs/libzfs_util.c' object='libzfs_util.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_util.lo `test -f '${top_srcdir}/lib/libzfs/libzfs_util.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzfs/libzfs_util.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libzfs_util.lo `test -f '$(top_srcdir)/lib/libzfs/libzfs_util.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzfs/libzfs_util.c
 
 mostlyclean-libtool:
        -rm -f *.lo
diff --git a/lib/libzfs/include/libzfs.h b/lib/libzfs/include/libzfs.h
deleted file mode 100644 (file)
index dcbd283..0000000
+++ /dev/null
@@ -1,716 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _LIBZFS_H
-#define        _LIBZFS_H
-
-#include <assert.h>
-#include <libnvpair.h>
-#include <sys/mnttab.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/varargs.h>
-#include <sys/fs/zfs.h>
-#include <sys/avl.h>
-#include <ucred.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Miscellaneous ZFS constants
- */
-#define        ZFS_MAXNAMELEN          MAXNAMELEN
-#define        ZPOOL_MAXNAMELEN        MAXNAMELEN
-#define        ZFS_MAXPROPLEN          MAXPATHLEN
-#define        ZPOOL_MAXPROPLEN        MAXPATHLEN
-
-/*
- * Default device paths
- */
-
-#if defined(__sun__) || defined(__sun)
-#define        DISK_ROOT       "/dev/dsk"
-#define        RDISK_ROOT      "/dev/rdsk"
-#define        UDISK_ROOT      RDISK_ROOT
-#define        FIRST_SLICE     "s0"
-#define        BACKUP_SLICE    "s2"
-#endif
-
-#ifdef __linux__
-#define        DISK_ROOT       "/dev"
-#define        RDISK_ROOT      DISK_ROOT
-#define        UDISK_ROOT      "/dev/disk"
-#define        FIRST_SLICE     "1"
-#define        BACKUP_SLICE    ""
-#endif
-
-/*
- * libzfs errors
- */
-enum {
-       EZFS_NOMEM = 2000,      /* out of memory */
-       EZFS_BADPROP,           /* invalid property value */
-       EZFS_PROPREADONLY,      /* cannot set readonly property */
-       EZFS_PROPTYPE,          /* property does not apply to dataset type */
-       EZFS_PROPNONINHERIT,    /* property is not inheritable */
-       EZFS_PROPSPACE,         /* bad quota or reservation */
-       EZFS_BADTYPE,           /* dataset is not of appropriate type */
-       EZFS_BUSY,              /* pool or dataset is busy */
-       EZFS_EXISTS,            /* pool or dataset already exists */
-       EZFS_NOENT,             /* no such pool or dataset */
-       EZFS_BADSTREAM,         /* bad backup stream */
-       EZFS_DSREADONLY,        /* dataset is readonly */
-       EZFS_VOLTOOBIG,         /* volume is too large for 32-bit system */
-       EZFS_INVALIDNAME,       /* invalid dataset name */
-       EZFS_BADRESTORE,        /* unable to restore to destination */
-       EZFS_BADBACKUP,         /* backup failed */
-       EZFS_BADTARGET,         /* bad attach/detach/replace target */
-       EZFS_NODEVICE,          /* no such device in pool */
-       EZFS_BADDEV,            /* invalid device to add */
-       EZFS_NOREPLICAS,        /* no valid replicas */
-       EZFS_RESILVERING,       /* currently resilvering */
-       EZFS_BADVERSION,        /* unsupported version */
-       EZFS_POOLUNAVAIL,       /* pool is currently unavailable */
-       EZFS_DEVOVERFLOW,       /* too many devices in one vdev */
-       EZFS_BADPATH,           /* must be an absolute path */
-       EZFS_CROSSTARGET,       /* rename or clone across pool or dataset */
-       EZFS_ZONED,             /* used improperly in local zone */
-       EZFS_MOUNTFAILED,       /* failed to mount dataset */
-       EZFS_UMOUNTFAILED,      /* failed to unmount dataset */
-       EZFS_UNSHARENFSFAILED,  /* unshare(1M) failed */
-       EZFS_SHARENFSFAILED,    /* share(1M) failed */
-       EZFS_PERM,              /* permission denied */
-       EZFS_NOSPC,             /* out of space */
-       EZFS_FAULT,             /* bad address */
-       EZFS_IO,                /* I/O error */
-       EZFS_INTR,              /* signal received */
-       EZFS_ISSPARE,           /* device is a hot spare */
-       EZFS_INVALCONFIG,       /* invalid vdev configuration */
-       EZFS_RECURSIVE,         /* recursive dependency */
-       EZFS_NOHISTORY,         /* no history object */
-       EZFS_POOLPROPS,         /* couldn't retrieve pool props */
-       EZFS_POOL_NOTSUP,       /* ops not supported for this type of pool */
-       EZFS_POOL_INVALARG,     /* invalid argument for this pool operation */
-       EZFS_NAMETOOLONG,       /* dataset name is too long */
-       EZFS_OPENFAILED,        /* open of device failed */
-       EZFS_NOCAP,             /* couldn't get capacity */
-       EZFS_LABELFAILED,       /* write of label failed */
-       EZFS_BADWHO,            /* invalid permission who */
-       EZFS_BADPERM,           /* invalid permission */
-       EZFS_BADPERMSET,        /* invalid permission set name */
-       EZFS_NODELEGATION,      /* delegated administration is disabled */
-       EZFS_UNSHARESMBFAILED,  /* failed to unshare over smb */
-       EZFS_SHARESMBFAILED,    /* failed to share over smb */
-       EZFS_BADCACHE,          /* bad cache file */
-       EZFS_ISL2CACHE,         /* device is for the level 2 ARC */
-       EZFS_VDEVNOTSUP,        /* unsupported vdev type */
-       EZFS_NOTSUP,            /* ops not supported on this dataset */
-       EZFS_ACTIVE_SPARE,      /* pool has active shared spare devices */
-       EZFS_UNPLAYED_LOGS,     /* log device has unplayed logs */
-       EZFS_REFTAG_RELE,       /* snapshot release: tag not found */
-       EZFS_REFTAG_HOLD,       /* snapshot hold: tag already exists */
-       EZFS_TAGTOOLONG,        /* snapshot hold/rele: tag too long */
-       EZFS_PIPEFAILED,        /* pipe create failed */
-       EZFS_THREADCREATEFAILED, /* thread create failed */
-       EZFS_POSTSPLIT_ONLINE,  /* onlining a disk after splitting it */
-       EZFS_SCRUBBING,         /* currently scrubbing */
-       EZFS_NO_SCRUB,          /* no active scrub */
-       EZFS_DIFF,              /* general failure of zfs diff */
-       EZFS_DIFFDATA,          /* bad zfs diff data */
-       EZFS_POOLREADONLY,      /* pool is in read-only mode */
-       EZFS_UNKNOWN
-};
-
-/*
- * The following data structures are all part
- * of the zfs_allow_t data structure which is
- * used for printing 'allow' permissions.
- * It is a linked list of zfs_allow_t's which
- * then contain avl tree's for user/group/sets/...
- * and each one of the entries in those trees have
- * avl tree's for the permissions they belong to and
- * whether they are local,descendent or local+descendent
- * permissions.  The AVL trees are used primarily for
- * sorting purposes, but also so that we can quickly find
- * a given user and or permission.
- */
-typedef struct zfs_perm_node {
-       avl_node_t z_node;
-       char z_pname[MAXPATHLEN];
-} zfs_perm_node_t;
-
-typedef struct zfs_allow_node {
-       avl_node_t z_node;
-       char z_key[MAXPATHLEN];         /* name, such as joe */
-       avl_tree_t z_localdescend;      /* local+descendent perms */
-       avl_tree_t z_local;             /* local permissions */
-       avl_tree_t z_descend;           /* descendent permissions */
-} zfs_allow_node_t;
-
-typedef struct zfs_allow {
-       struct zfs_allow *z_next;
-       char z_setpoint[MAXPATHLEN];
-       avl_tree_t z_sets;
-       avl_tree_t z_crperms;
-       avl_tree_t z_user;
-       avl_tree_t z_group;
-       avl_tree_t z_everyone;
-} zfs_allow_t;
-
-/*
- * Basic handle types
- */
-typedef struct zfs_handle zfs_handle_t;
-typedef struct zpool_handle zpool_handle_t;
-typedef struct libzfs_handle libzfs_handle_t;
-
-/*
- * Library initialization
- */
-extern libzfs_handle_t *libzfs_init(void);
-extern void libzfs_fini(libzfs_handle_t *);
-
-extern libzfs_handle_t *zpool_get_handle(zpool_handle_t *);
-extern libzfs_handle_t *zfs_get_handle(zfs_handle_t *);
-
-extern void libzfs_print_on_error(libzfs_handle_t *, boolean_t);
-
-extern int libzfs_errno(libzfs_handle_t *);
-extern const char *libzfs_error_action(libzfs_handle_t *);
-extern const char *libzfs_error_description(libzfs_handle_t *);
-extern void libzfs_mnttab_init(libzfs_handle_t *);
-extern void libzfs_mnttab_fini(libzfs_handle_t *);
-extern void libzfs_mnttab_cache(libzfs_handle_t *, boolean_t);
-extern int libzfs_mnttab_find(libzfs_handle_t *, const char *,
-    struct mnttab *);
-extern void libzfs_mnttab_add(libzfs_handle_t *, const char *,
-    const char *, const char *);
-extern void libzfs_mnttab_remove(libzfs_handle_t *, const char *);
-
-/*
- * Basic handle functions
- */
-extern zpool_handle_t *zpool_open(libzfs_handle_t *, const char *);
-extern zpool_handle_t *zpool_open_canfail(libzfs_handle_t *, const char *);
-extern void zpool_close(zpool_handle_t *);
-extern const char *zpool_get_name(zpool_handle_t *);
-extern int zpool_get_state(zpool_handle_t *);
-extern char *zpool_state_to_name(vdev_state_t, vdev_aux_t);
-extern void zpool_free_handles(libzfs_handle_t *);
-
-/*
- * Iterate over all active pools in the system.
- */
-typedef int (*zpool_iter_f)(zpool_handle_t *, void *);
-extern int zpool_iter(libzfs_handle_t *, zpool_iter_f, void *);
-
-/*
- * Functions to create and destroy pools
- */
-extern int zpool_create(libzfs_handle_t *, const char *, nvlist_t *,
-    nvlist_t *, nvlist_t *);
-extern int zpool_destroy(zpool_handle_t *);
-extern int zpool_add(zpool_handle_t *, nvlist_t *);
-
-typedef struct splitflags {
-       /* do not split, but return the config that would be split off */
-       int dryrun : 1;
-
-       /* after splitting, import the pool */
-       int import : 1;
-} splitflags_t;
-
-/*
- * Functions to manipulate pool and vdev state
- */
-extern int zpool_scan(zpool_handle_t *, pool_scan_func_t);
-extern int zpool_clear(zpool_handle_t *, const char *, nvlist_t *);
-
-extern int zpool_vdev_online(zpool_handle_t *, const char *, int,
-    vdev_state_t *);
-extern int zpool_vdev_offline(zpool_handle_t *, const char *, boolean_t);
-extern int zpool_vdev_attach(zpool_handle_t *, const char *,
-    const char *, nvlist_t *, int);
-extern int zpool_vdev_detach(zpool_handle_t *, const char *);
-extern int zpool_vdev_remove(zpool_handle_t *, const char *);
-extern int zpool_vdev_split(zpool_handle_t *, char *, nvlist_t **, nvlist_t *,
-    splitflags_t);
-
-extern int zpool_vdev_fault(zpool_handle_t *, uint64_t, vdev_aux_t);
-extern int zpool_vdev_degrade(zpool_handle_t *, uint64_t, vdev_aux_t);
-extern int zpool_vdev_clear(zpool_handle_t *, uint64_t);
-
-extern nvlist_t *zpool_find_vdev(zpool_handle_t *, const char *, boolean_t *,
-    boolean_t *, boolean_t *);
-extern nvlist_t *zpool_find_vdev_by_physpath(zpool_handle_t *, const char *,
-    boolean_t *, boolean_t *, boolean_t *);
-extern int zpool_label_disk_wait(char *, int);
-extern int zpool_label_disk(libzfs_handle_t *, zpool_handle_t *, char *);
-
-/*
- * Functions to manage pool properties
- */
-extern int zpool_set_prop(zpool_handle_t *, const char *, const char *);
-extern int zpool_get_prop(zpool_handle_t *, zpool_prop_t, char *,
-    size_t proplen, zprop_source_t *);
-extern uint64_t zpool_get_prop_int(zpool_handle_t *, zpool_prop_t,
-    zprop_source_t *);
-
-extern const char *zpool_prop_to_name(zpool_prop_t);
-extern const char *zpool_prop_values(zpool_prop_t);
-
-/*
- * Pool health statistics.
- */
-typedef enum {
-       /*
-        * The following correspond to faults as defined in the (fault.fs.zfs.*)
-        * event namespace.  Each is associated with a corresponding message ID.
-        */
-       ZPOOL_STATUS_CORRUPT_CACHE,     /* corrupt /kernel/drv/zpool.cache */
-       ZPOOL_STATUS_MISSING_DEV_R,     /* missing device with replicas */
-       ZPOOL_STATUS_MISSING_DEV_NR,    /* missing device with no replicas */
-       ZPOOL_STATUS_CORRUPT_LABEL_R,   /* bad device label with replicas */
-       ZPOOL_STATUS_CORRUPT_LABEL_NR,  /* bad device label with no replicas */
-       ZPOOL_STATUS_BAD_GUID_SUM,      /* sum of device guids didn't match */
-       ZPOOL_STATUS_CORRUPT_POOL,      /* pool metadata is corrupted */
-       ZPOOL_STATUS_CORRUPT_DATA,      /* data errors in user (meta)data */
-       ZPOOL_STATUS_FAILING_DEV,       /* device experiencing errors */
-       ZPOOL_STATUS_VERSION_NEWER,     /* newer on-disk version */
-       ZPOOL_STATUS_HOSTID_MISMATCH,   /* last accessed by another system */
-       ZPOOL_STATUS_IO_FAILURE_WAIT,   /* failed I/O, failmode 'wait' */
-       ZPOOL_STATUS_IO_FAILURE_CONTINUE, /* failed I/O, failmode 'continue' */
-       ZPOOL_STATUS_BAD_LOG,           /* cannot read log chain(s) */
-
-       /*
-        * These faults have no corresponding message ID.  At the time we are
-        * checking the status, the original reason for the FMA fault (I/O or
-        * checksum errors) has been lost.
-        */
-       ZPOOL_STATUS_FAULTED_DEV_R,     /* faulted device with replicas */
-       ZPOOL_STATUS_FAULTED_DEV_NR,    /* faulted device with no replicas */
-
-       /*
-        * The following are not faults per se, but still an error possibly
-        * requiring administrative attention.  There is no corresponding
-        * message ID.
-        */
-       ZPOOL_STATUS_VERSION_OLDER,     /* older on-disk version */
-       ZPOOL_STATUS_RESILVERING,       /* device being resilvered */
-       ZPOOL_STATUS_OFFLINE_DEV,       /* device online */
-       ZPOOL_STATUS_REMOVED_DEV,       /* removed device */
-
-       /*
-        * Finally, the following indicates a healthy pool.
-        */
-       ZPOOL_STATUS_OK
-} zpool_status_t;
-
-extern zpool_status_t zpool_get_status(zpool_handle_t *, char **);
-extern zpool_status_t zpool_import_status(nvlist_t *, char **);
-extern void zpool_dump_ddt(const ddt_stat_t *dds, const ddt_histogram_t *ddh);
-
-/*
- * Statistics and configuration functions.
- */
-extern nvlist_t *zpool_get_config(zpool_handle_t *, nvlist_t **);
-extern int zpool_refresh_stats(zpool_handle_t *, boolean_t *);
-extern int zpool_get_errlog(zpool_handle_t *, nvlist_t **);
-
-/*
- * Import and export functions
- */
-extern int zpool_export(zpool_handle_t *, boolean_t);
-extern int zpool_export_force(zpool_handle_t *);
-extern int zpool_import(libzfs_handle_t *, nvlist_t *, const char *,
-    char *altroot);
-extern int zpool_import_props(libzfs_handle_t *, nvlist_t *, const char *,
-    nvlist_t *, int);
-
-/*
- * Search for pools to import
- */
-
-typedef struct importargs {
-       char **path;            /* a list of paths to search            */
-       int paths;              /* number of paths to search            */
-       char *poolname;         /* name of a pool to find               */
-       uint64_t guid;          /* guid of a pool to find               */
-       char *cachefile;        /* cachefile to use for import          */
-       int can_be_active : 1;  /* can the pool be active?              */
-       int unique : 1;         /* does 'poolname' already exist?       */
-       int exists : 1;         /* set on return if pool already exists */
-} importargs_t;
-
-extern nvlist_t *zpool_search_import(libzfs_handle_t *, importargs_t *);
-
-/* legacy pool search routines */
-extern nvlist_t *zpool_find_import(libzfs_handle_t *, int, char **);
-extern nvlist_t *zpool_find_import_cached(libzfs_handle_t *, const char *,
-    char *, uint64_t);
-
-/*
- * Miscellaneous pool functions
- */
-struct zfs_cmd;
-
-extern const char *zfs_history_event_names[LOG_END];
-
-extern char *zpool_vdev_name(libzfs_handle_t *, zpool_handle_t *, nvlist_t *,
-    boolean_t verbose);
-extern int zpool_upgrade(zpool_handle_t *, uint64_t);
-extern int zpool_get_history(zpool_handle_t *, nvlist_t **);
-extern int zpool_history_unpack(char *, uint64_t, uint64_t *,
-    nvlist_t ***, uint_t *);
-extern void zpool_set_history_str(const char *subcommand, int argc,
-    char **argv, char *history_str);
-extern int zpool_stage_history(libzfs_handle_t *, const char *);
-extern int zpool_events_next(libzfs_handle_t *, nvlist_t **, int *, int, int);
-extern int zpool_events_clear(libzfs_handle_t *, int *);
-extern void zpool_obj_to_path(zpool_handle_t *, uint64_t, uint64_t, char *,
-    size_t len);
-extern int zfs_ioctl(libzfs_handle_t *, int, struct zfs_cmd *);
-extern int zpool_get_physpath(zpool_handle_t *, char *, size_t);
-extern void zpool_explain_recover(libzfs_handle_t *, const char *, int,
-    nvlist_t *);
-
-/*
- * Basic handle manipulations.  These functions do not create or destroy the
- * underlying datasets, only the references to them.
- */
-extern zfs_handle_t *zfs_open(libzfs_handle_t *, const char *, int);
-extern void zfs_close(zfs_handle_t *);
-extern zfs_type_t zfs_get_type(const zfs_handle_t *);
-extern const char *zfs_get_name(const zfs_handle_t *);
-extern zpool_handle_t *zfs_get_pool_handle(const zfs_handle_t *);
-
-/*
- * Property management functions.  Some functions are shared with the kernel,
- * and are found in sys/fs/zfs.h.
- */
-
-/*
- * zfs dataset property management
- */
-extern const char *zfs_prop_default_string(zfs_prop_t);
-extern uint64_t zfs_prop_default_numeric(zfs_prop_t);
-extern const char *zfs_prop_column_name(zfs_prop_t);
-extern boolean_t zfs_prop_align_right(zfs_prop_t);
-
-extern nvlist_t *zfs_valid_proplist(libzfs_handle_t *, zfs_type_t,
-    nvlist_t *, uint64_t, zfs_handle_t *, const char *);
-
-extern const char *zfs_prop_to_name(zfs_prop_t);
-extern int zfs_prop_set(zfs_handle_t *, const char *, const char *);
-extern int zfs_prop_get(zfs_handle_t *, zfs_prop_t, char *, size_t,
-    zprop_source_t *, char *, size_t, boolean_t);
-extern int zfs_prop_get_recvd(zfs_handle_t *, const char *, char *, size_t,
-    boolean_t);
-extern int zfs_prop_get_numeric(zfs_handle_t *, zfs_prop_t, uint64_t *,
-    zprop_source_t *, char *, size_t);
-extern int zfs_prop_get_userquota_int(zfs_handle_t *zhp, const char *propname,
-    uint64_t *propvalue);
-extern int zfs_prop_get_userquota(zfs_handle_t *zhp, const char *propname,
-    char *propbuf, int proplen, boolean_t literal);
-extern uint64_t zfs_prop_get_int(zfs_handle_t *, zfs_prop_t);
-extern int zfs_prop_inherit(zfs_handle_t *, const char *, boolean_t);
-extern const char *zfs_prop_values(zfs_prop_t);
-extern int zfs_prop_is_string(zfs_prop_t prop);
-extern nvlist_t *zfs_get_user_props(zfs_handle_t *);
-extern nvlist_t *zfs_get_recvd_props(zfs_handle_t *);
-
-typedef struct zprop_list {
-       int             pl_prop;
-       char            *pl_user_prop;
-       struct zprop_list *pl_next;
-       boolean_t       pl_all;
-       size_t          pl_width;
-       size_t          pl_recvd_width;
-       boolean_t       pl_fixed;
-} zprop_list_t;
-
-extern int zfs_expand_proplist(zfs_handle_t *, zprop_list_t **, boolean_t);
-extern void zfs_prune_proplist(zfs_handle_t *, uint8_t *);
-
-#define        ZFS_MOUNTPOINT_NONE     "none"
-#define        ZFS_MOUNTPOINT_LEGACY   "legacy"
-
-/*
- * zpool property management
- */
-extern int zpool_expand_proplist(zpool_handle_t *, zprop_list_t **);
-extern const char *zpool_prop_default_string(zpool_prop_t);
-extern uint64_t zpool_prop_default_numeric(zpool_prop_t);
-extern const char *zpool_prop_column_name(zpool_prop_t);
-extern boolean_t zpool_prop_align_right(zpool_prop_t);
-
-/*
- * Functions shared by zfs and zpool property management.
- */
-extern int zprop_iter(zprop_func func, void *cb, boolean_t show_all,
-    boolean_t ordered, zfs_type_t type);
-extern int zprop_get_list(libzfs_handle_t *, char *, zprop_list_t **,
-    zfs_type_t);
-extern void zprop_free_list(zprop_list_t *);
-
-#define        ZFS_GET_NCOLS   5
-
-typedef enum {
-       GET_COL_NONE,
-       GET_COL_NAME,
-       GET_COL_PROPERTY,
-       GET_COL_VALUE,
-       GET_COL_RECVD,
-       GET_COL_SOURCE
-} zfs_get_column_t;
-
-/*
- * Functions for printing zfs or zpool properties
- */
-typedef struct zprop_get_cbdata {
-       int cb_sources;
-       zfs_get_column_t cb_columns[ZFS_GET_NCOLS];
-       int cb_colwidths[ZFS_GET_NCOLS + 1];
-       boolean_t cb_scripted;
-       boolean_t cb_literal;
-       boolean_t cb_first;
-       zprop_list_t *cb_proplist;
-       zfs_type_t cb_type;
-} zprop_get_cbdata_t;
-
-void zprop_print_one_property(const char *, zprop_get_cbdata_t *,
-    const char *, const char *, zprop_source_t, const char *,
-    const char *);
-
-/*
- * Iterator functions.
- */
-typedef int (*zfs_iter_f)(zfs_handle_t *, void *);
-extern int zfs_iter_root(libzfs_handle_t *, zfs_iter_f, void *);
-extern int zfs_iter_children(zfs_handle_t *, zfs_iter_f, void *);
-extern int zfs_iter_dependents(zfs_handle_t *, boolean_t, zfs_iter_f, void *);
-extern int zfs_iter_filesystems(zfs_handle_t *, zfs_iter_f, void *);
-extern int zfs_iter_snapshots(zfs_handle_t *, zfs_iter_f, void *);
-extern int zfs_iter_snapshots_sorted(zfs_handle_t *, zfs_iter_f, void *);
-
-typedef struct get_all_cb {
-       zfs_handle_t    **cb_handles;
-       size_t          cb_alloc;
-       size_t          cb_used;
-       boolean_t       cb_verbose;
-       int             (*cb_getone)(zfs_handle_t *, void *);
-} get_all_cb_t;
-
-void libzfs_add_handle(get_all_cb_t *, zfs_handle_t *);
-int libzfs_dataset_cmp(const void *, const void *);
-
-/*
- * Functions to create and destroy datasets.
- */
-extern int zfs_create(libzfs_handle_t *, const char *, zfs_type_t,
-    nvlist_t *);
-extern int zfs_create_ancestors(libzfs_handle_t *, const char *);
-extern int zfs_destroy(zfs_handle_t *, boolean_t);
-extern int zfs_destroy_snaps(zfs_handle_t *, char *, boolean_t);
-extern int zfs_clone(zfs_handle_t *, const char *, nvlist_t *);
-extern int zfs_snapshot(libzfs_handle_t *, const char *, boolean_t, nvlist_t *);
-extern int zfs_rollback(zfs_handle_t *, zfs_handle_t *, boolean_t);
-extern int zfs_rename(zfs_handle_t *, const char *, boolean_t);
-
-typedef struct sendflags {
-       /* print informational messages (ie, -v was specified) */
-       int verbose : 1;
-
-       /* recursive send  (ie, -R) */
-       int replicate : 1;
-
-       /* for incrementals, do all intermediate snapshots */
-       int doall : 1; /* (ie, -I) */
-
-       /* if dataset is a clone, do incremental from its origin */
-       int fromorigin : 1;
-
-       /* do deduplication */
-       int dedup : 1;
-
-       /* send properties (ie, -p) */
-       int props : 1;
-} sendflags_t;
-
-typedef boolean_t (snapfilter_cb_t)(zfs_handle_t *, void *);
-
-extern int zfs_send(zfs_handle_t *zhp, const char *fromsnap, const char *tosnap,
-    sendflags_t flags, int outfd, snapfilter_cb_t filter_func,
-    void *cb_arg, nvlist_t **debugnvp);
-
-extern int zfs_promote(zfs_handle_t *);
-extern int zfs_hold(zfs_handle_t *, const char *, const char *, boolean_t,
-    boolean_t, boolean_t, int, uint64_t, uint64_t);
-extern int zfs_release(zfs_handle_t *, const char *, const char *, boolean_t);
-extern uint64_t zvol_volsize_to_reservation(uint64_t, nvlist_t *);
-
-typedef int (*zfs_userspace_cb_t)(void *arg, const char *domain,
-    uid_t rid, uint64_t space);
-
-extern int zfs_userspace(zfs_handle_t *zhp, zfs_userquota_prop_t type,
-    zfs_userspace_cb_t func, void *arg);
-
-typedef struct recvflags {
-       /* print informational messages (ie, -v was specified) */
-       int verbose : 1;
-
-       /* the destination is a prefix, not the exact fs (ie, -d) */
-       int isprefix : 1;
-
-       /*
-        * Only the tail of the sent snapshot path is appended to the
-        * destination to determine the received snapshot name (ie, -e).
-        */
-       int istail : 1;
-
-       /* do not actually do the recv, just check if it would work (ie, -n) */
-       int dryrun : 1;
-
-       /* rollback/destroy filesystems as necessary (eg, -F) */
-       int force : 1;
-
-       /* set "canmount=off" on all modified filesystems */
-       int canmountoff : 1;
-
-       /* byteswap flag is used internally; callers need not specify */
-       int byteswap : 1;
-
-       /* do not mount file systems as they are extracted (private) */
-       int nomount : 1;
-} recvflags_t;
-
-extern int zfs_receive(libzfs_handle_t *, const char *, recvflags_t,
-    int, avl_tree_t *);
-
-typedef enum diff_flags {
-       ZFS_DIFF_PARSEABLE = 0x1,
-       ZFS_DIFF_TIMESTAMP = 0x2,
-       ZFS_DIFF_CLASSIFY = 0x4
-} diff_flags_t;
-
-extern int zfs_show_diffs(zfs_handle_t *, int, const char *, const char *,
-    int);
-
-/*
- * Miscellaneous functions.
- */
-extern const char *zfs_type_to_name(zfs_type_t);
-extern void zfs_refresh_properties(zfs_handle_t *);
-extern int zfs_name_valid(const char *, zfs_type_t);
-extern zfs_handle_t *zfs_path_to_zhandle(libzfs_handle_t *, char *, zfs_type_t);
-extern boolean_t zfs_dataset_exists(libzfs_handle_t *, const char *,
-    zfs_type_t);
-extern int zfs_spa_version(zfs_handle_t *, int *);
-
-/*
- * Mount support functions.
- */
-extern boolean_t is_mounted(libzfs_handle_t *, const char *special, char **);
-extern boolean_t zfs_is_mounted(zfs_handle_t *, char **);
-extern int zfs_mount(zfs_handle_t *, const char *, int);
-extern int zfs_unmount(zfs_handle_t *, const char *, int);
-extern int zfs_unmountall(zfs_handle_t *, int);
-
-/*
- * Share support functions.
- */
-extern boolean_t zfs_is_shared(zfs_handle_t *);
-extern int zfs_share(zfs_handle_t *);
-extern int zfs_unshare(zfs_handle_t *);
-
-/*
- * Protocol-specific share support functions.
- */
-extern boolean_t zfs_is_shared_nfs(zfs_handle_t *, char **);
-extern boolean_t zfs_is_shared_smb(zfs_handle_t *, char **);
-extern int zfs_share_nfs(zfs_handle_t *);
-extern int zfs_share_smb(zfs_handle_t *);
-extern int zfs_shareall(zfs_handle_t *);
-extern int zfs_unshare_nfs(zfs_handle_t *, const char *);
-extern int zfs_unshare_smb(zfs_handle_t *, const char *);
-extern int zfs_unshareall_nfs(zfs_handle_t *);
-extern int zfs_unshareall_smb(zfs_handle_t *);
-extern int zfs_unshareall_bypath(zfs_handle_t *, const char *);
-extern int zfs_unshareall(zfs_handle_t *);
-extern int zfs_deleg_share_nfs(libzfs_handle_t *, char *, char *, char *,
-    void *, void *, int, zfs_share_op_t);
-
-/*
- * Utility function to convert a number to a human-readable form.
- */
-extern void zfs_nicenum(uint64_t, char *, size_t);
-extern int zfs_nicestrtonum(libzfs_handle_t *, const char *, uint64_t *);
-
-/*
- * Given a device or file, determine if it is part of a pool.
- */
-extern int zpool_in_use(libzfs_handle_t *, int, pool_state_t *, char **,
-    boolean_t *);
-
-/*
- * Label manipulation.
- */
-extern int zpool_read_label(int, nvlist_t **);
-extern int zpool_clear_label(int);
-
-/*
- * Management interfaces for SMB ACL files
- */
-
-int zfs_smb_acl_add(libzfs_handle_t *, char *, char *, char *);
-int zfs_smb_acl_remove(libzfs_handle_t *, char *, char *, char *);
-int zfs_smb_acl_purge(libzfs_handle_t *, char *, char *);
-int zfs_smb_acl_rename(libzfs_handle_t *, char *, char *, char *, char *);
-
-/*
- * Enable and disable datasets within a pool by mounting/unmounting and
- * sharing/unsharing them.
- */
-extern int zpool_enable_datasets(zpool_handle_t *, const char *, int);
-extern int zpool_disable_datasets(zpool_handle_t *, boolean_t);
-
-/*
- * Mappings between vdev and FRU.
- */
-extern void libzfs_fru_refresh(libzfs_handle_t *);
-extern const char *libzfs_fru_lookup(libzfs_handle_t *, const char *);
-extern const char *libzfs_fru_devpath(libzfs_handle_t *, const char *);
-extern boolean_t libzfs_fru_compare(libzfs_handle_t *, const char *,
-    const char *);
-extern boolean_t libzfs_fru_notself(libzfs_handle_t *, const char *);
-extern int zpool_fru_set(zpool_handle_t *, uint64_t, const char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _LIBZFS_H */
diff --git a/lib/libzfs/include/libzfs_impl.h b/lib/libzfs/include/libzfs_impl.h
deleted file mode 100644 (file)
index 2389b78..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * CDDL HEADER SART
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _LIBFS_IMPL_H
-#define        _LIBFS_IMPL_H
-
-#include <sys/dmu.h>
-#include <sys/fs/zfs.h>
-#include <sys/zfs_ioctl.h>
-#include <sys/spa.h>
-#include <sys/nvpair.h>
-
-#include <libuutil.h>
-#include <libzfs.h>
-#include <libshare.h>
-
-#if defined(HAVE_LIBTOPO)
-#include <fm/libtopo.h>
-#endif /* HAVE_LIBTOPO */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef VERIFY
-#undef VERIFY
-#endif
-#define        VERIFY  verify
-
-typedef struct libzfs_fru {
-       char *zf_device;
-       char *zf_fru;
-       struct libzfs_fru *zf_chain;
-       struct libzfs_fru *zf_next;
-} libzfs_fru_t;
-
-struct libzfs_handle {
-       int libzfs_error;
-       int libzfs_fd;
-       FILE *libzfs_mnttab;
-       FILE *libzfs_sharetab;
-       zpool_handle_t *libzfs_pool_handles;
-       uu_avl_pool_t *libzfs_ns_avlpool;
-       uu_avl_t *libzfs_ns_avl;
-       uint64_t libzfs_ns_gen;
-       int libzfs_desc_active;
-       char libzfs_action[1024];
-       char libzfs_desc[1024];
-       char *libzfs_log_str;
-       int libzfs_printerr;
-       int libzfs_storeerr; /* stuff error messages into buffer */
-       void *libzfs_sharehdl; /* libshare handle */
-       uint_t libzfs_shareflags;
-       boolean_t libzfs_mnttab_enable;
-       avl_tree_t libzfs_mnttab_cache;
-       int libzfs_pool_iter;
-#if defined(HAVE_LIBTOPO)
-       topo_hdl_t *libzfs_topo_hdl;
-       libzfs_fru_t **libzfs_fru_hash;
-       libzfs_fru_t *libzfs_fru_list;
-#endif /* HAVE_LIBTOPO */
-       char libzfs_chassis_id[256];
-};
-
-#define        ZFSSHARE_MISS   0x01    /* Didn't find entry in cache */
-
-struct zfs_handle {
-       libzfs_handle_t *zfs_hdl;
-       zpool_handle_t *zpool_hdl;
-       char zfs_name[ZFS_MAXNAMELEN];
-       zfs_type_t zfs_type; /* type including snapshot */
-       zfs_type_t zfs_head_type; /* type excluding snapshot */
-       dmu_objset_stats_t zfs_dmustats;
-       nvlist_t *zfs_props;
-       nvlist_t *zfs_user_props;
-       nvlist_t *zfs_recvd_props;
-       boolean_t zfs_mntcheck;
-       char *zfs_mntopts;
-       uint8_t *zfs_props_table;
-};
-
-/*
- * This is different from checking zfs_type, because it will also catch
- * snapshots of volumes.
- */
-#define        ZFS_IS_VOLUME(zhp) ((zhp)->zfs_head_type == ZFS_TYPE_VOLUME)
-
-struct zpool_handle {
-       libzfs_handle_t *zpool_hdl;
-       zpool_handle_t *zpool_next;
-       char zpool_name[ZPOOL_MAXNAMELEN];
-       int zpool_state;
-       size_t zpool_config_size;
-       nvlist_t *zpool_config;
-       nvlist_t *zpool_old_config;
-       nvlist_t *zpool_props;
-       diskaddr_t zpool_start_block;
-};
-
-typedef  enum {
-       PROTO_NFS = 0,
-       PROTO_SMB = 1,
-       PROTO_END = 2
-} zfs_share_proto_t;
-
-/*
- * The following can be used as a bitmask and any new values
- * added must preserve that capability.
- */
-typedef enum {
-       SHARED_NOT_SHARED = 0x0,
-       SHARED_NFS = 0x2,
-       SHARED_SMB = 0x4
-} zfs_share_type_t;
-
-int zfs_error(libzfs_handle_t *, int, const char *);
-int zfs_error_fmt(libzfs_handle_t *, int, const char *, ...);
-void zfs_error_aux(libzfs_handle_t *, const char *, ...);
-void *zfs_alloc(libzfs_handle_t *, size_t);
-void *zfs_realloc(libzfs_handle_t *, void *, size_t, size_t);
-char *zfs_asprintf(libzfs_handle_t *, const char *, ...);
-char *zfs_strdup(libzfs_handle_t *, const char *);
-int no_memory(libzfs_handle_t *);
-
-int zfs_standard_error(libzfs_handle_t *, int, const char *);
-int zfs_standard_error_fmt(libzfs_handle_t *, int, const char *, ...);
-int zpool_standard_error(libzfs_handle_t *, int, const char *);
-int zpool_standard_error_fmt(libzfs_handle_t *, int, const char *, ...);
-
-int get_dependents(libzfs_handle_t *, boolean_t, const char *, char ***,
-    size_t *);
-
-
-int zprop_parse_value(libzfs_handle_t *, nvpair_t *, int, zfs_type_t,
-    nvlist_t *, char **, uint64_t *, const char *);
-int zprop_expand_list(libzfs_handle_t *hdl, zprop_list_t **plp,
-    zfs_type_t type);
-
-/*
- * Use this changelist_gather() flag to force attempting mounts
- * on each change node regardless of whether or not it is currently
- * mounted.
- */
-#define        CL_GATHER_MOUNT_ALWAYS  1
-
-typedef struct prop_changelist prop_changelist_t;
-
-int zcmd_alloc_dst_nvlist(libzfs_handle_t *, zfs_cmd_t *, size_t);
-int zcmd_write_src_nvlist(libzfs_handle_t *, zfs_cmd_t *, nvlist_t *);
-int zcmd_write_conf_nvlist(libzfs_handle_t *, zfs_cmd_t *, nvlist_t *);
-int zcmd_expand_dst_nvlist(libzfs_handle_t *, zfs_cmd_t *);
-int zcmd_read_dst_nvlist(libzfs_handle_t *, zfs_cmd_t *, nvlist_t **);
-void zcmd_free_nvlists(zfs_cmd_t *);
-
-int changelist_prefix(prop_changelist_t *);
-int changelist_postfix(prop_changelist_t *);
-void changelist_rename(prop_changelist_t *, const char *, const char *);
-void changelist_remove(prop_changelist_t *, const char *);
-void changelist_free(prop_changelist_t *);
-prop_changelist_t *changelist_gather(zfs_handle_t *, zfs_prop_t, int, int);
-int changelist_unshare(prop_changelist_t *, zfs_share_proto_t *);
-int changelist_haszonedchild(prop_changelist_t *);
-
-void remove_mountpoint(zfs_handle_t *);
-int create_parents(libzfs_handle_t *, char *, int);
-boolean_t isa_child_of(const char *dataset, const char *parent);
-
-zfs_handle_t *make_dataset_handle(libzfs_handle_t *, const char *);
-
-int zpool_open_silent(libzfs_handle_t *, const char *, zpool_handle_t **);
-
-int zvol_create_link(libzfs_handle_t *, const char *);
-int zvol_remove_link(libzfs_handle_t *, const char *);
-boolean_t zpool_name_valid(libzfs_handle_t *, boolean_t, const char *);
-
-int zfs_validate_name(libzfs_handle_t *hdl, const char *path, int type,
-    boolean_t modifying);
-
-void namespace_clear(libzfs_handle_t *);
-
-/*
- * libshare (sharemgr) interfaces used internally.
- */
-
-extern int zfs_init_libshare(libzfs_handle_t *, int);
-extern void zfs_uninit_libshare(libzfs_handle_t *);
-extern int zfs_parse_options(char *, zfs_share_proto_t);
-
-extern int zfs_unshare_proto(zfs_handle_t *,
-    const char *, zfs_share_proto_t *);
-
-extern void libzfs_fru_clear(libzfs_handle_t *, boolean_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _LIBFS_IMPL_H */
index f91b4d07824a06d136ef5afa8d436aee4f9ebbaf..388b631e540cd2c2d4732dbef11da761b32ce4fd 100644 (file)
@@ -2,166 +2,109 @@ include $(top_srcdir)/config/Rules.am
 
 AM_CFLAGS += $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
 
-SUBDIRS = include
 DEFAULT_INCLUDES += \
-       -I${top_srcdir}/lib/libzpool/include \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include \
-       -I${top_srcdir}/module/zfs/include
+       -I$(top_srcdir)/include \
+       -I$(top_srcdir)/lib/libspl/include
 
 lib_LTLIBRARIES = libzpool.la
 
 libzpool_la_LIBADD = \
-       ${top_srcdir}/lib/libunicode/libunicode.la \
-       ${top_srcdir}/lib/libavl/libavl.la \
-       ${top_srcdir}/lib/libspl/libspl.la
+       $(top_builddir)/lib/libunicode/libunicode.la \
+       $(top_builddir)/lib/libavl/libavl.la \
+       $(top_builddir)/lib/libspl/libspl.la
 
 libzpool_la_SOURCES = \
-       ${top_srcdir}/lib/libzpool/kernel.c \
-       ${top_srcdir}/lib/libzpool/taskq.c \
-       ${top_srcdir}/lib/libzpool/util.c \
-       ${top_srcdir}/module/zcommon/zfs_comutil.c \
-       ${top_srcdir}/module/zcommon/zfs_deleg.c \
-       ${top_srcdir}/module/zcommon/zfs_fletcher.c \
-       ${top_srcdir}/module/zcommon/zfs_namecheck.c \
-       ${top_srcdir}/module/zcommon/zfs_prop.c \
-       ${top_srcdir}/module/zcommon/zpool_prop.c \
-       ${top_srcdir}/module/zcommon/zprop_common.c \
-       ${top_srcdir}/module/zcommon/include/sys/fs \
-       ${top_srcdir}/module/zcommon/include/sys/fs/zfs.h \
-       ${top_srcdir}/module/zcommon/include/zfs_comutil.h \
-       ${top_srcdir}/module/zcommon/include/zfs_deleg.h \
-       ${top_srcdir}/module/zcommon/include/zfs_fletcher.h \
-       ${top_srcdir}/module/zcommon/include/zfs_namecheck.h \
-       ${top_srcdir}/module/zcommon/include/zfs_prop.h \
-       ${top_srcdir}/module/zfs/arc.c \
-       ${top_srcdir}/module/zfs/bplist.c \
-       ${top_srcdir}/module/zfs/bpobj.c \
-       ${top_srcdir}/module/zfs/dbuf.c \
-       ${top_srcdir}/module/zfs/ddt.c \
-       ${top_srcdir}/module/zfs/ddt_zap.c \
-       ${top_srcdir}/module/zfs/dmu.c \
-       ${top_srcdir}/module/zfs/dmu_diff.c \
-       ${top_srcdir}/module/zfs/dmu_object.c \
-       ${top_srcdir}/module/zfs/dmu_objset.c \
-       ${top_srcdir}/module/zfs/dmu_send.c \
-       ${top_srcdir}/module/zfs/dmu_traverse.c \
-       ${top_srcdir}/module/zfs/dmu_tx.c \
-       ${top_srcdir}/module/zfs/dmu_zfetch.c \
-       ${top_srcdir}/module/zfs/dnode.c \
-       ${top_srcdir}/module/zfs/dnode_sync.c \
-       ${top_srcdir}/module/zfs/dsl_dataset.c \
-       ${top_srcdir}/module/zfs/dsl_deadlist.c \
-       ${top_srcdir}/module/zfs/dsl_deleg.c \
-       ${top_srcdir}/module/zfs/dsl_dir.c \
-       ${top_srcdir}/module/zfs/dsl_pool.c \
-       ${top_srcdir}/module/zfs/dsl_prop.c \
-       ${top_srcdir}/module/zfs/dsl_scan.c \
-       ${top_srcdir}/module/zfs/dsl_synctask.c \
-       ${top_srcdir}/module/zfs/fm.c \
-       ${top_srcdir}/module/zfs/gzip.c \
-       ${top_srcdir}/module/zfs/lzjb.c \
-       ${top_srcdir}/module/zfs/metaslab.c \
-       ${top_srcdir}/module/zfs/refcount.c \
-       ${top_srcdir}/module/zfs/rrwlock.c \
-       ${top_srcdir}/module/zfs/sa.c \
-       ${top_srcdir}/module/zfs/sha256.c \
-       ${top_srcdir}/module/zfs/spa.c \
-       ${top_srcdir}/module/zfs/spa_boot.c \
-       ${top_srcdir}/module/zfs/spa_config.c \
-       ${top_srcdir}/module/zfs/spa_errlog.c \
-       ${top_srcdir}/module/zfs/spa_history.c \
-       ${top_srcdir}/module/zfs/spa_misc.c \
-       ${top_srcdir}/module/zfs/space_map.c \
-       ${top_srcdir}/module/zfs/txg.c \
-       ${top_srcdir}/module/zfs/uberblock.c \
-       ${top_srcdir}/module/zfs/unique.c \
-       ${top_srcdir}/module/zfs/vdev.c \
-       ${top_srcdir}/module/zfs/vdev_cache.c \
-       ${top_srcdir}/module/zfs/vdev_file.c \
-       ${top_srcdir}/module/zfs/vdev_label.c \
-       ${top_srcdir}/module/zfs/vdev_mirror.c \
-       ${top_srcdir}/module/zfs/vdev_missing.c \
-       ${top_srcdir}/module/zfs/vdev_queue.c \
-       ${top_srcdir}/module/zfs/vdev_raidz.c \
-       ${top_srcdir}/module/zfs/vdev_root.c \
-       ${top_srcdir}/module/zfs/zap.c \
-       ${top_srcdir}/module/zfs/zap_leaf.c \
-       ${top_srcdir}/module/zfs/zap_micro.c \
-       ${top_srcdir}/module/zfs/zfs_byteswap.c \
-       ${top_srcdir}/module/zfs/zfs_debug.c \
-       ${top_srcdir}/module/zfs/zfs_fm.c \
-       ${top_srcdir}/module/zfs/zfs_fuid.c \
-       ${top_srcdir}/module/zfs/zfs_sa.c \
-       ${top_srcdir}/module/zfs/zfs_znode.c \
-       ${top_srcdir}/module/zfs/zil.c \
-       ${top_srcdir}/module/zfs/zio.c \
-       ${top_srcdir}/module/zfs/zio_checksum.c \
-       ${top_srcdir}/module/zfs/zio_compress.c \
-       ${top_srcdir}/module/zfs/zio_inject.c \
-       ${top_srcdir}/module/zfs/zle.c \
-       ${top_srcdir}/module/zfs/zrlock.c \
-       ${top_srcdir}/module/zfs/include/sys/arc.h \
-       ${top_srcdir}/module/zfs/include/sys/bplist.h \
-       ${top_srcdir}/module/zfs/include/sys/dbuf.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu_objset.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu_traverse.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu_tx.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu_zfetch.h \
-       ${top_srcdir}/module/zfs/include/sys/dnode.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_dataset.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_deleg.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_dir.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_pool.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_prop.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_synctask.h \
-       ${top_srcdir}/module/zfs/include/sys/metaslab.h \
-       ${top_srcdir}/module/zfs/include/sys/metaslab_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/refcount.h \
-       ${top_srcdir}/module/zfs/include/sys/rrwlock.h \
-       ${top_srcdir}/module/zfs/include/sys/spa_boot.h \
-       ${top_srcdir}/module/zfs/include/sys/space_map.h \
-       ${top_srcdir}/module/zfs/include/sys/spa.h \
-       ${top_srcdir}/module/zfs/include/sys/spa_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/txg.h \
-       ${top_srcdir}/module/zfs/include/sys/txg_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/uberblock.h \
-       ${top_srcdir}/module/zfs/include/sys/uberblock_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/unique.h \
-       ${top_srcdir}/module/zfs/include/sys/vdev_file.h \
-       ${top_srcdir}/module/zfs/include/sys/vdev.h \
-       ${top_srcdir}/module/zfs/include/sys/vdev_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/zap.h \
-       ${top_srcdir}/module/zfs/include/sys/zap_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/zap_leaf.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_acl.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_context.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_ctldir.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_debug.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_dir.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_fuid.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_ioctl.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_onexit.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_rlock.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_stat.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_vfsops.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_znode.h \
-       ${top_srcdir}/module/zfs/include/sys/zil.h \
-       ${top_srcdir}/module/zfs/include/sys/zil_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/zio_checksum.h \
-       ${top_srcdir}/module/zfs/include/sys/zio_compress.h \
-       ${top_srcdir}/module/zfs/include/sys/zio.h \
-       ${top_srcdir}/module/zfs/include/sys/zio_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/zrlock.h \
-       ${top_srcdir}/module/zfs/include/sys/zvol.h \
-       ${top_srcdir}/module/zfs/include/sys/fm/protocol.h \
-       ${top_srcdir}/module/zfs/include/sys/fm/util.h \
-       ${top_srcdir}/module/zfs/include/sys/fm/fs/zfs.h
+       $(top_srcdir)/lib/libzpool/kernel.c \
+       $(top_srcdir)/lib/libzpool/taskq.c \
+       $(top_srcdir)/lib/libzpool/util.c \
+       $(top_srcdir)/module/zcommon/zfs_comutil.c \
+       $(top_srcdir)/module/zcommon/zfs_deleg.c \
+       $(top_srcdir)/module/zcommon/zfs_fletcher.c \
+       $(top_srcdir)/module/zcommon/zfs_namecheck.c \
+       $(top_srcdir)/module/zcommon/zfs_prop.c \
+       $(top_srcdir)/module/zcommon/zpool_prop.c \
+       $(top_srcdir)/module/zcommon/zprop_common.c \
+       $(top_srcdir)/module/zfs/arc.c \
+       $(top_srcdir)/module/zfs/bplist.c \
+       $(top_srcdir)/module/zfs/bpobj.c \
+       $(top_srcdir)/module/zfs/dbuf.c \
+       $(top_srcdir)/module/zfs/ddt.c \
+       $(top_srcdir)/module/zfs/ddt_zap.c \
+       $(top_srcdir)/module/zfs/dmu.c \
+       $(top_srcdir)/module/zfs/dmu_diff.c \
+       $(top_srcdir)/module/zfs/dmu_object.c \
+       $(top_srcdir)/module/zfs/dmu_objset.c \
+       $(top_srcdir)/module/zfs/dmu_send.c \
+       $(top_srcdir)/module/zfs/dmu_traverse.c \
+       $(top_srcdir)/module/zfs/dmu_tx.c \
+       $(top_srcdir)/module/zfs/dmu_zfetch.c \
+       $(top_srcdir)/module/zfs/dnode.c \
+       $(top_srcdir)/module/zfs/dnode_sync.c \
+       $(top_srcdir)/module/zfs/dsl_dataset.c \
+       $(top_srcdir)/module/zfs/dsl_deadlist.c \
+       $(top_srcdir)/module/zfs/dsl_deleg.c \
+       $(top_srcdir)/module/zfs/dsl_dir.c \
+       $(top_srcdir)/module/zfs/dsl_pool.c \
+       $(top_srcdir)/module/zfs/dsl_prop.c \
+       $(top_srcdir)/module/zfs/dsl_scan.c \
+       $(top_srcdir)/module/zfs/dsl_synctask.c \
+       $(top_srcdir)/module/zfs/fm.c \
+       $(top_srcdir)/module/zfs/gzip.c \
+       $(top_srcdir)/module/zfs/lzjb.c \
+       $(top_srcdir)/module/zfs/metaslab.c \
+       $(top_srcdir)/module/zfs/refcount.c \
+       $(top_srcdir)/module/zfs/rrwlock.c \
+       $(top_srcdir)/module/zfs/sa.c \
+       $(top_srcdir)/module/zfs/sha256.c \
+       $(top_srcdir)/module/zfs/spa.c \
+       $(top_srcdir)/module/zfs/spa_boot.c \
+       $(top_srcdir)/module/zfs/spa_config.c \
+       $(top_srcdir)/module/zfs/spa_errlog.c \
+       $(top_srcdir)/module/zfs/spa_history.c \
+       $(top_srcdir)/module/zfs/spa_misc.c \
+       $(top_srcdir)/module/zfs/space_map.c \
+       $(top_srcdir)/module/zfs/txg.c \
+       $(top_srcdir)/module/zfs/uberblock.c \
+       $(top_srcdir)/module/zfs/unique.c \
+       $(top_srcdir)/module/zfs/vdev.c \
+       $(top_srcdir)/module/zfs/vdev_cache.c \
+       $(top_srcdir)/module/zfs/vdev_file.c \
+       $(top_srcdir)/module/zfs/vdev_label.c \
+       $(top_srcdir)/module/zfs/vdev_mirror.c \
+       $(top_srcdir)/module/zfs/vdev_missing.c \
+       $(top_srcdir)/module/zfs/vdev_queue.c \
+       $(top_srcdir)/module/zfs/vdev_raidz.c \
+       $(top_srcdir)/module/zfs/vdev_root.c \
+       $(top_srcdir)/module/zfs/zap.c \
+       $(top_srcdir)/module/zfs/zap_leaf.c \
+       $(top_srcdir)/module/zfs/zap_micro.c \
+       $(top_srcdir)/module/zfs/zfs_byteswap.c \
+       $(top_srcdir)/module/zfs/zfs_debug.c \
+       $(top_srcdir)/module/zfs/zfs_fm.c \
+       $(top_srcdir)/module/zfs/zfs_fuid.c \
+       $(top_srcdir)/module/zfs/zfs_sa.c \
+       $(top_srcdir)/module/zfs/zfs_znode.c \
+       $(top_srcdir)/module/zfs/zil.c \
+       $(top_srcdir)/module/zfs/zio.c \
+       $(top_srcdir)/module/zfs/zio_checksum.c \
+       $(top_srcdir)/module/zfs/zio_compress.c \
+       $(top_srcdir)/module/zfs/zio_inject.c \
+       $(top_srcdir)/module/zfs/zle.c \
+       $(top_srcdir)/module/zfs/zrlock.c
 
 libzpool_la_LDFLAGS = -pthread
+
+EXTRA_DIST = \
+       $(top_srcdir)/module/zfs/vdev_disk.c \
+       $(top_srcdir)/module/zfs/zfs_acl.c \
+       $(top_srcdir)/module/zfs/zfs_ctldir.c \
+       $(top_srcdir)/module/zfs/zfs_dir.c \
+       $(top_srcdir)/module/zfs/zfs_ioctl.c \
+       $(top_srcdir)/module/zfs/zfs_log.c \
+       $(top_srcdir)/module/zfs/zfs_onexit.c \
+       $(top_srcdir)/module/zfs/zfs_replay.c \
+       $(top_srcdir)/module/zfs/zfs_rlock.c \
+       $(top_srcdir)/module/zfs/zfs_vfsops.c \
+       $(top_srcdir)/module/zfs/zfs_vnops.c \
+       $(top_srcdir)/module/zfs/zvol.c \
+       $(top_srcdir)/module/zpios/pios.c
index 79bd73df6a481b0b66378451e6245779de12e98f..5eb528b7134d54ae84699da0e6e26bb76f947aab 100644 (file)
@@ -98,9 +98,10 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
-libzpool_la_DEPENDENCIES = ${top_srcdir}/lib/libunicode/libunicode.la \
-       ${top_srcdir}/lib/libavl/libavl.la \
-       ${top_srcdir}/lib/libspl/libspl.la
+libzpool_la_DEPENDENCIES =  \
+       $(top_builddir)/lib/libunicode/libunicode.la \
+       $(top_builddir)/lib/libavl/libavl.la \
+       $(top_builddir)/lib/libspl/libspl.la
 am_libzpool_la_OBJECTS = kernel.lo taskq.lo util.lo zfs_comutil.lo \
        zfs_deleg.lo zfs_fletcher.lo zfs_namecheck.lo zfs_prop.lo \
        zpool_prop.lo zprop_common.lo arc.lo bplist.lo bpobj.lo \
@@ -151,47 +152,9 @@ am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN   " $@;
 SOURCES = $(libzpool_la_SOURCES)
 DIST_SOURCES = $(libzpool_la_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-       html-recursive info-recursive install-data-recursive \
-       install-dvi-recursive install-exec-recursive \
-       install-html-recursive install-info-recursive \
-       install-pdf-recursive install-ps-recursive install-recursive \
-       installcheck-recursive installdirs-recursive pdf-recursive \
-       ps-recursive uninstall-recursive
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
-  distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-       distdir
 ETAGS = etags
 CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 ALIEN = @ALIEN@
 ALIEN_VERSION = @ALIEN_VERSION@
@@ -202,14 +165,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -247,7 +208,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -262,7 +222,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -281,7 +240,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -291,7 +249,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -362,174 +319,116 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h \
-       -I${top_srcdir}/lib/libzpool/include \
-       -I${top_srcdir}/lib/libspl/include \
-       -I${top_srcdir}/lib/libnvpair/include \
-       -I${top_srcdir}/module/zcommon/include \
-       -I${top_srcdir}/module/nvpair/include \
-       -I${top_srcdir}/module/avl/include \
-       -I${top_srcdir}/module/unicode/include \
-       -I${top_srcdir}/module/zfs/include
+DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h \
+       -I$(top_srcdir)/include -I$(top_srcdir)/lib/libspl/include
 AM_LIBTOOLFLAGS = --silent
 AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing \
        ${DEBUG_CFLAGS} -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT \
        -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64 \
        -D_LARGEFILE64_SOURCE -DTEXT_DOMAIN=\"zfs-linux-user\" \
        $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
-SUBDIRS = include
 lib_LTLIBRARIES = libzpool.la
 libzpool_la_LIBADD = \
-       ${top_srcdir}/lib/libunicode/libunicode.la \
-       ${top_srcdir}/lib/libavl/libavl.la \
-       ${top_srcdir}/lib/libspl/libspl.la
+       $(top_builddir)/lib/libunicode/libunicode.la \
+       $(top_builddir)/lib/libavl/libavl.la \
+       $(top_builddir)/lib/libspl/libspl.la
 
 libzpool_la_SOURCES = \
-       ${top_srcdir}/lib/libzpool/kernel.c \
-       ${top_srcdir}/lib/libzpool/taskq.c \
-       ${top_srcdir}/lib/libzpool/util.c \
-       ${top_srcdir}/module/zcommon/zfs_comutil.c \
-       ${top_srcdir}/module/zcommon/zfs_deleg.c \
-       ${top_srcdir}/module/zcommon/zfs_fletcher.c \
-       ${top_srcdir}/module/zcommon/zfs_namecheck.c \
-       ${top_srcdir}/module/zcommon/zfs_prop.c \
-       ${top_srcdir}/module/zcommon/zpool_prop.c \
-       ${top_srcdir}/module/zcommon/zprop_common.c \
-       ${top_srcdir}/module/zcommon/include/sys/fs \
-       ${top_srcdir}/module/zcommon/include/sys/fs/zfs.h \
-       ${top_srcdir}/module/zcommon/include/zfs_comutil.h \
-       ${top_srcdir}/module/zcommon/include/zfs_deleg.h \
-       ${top_srcdir}/module/zcommon/include/zfs_fletcher.h \
-       ${top_srcdir}/module/zcommon/include/zfs_namecheck.h \
-       ${top_srcdir}/module/zcommon/include/zfs_prop.h \
-       ${top_srcdir}/module/zfs/arc.c \
-       ${top_srcdir}/module/zfs/bplist.c \
-       ${top_srcdir}/module/zfs/bpobj.c \
-       ${top_srcdir}/module/zfs/dbuf.c \
-       ${top_srcdir}/module/zfs/ddt.c \
-       ${top_srcdir}/module/zfs/ddt_zap.c \
-       ${top_srcdir}/module/zfs/dmu.c \
-       ${top_srcdir}/module/zfs/dmu_diff.c \
-       ${top_srcdir}/module/zfs/dmu_object.c \
-       ${top_srcdir}/module/zfs/dmu_objset.c \
-       ${top_srcdir}/module/zfs/dmu_send.c \
-       ${top_srcdir}/module/zfs/dmu_traverse.c \
-       ${top_srcdir}/module/zfs/dmu_tx.c \
-       ${top_srcdir}/module/zfs/dmu_zfetch.c \
-       ${top_srcdir}/module/zfs/dnode.c \
-       ${top_srcdir}/module/zfs/dnode_sync.c \
-       ${top_srcdir}/module/zfs/dsl_dataset.c \
-       ${top_srcdir}/module/zfs/dsl_deadlist.c \
-       ${top_srcdir}/module/zfs/dsl_deleg.c \
-       ${top_srcdir}/module/zfs/dsl_dir.c \
-       ${top_srcdir}/module/zfs/dsl_pool.c \
-       ${top_srcdir}/module/zfs/dsl_prop.c \
-       ${top_srcdir}/module/zfs/dsl_scan.c \
-       ${top_srcdir}/module/zfs/dsl_synctask.c \
-       ${top_srcdir}/module/zfs/fm.c \
-       ${top_srcdir}/module/zfs/gzip.c \
-       ${top_srcdir}/module/zfs/lzjb.c \
-       ${top_srcdir}/module/zfs/metaslab.c \
-       ${top_srcdir}/module/zfs/refcount.c \
-       ${top_srcdir}/module/zfs/rrwlock.c \
-       ${top_srcdir}/module/zfs/sa.c \
-       ${top_srcdir}/module/zfs/sha256.c \
-       ${top_srcdir}/module/zfs/spa.c \
-       ${top_srcdir}/module/zfs/spa_boot.c \
-       ${top_srcdir}/module/zfs/spa_config.c \
-       ${top_srcdir}/module/zfs/spa_errlog.c \
-       ${top_srcdir}/module/zfs/spa_history.c \
-       ${top_srcdir}/module/zfs/spa_misc.c \
-       ${top_srcdir}/module/zfs/space_map.c \
-       ${top_srcdir}/module/zfs/txg.c \
-       ${top_srcdir}/module/zfs/uberblock.c \
-       ${top_srcdir}/module/zfs/unique.c \
-       ${top_srcdir}/module/zfs/vdev.c \
-       ${top_srcdir}/module/zfs/vdev_cache.c \
-       ${top_srcdir}/module/zfs/vdev_file.c \
-       ${top_srcdir}/module/zfs/vdev_label.c \
-       ${top_srcdir}/module/zfs/vdev_mirror.c \
-       ${top_srcdir}/module/zfs/vdev_missing.c \
-       ${top_srcdir}/module/zfs/vdev_queue.c \
-       ${top_srcdir}/module/zfs/vdev_raidz.c \
-       ${top_srcdir}/module/zfs/vdev_root.c \
-       ${top_srcdir}/module/zfs/zap.c \
-       ${top_srcdir}/module/zfs/zap_leaf.c \
-       ${top_srcdir}/module/zfs/zap_micro.c \
-       ${top_srcdir}/module/zfs/zfs_byteswap.c \
-       ${top_srcdir}/module/zfs/zfs_debug.c \
-       ${top_srcdir}/module/zfs/zfs_fm.c \
-       ${top_srcdir}/module/zfs/zfs_fuid.c \
-       ${top_srcdir}/module/zfs/zfs_sa.c \
-       ${top_srcdir}/module/zfs/zfs_znode.c \
-       ${top_srcdir}/module/zfs/zil.c \
-       ${top_srcdir}/module/zfs/zio.c \
-       ${top_srcdir}/module/zfs/zio_checksum.c \
-       ${top_srcdir}/module/zfs/zio_compress.c \
-       ${top_srcdir}/module/zfs/zio_inject.c \
-       ${top_srcdir}/module/zfs/zle.c \
-       ${top_srcdir}/module/zfs/zrlock.c \
-       ${top_srcdir}/module/zfs/include/sys/arc.h \
-       ${top_srcdir}/module/zfs/include/sys/bplist.h \
-       ${top_srcdir}/module/zfs/include/sys/dbuf.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu_objset.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu_traverse.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu_tx.h \
-       ${top_srcdir}/module/zfs/include/sys/dmu_zfetch.h \
-       ${top_srcdir}/module/zfs/include/sys/dnode.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_dataset.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_deleg.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_dir.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_pool.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_prop.h \
-       ${top_srcdir}/module/zfs/include/sys/dsl_synctask.h \
-       ${top_srcdir}/module/zfs/include/sys/metaslab.h \
-       ${top_srcdir}/module/zfs/include/sys/metaslab_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/refcount.h \
-       ${top_srcdir}/module/zfs/include/sys/rrwlock.h \
-       ${top_srcdir}/module/zfs/include/sys/spa_boot.h \
-       ${top_srcdir}/module/zfs/include/sys/space_map.h \
-       ${top_srcdir}/module/zfs/include/sys/spa.h \
-       ${top_srcdir}/module/zfs/include/sys/spa_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/txg.h \
-       ${top_srcdir}/module/zfs/include/sys/txg_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/uberblock.h \
-       ${top_srcdir}/module/zfs/include/sys/uberblock_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/unique.h \
-       ${top_srcdir}/module/zfs/include/sys/vdev_file.h \
-       ${top_srcdir}/module/zfs/include/sys/vdev.h \
-       ${top_srcdir}/module/zfs/include/sys/vdev_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/zap.h \
-       ${top_srcdir}/module/zfs/include/sys/zap_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/zap_leaf.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_acl.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_context.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_ctldir.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_debug.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_dir.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_fuid.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_ioctl.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_onexit.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_rlock.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_stat.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_vfsops.h \
-       ${top_srcdir}/module/zfs/include/sys/zfs_znode.h \
-       ${top_srcdir}/module/zfs/include/sys/zil.h \
-       ${top_srcdir}/module/zfs/include/sys/zil_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/zio_checksum.h \
-       ${top_srcdir}/module/zfs/include/sys/zio_compress.h \
-       ${top_srcdir}/module/zfs/include/sys/zio.h \
-       ${top_srcdir}/module/zfs/include/sys/zio_impl.h \
-       ${top_srcdir}/module/zfs/include/sys/zrlock.h \
-       ${top_srcdir}/module/zfs/include/sys/zvol.h \
-       ${top_srcdir}/module/zfs/include/sys/fm/protocol.h \
-       ${top_srcdir}/module/zfs/include/sys/fm/util.h \
-       ${top_srcdir}/module/zfs/include/sys/fm/fs/zfs.h
+       $(top_srcdir)/lib/libzpool/kernel.c \
+       $(top_srcdir)/lib/libzpool/taskq.c \
+       $(top_srcdir)/lib/libzpool/util.c \
+       $(top_srcdir)/module/zcommon/zfs_comutil.c \
+       $(top_srcdir)/module/zcommon/zfs_deleg.c \
+       $(top_srcdir)/module/zcommon/zfs_fletcher.c \
+       $(top_srcdir)/module/zcommon/zfs_namecheck.c \
+       $(top_srcdir)/module/zcommon/zfs_prop.c \
+       $(top_srcdir)/module/zcommon/zpool_prop.c \
+       $(top_srcdir)/module/zcommon/zprop_common.c \
+       $(top_srcdir)/module/zfs/arc.c \
+       $(top_srcdir)/module/zfs/bplist.c \
+       $(top_srcdir)/module/zfs/bpobj.c \
+       $(top_srcdir)/module/zfs/dbuf.c \
+       $(top_srcdir)/module/zfs/ddt.c \
+       $(top_srcdir)/module/zfs/ddt_zap.c \
+       $(top_srcdir)/module/zfs/dmu.c \
+       $(top_srcdir)/module/zfs/dmu_diff.c \
+       $(top_srcdir)/module/zfs/dmu_object.c \
+       $(top_srcdir)/module/zfs/dmu_objset.c \
+       $(top_srcdir)/module/zfs/dmu_send.c \
+       $(top_srcdir)/module/zfs/dmu_traverse.c \
+       $(top_srcdir)/module/zfs/dmu_tx.c \
+       $(top_srcdir)/module/zfs/dmu_zfetch.c \
+       $(top_srcdir)/module/zfs/dnode.c \
+       $(top_srcdir)/module/zfs/dnode_sync.c \
+       $(top_srcdir)/module/zfs/dsl_dataset.c \
+       $(top_srcdir)/module/zfs/dsl_deadlist.c \
+       $(top_srcdir)/module/zfs/dsl_deleg.c \
+       $(top_srcdir)/module/zfs/dsl_dir.c \
+       $(top_srcdir)/module/zfs/dsl_pool.c \
+       $(top_srcdir)/module/zfs/dsl_prop.c \
+       $(top_srcdir)/module/zfs/dsl_scan.c \
+       $(top_srcdir)/module/zfs/dsl_synctask.c \
+       $(top_srcdir)/module/zfs/fm.c \
+       $(top_srcdir)/module/zfs/gzip.c \
+       $(top_srcdir)/module/zfs/lzjb.c \
+       $(top_srcdir)/module/zfs/metaslab.c \
+       $(top_srcdir)/module/zfs/refcount.c \
+       $(top_srcdir)/module/zfs/rrwlock.c \
+       $(top_srcdir)/module/zfs/sa.c \
+       $(top_srcdir)/module/zfs/sha256.c \
+       $(top_srcdir)/module/zfs/spa.c \
+       $(top_srcdir)/module/zfs/spa_boot.c \
+       $(top_srcdir)/module/zfs/spa_config.c \
+       $(top_srcdir)/module/zfs/spa_errlog.c \
+       $(top_srcdir)/module/zfs/spa_history.c \
+       $(top_srcdir)/module/zfs/spa_misc.c \
+       $(top_srcdir)/module/zfs/space_map.c \
+       $(top_srcdir)/module/zfs/txg.c \
+       $(top_srcdir)/module/zfs/uberblock.c \
+       $(top_srcdir)/module/zfs/unique.c \
+       $(top_srcdir)/module/zfs/vdev.c \
+       $(top_srcdir)/module/zfs/vdev_cache.c \
+       $(top_srcdir)/module/zfs/vdev_file.c \
+       $(top_srcdir)/module/zfs/vdev_label.c \
+       $(top_srcdir)/module/zfs/vdev_mirror.c \
+       $(top_srcdir)/module/zfs/vdev_missing.c \
+       $(top_srcdir)/module/zfs/vdev_queue.c \
+       $(top_srcdir)/module/zfs/vdev_raidz.c \
+       $(top_srcdir)/module/zfs/vdev_root.c \
+       $(top_srcdir)/module/zfs/zap.c \
+       $(top_srcdir)/module/zfs/zap_leaf.c \
+       $(top_srcdir)/module/zfs/zap_micro.c \
+       $(top_srcdir)/module/zfs/zfs_byteswap.c \
+       $(top_srcdir)/module/zfs/zfs_debug.c \
+       $(top_srcdir)/module/zfs/zfs_fm.c \
+       $(top_srcdir)/module/zfs/zfs_fuid.c \
+       $(top_srcdir)/module/zfs/zfs_sa.c \
+       $(top_srcdir)/module/zfs/zfs_znode.c \
+       $(top_srcdir)/module/zfs/zil.c \
+       $(top_srcdir)/module/zfs/zio.c \
+       $(top_srcdir)/module/zfs/zio_checksum.c \
+       $(top_srcdir)/module/zfs/zio_compress.c \
+       $(top_srcdir)/module/zfs/zio_inject.c \
+       $(top_srcdir)/module/zfs/zle.c \
+       $(top_srcdir)/module/zfs/zrlock.c
 
 libzpool_la_LDFLAGS = -pthread
-all: all-recursive
+EXTRA_DIST = \
+       $(top_srcdir)/module/zfs/vdev_disk.c \
+       $(top_srcdir)/module/zfs/zfs_acl.c \
+       $(top_srcdir)/module/zfs/zfs_ctldir.c \
+       $(top_srcdir)/module/zfs/zfs_dir.c \
+       $(top_srcdir)/module/zfs/zfs_ioctl.c \
+       $(top_srcdir)/module/zfs/zfs_log.c \
+       $(top_srcdir)/module/zfs/zfs_onexit.c \
+       $(top_srcdir)/module/zfs/zfs_replay.c \
+       $(top_srcdir)/module/zfs/zfs_rlock.c \
+       $(top_srcdir)/module/zfs/zfs_vfsops.c \
+       $(top_srcdir)/module/zfs/zfs_vnops.c \
+       $(top_srcdir)/module/zfs/zvol.c \
+       $(top_srcdir)/module/zpios/pios.c
+
+all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
@@ -705,621 +604,621 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
 
-kernel.lo: ${top_srcdir}/lib/libzpool/kernel.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT kernel.lo -MD -MP -MF $(DEPDIR)/kernel.Tpo -c -o kernel.lo `test -f '${top_srcdir}/lib/libzpool/kernel.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzpool/kernel.c
+kernel.lo: $(top_srcdir)/lib/libzpool/kernel.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT kernel.lo -MD -MP -MF $(DEPDIR)/kernel.Tpo -c -o kernel.lo `test -f '$(top_srcdir)/lib/libzpool/kernel.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzpool/kernel.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/kernel.Tpo $(DEPDIR)/kernel.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzpool/kernel.c' object='kernel.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzpool/kernel.c' object='kernel.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kernel.lo `test -f '${top_srcdir}/lib/libzpool/kernel.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzpool/kernel.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kernel.lo `test -f '$(top_srcdir)/lib/libzpool/kernel.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzpool/kernel.c
 
-taskq.lo: ${top_srcdir}/lib/libzpool/taskq.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT taskq.lo -MD -MP -MF $(DEPDIR)/taskq.Tpo -c -o taskq.lo `test -f '${top_srcdir}/lib/libzpool/taskq.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzpool/taskq.c
+taskq.lo: $(top_srcdir)/lib/libzpool/taskq.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT taskq.lo -MD -MP -MF $(DEPDIR)/taskq.Tpo -c -o taskq.lo `test -f '$(top_srcdir)/lib/libzpool/taskq.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzpool/taskq.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/taskq.Tpo $(DEPDIR)/taskq.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzpool/taskq.c' object='taskq.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzpool/taskq.c' object='taskq.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o taskq.lo `test -f '${top_srcdir}/lib/libzpool/taskq.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzpool/taskq.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o taskq.lo `test -f '$(top_srcdir)/lib/libzpool/taskq.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzpool/taskq.c
 
-util.lo: ${top_srcdir}/lib/libzpool/util.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT util.lo -MD -MP -MF $(DEPDIR)/util.Tpo -c -o util.lo `test -f '${top_srcdir}/lib/libzpool/util.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzpool/util.c
+util.lo: $(top_srcdir)/lib/libzpool/util.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT util.lo -MD -MP -MF $(DEPDIR)/util.Tpo -c -o util.lo `test -f '$(top_srcdir)/lib/libzpool/util.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzpool/util.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/util.Tpo $(DEPDIR)/util.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/lib/libzpool/util.c' object='util.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/lib/libzpool/util.c' object='util.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o util.lo `test -f '${top_srcdir}/lib/libzpool/util.c' || echo '$(srcdir)/'`${top_srcdir}/lib/libzpool/util.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o util.lo `test -f '$(top_srcdir)/lib/libzpool/util.c' || echo '$(srcdir)/'`$(top_srcdir)/lib/libzpool/util.c
 
-zfs_comutil.lo: ${top_srcdir}/module/zcommon/zfs_comutil.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_comutil.lo -MD -MP -MF $(DEPDIR)/zfs_comutil.Tpo -c -o zfs_comutil.lo `test -f '${top_srcdir}/module/zcommon/zfs_comutil.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zfs_comutil.c
+zfs_comutil.lo: $(top_srcdir)/module/zcommon/zfs_comutil.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_comutil.lo -MD -MP -MF $(DEPDIR)/zfs_comutil.Tpo -c -o zfs_comutil.lo `test -f '$(top_srcdir)/module/zcommon/zfs_comutil.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zfs_comutil.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_comutil.Tpo $(DEPDIR)/zfs_comutil.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zcommon/zfs_comutil.c' object='zfs_comutil.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zcommon/zfs_comutil.c' object='zfs_comutil.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_comutil.lo `test -f '${top_srcdir}/module/zcommon/zfs_comutil.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zfs_comutil.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_comutil.lo `test -f '$(top_srcdir)/module/zcommon/zfs_comutil.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zfs_comutil.c
 
-zfs_deleg.lo: ${top_srcdir}/module/zcommon/zfs_deleg.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_deleg.lo -MD -MP -MF $(DEPDIR)/zfs_deleg.Tpo -c -o zfs_deleg.lo `test -f '${top_srcdir}/module/zcommon/zfs_deleg.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zfs_deleg.c
+zfs_deleg.lo: $(top_srcdir)/module/zcommon/zfs_deleg.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_deleg.lo -MD -MP -MF $(DEPDIR)/zfs_deleg.Tpo -c -o zfs_deleg.lo `test -f '$(top_srcdir)/module/zcommon/zfs_deleg.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zfs_deleg.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_deleg.Tpo $(DEPDIR)/zfs_deleg.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zcommon/zfs_deleg.c' object='zfs_deleg.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zcommon/zfs_deleg.c' object='zfs_deleg.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_deleg.lo `test -f '${top_srcdir}/module/zcommon/zfs_deleg.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zfs_deleg.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_deleg.lo `test -f '$(top_srcdir)/module/zcommon/zfs_deleg.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zfs_deleg.c
 
-zfs_fletcher.lo: ${top_srcdir}/module/zcommon/zfs_fletcher.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_fletcher.lo -MD -MP -MF $(DEPDIR)/zfs_fletcher.Tpo -c -o zfs_fletcher.lo `test -f '${top_srcdir}/module/zcommon/zfs_fletcher.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zfs_fletcher.c
+zfs_fletcher.lo: $(top_srcdir)/module/zcommon/zfs_fletcher.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_fletcher.lo -MD -MP -MF $(DEPDIR)/zfs_fletcher.Tpo -c -o zfs_fletcher.lo `test -f '$(top_srcdir)/module/zcommon/zfs_fletcher.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zfs_fletcher.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_fletcher.Tpo $(DEPDIR)/zfs_fletcher.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zcommon/zfs_fletcher.c' object='zfs_fletcher.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zcommon/zfs_fletcher.c' object='zfs_fletcher.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_fletcher.lo `test -f '${top_srcdir}/module/zcommon/zfs_fletcher.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zfs_fletcher.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_fletcher.lo `test -f '$(top_srcdir)/module/zcommon/zfs_fletcher.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zfs_fletcher.c
 
-zfs_namecheck.lo: ${top_srcdir}/module/zcommon/zfs_namecheck.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_namecheck.lo -MD -MP -MF $(DEPDIR)/zfs_namecheck.Tpo -c -o zfs_namecheck.lo `test -f '${top_srcdir}/module/zcommon/zfs_namecheck.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zfs_namecheck.c
+zfs_namecheck.lo: $(top_srcdir)/module/zcommon/zfs_namecheck.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_namecheck.lo -MD -MP -MF $(DEPDIR)/zfs_namecheck.Tpo -c -o zfs_namecheck.lo `test -f '$(top_srcdir)/module/zcommon/zfs_namecheck.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zfs_namecheck.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_namecheck.Tpo $(DEPDIR)/zfs_namecheck.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zcommon/zfs_namecheck.c' object='zfs_namecheck.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zcommon/zfs_namecheck.c' object='zfs_namecheck.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_namecheck.lo `test -f '${top_srcdir}/module/zcommon/zfs_namecheck.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zfs_namecheck.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_namecheck.lo `test -f '$(top_srcdir)/module/zcommon/zfs_namecheck.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zfs_namecheck.c
 
-zfs_prop.lo: ${top_srcdir}/module/zcommon/zfs_prop.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_prop.lo -MD -MP -MF $(DEPDIR)/zfs_prop.Tpo -c -o zfs_prop.lo `test -f '${top_srcdir}/module/zcommon/zfs_prop.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zfs_prop.c
+zfs_prop.lo: $(top_srcdir)/module/zcommon/zfs_prop.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_prop.lo -MD -MP -MF $(DEPDIR)/zfs_prop.Tpo -c -o zfs_prop.lo `test -f '$(top_srcdir)/module/zcommon/zfs_prop.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zfs_prop.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_prop.Tpo $(DEPDIR)/zfs_prop.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zcommon/zfs_prop.c' object='zfs_prop.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zcommon/zfs_prop.c' object='zfs_prop.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_prop.lo `test -f '${top_srcdir}/module/zcommon/zfs_prop.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zfs_prop.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_prop.lo `test -f '$(top_srcdir)/module/zcommon/zfs_prop.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zfs_prop.c
 
-zpool_prop.lo: ${top_srcdir}/module/zcommon/zpool_prop.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_prop.lo -MD -MP -MF $(DEPDIR)/zpool_prop.Tpo -c -o zpool_prop.lo `test -f '${top_srcdir}/module/zcommon/zpool_prop.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zpool_prop.c
+zpool_prop.lo: $(top_srcdir)/module/zcommon/zpool_prop.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zpool_prop.lo -MD -MP -MF $(DEPDIR)/zpool_prop.Tpo -c -o zpool_prop.lo `test -f '$(top_srcdir)/module/zcommon/zpool_prop.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zpool_prop.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zpool_prop.Tpo $(DEPDIR)/zpool_prop.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zcommon/zpool_prop.c' object='zpool_prop.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zcommon/zpool_prop.c' object='zpool_prop.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_prop.lo `test -f '${top_srcdir}/module/zcommon/zpool_prop.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zpool_prop.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zpool_prop.lo `test -f '$(top_srcdir)/module/zcommon/zpool_prop.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zpool_prop.c
 
-zprop_common.lo: ${top_srcdir}/module/zcommon/zprop_common.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zprop_common.lo -MD -MP -MF $(DEPDIR)/zprop_common.Tpo -c -o zprop_common.lo `test -f '${top_srcdir}/module/zcommon/zprop_common.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zprop_common.c
+zprop_common.lo: $(top_srcdir)/module/zcommon/zprop_common.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zprop_common.lo -MD -MP -MF $(DEPDIR)/zprop_common.Tpo -c -o zprop_common.lo `test -f '$(top_srcdir)/module/zcommon/zprop_common.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zprop_common.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zprop_common.Tpo $(DEPDIR)/zprop_common.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zcommon/zprop_common.c' object='zprop_common.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zcommon/zprop_common.c' object='zprop_common.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zprop_common.lo `test -f '${top_srcdir}/module/zcommon/zprop_common.c' || echo '$(srcdir)/'`${top_srcdir}/module/zcommon/zprop_common.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zprop_common.lo `test -f '$(top_srcdir)/module/zcommon/zprop_common.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zcommon/zprop_common.c
 
-arc.lo: ${top_srcdir}/module/zfs/arc.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT arc.lo -MD -MP -MF $(DEPDIR)/arc.Tpo -c -o arc.lo `test -f '${top_srcdir}/module/zfs/arc.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/arc.c
+arc.lo: $(top_srcdir)/module/zfs/arc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT arc.lo -MD -MP -MF $(DEPDIR)/arc.Tpo -c -o arc.lo `test -f '$(top_srcdir)/module/zfs/arc.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/arc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/arc.Tpo $(DEPDIR)/arc.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/arc.c' object='arc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/arc.c' object='arc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o arc.lo `test -f '${top_srcdir}/module/zfs/arc.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/arc.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o arc.lo `test -f '$(top_srcdir)/module/zfs/arc.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/arc.c
 
-bplist.lo: ${top_srcdir}/module/zfs/bplist.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bplist.lo -MD -MP -MF $(DEPDIR)/bplist.Tpo -c -o bplist.lo `test -f '${top_srcdir}/module/zfs/bplist.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/bplist.c
+bplist.lo: $(top_srcdir)/module/zfs/bplist.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bplist.lo -MD -MP -MF $(DEPDIR)/bplist.Tpo -c -o bplist.lo `test -f '$(top_srcdir)/module/zfs/bplist.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/bplist.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/bplist.Tpo $(DEPDIR)/bplist.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/bplist.c' object='bplist.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/bplist.c' object='bplist.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bplist.lo `test -f '${top_srcdir}/module/zfs/bplist.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/bplist.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bplist.lo `test -f '$(top_srcdir)/module/zfs/bplist.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/bplist.c
 
-bpobj.lo: ${top_srcdir}/module/zfs/bpobj.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bpobj.lo -MD -MP -MF $(DEPDIR)/bpobj.Tpo -c -o bpobj.lo `test -f '${top_srcdir}/module/zfs/bpobj.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/bpobj.c
+bpobj.lo: $(top_srcdir)/module/zfs/bpobj.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bpobj.lo -MD -MP -MF $(DEPDIR)/bpobj.Tpo -c -o bpobj.lo `test -f '$(top_srcdir)/module/zfs/bpobj.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/bpobj.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/bpobj.Tpo $(DEPDIR)/bpobj.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/bpobj.c' object='bpobj.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/bpobj.c' object='bpobj.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bpobj.lo `test -f '${top_srcdir}/module/zfs/bpobj.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/bpobj.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bpobj.lo `test -f '$(top_srcdir)/module/zfs/bpobj.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/bpobj.c
 
-dbuf.lo: ${top_srcdir}/module/zfs/dbuf.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbuf.lo -MD -MP -MF $(DEPDIR)/dbuf.Tpo -c -o dbuf.lo `test -f '${top_srcdir}/module/zfs/dbuf.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dbuf.c
+dbuf.lo: $(top_srcdir)/module/zfs/dbuf.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbuf.lo -MD -MP -MF $(DEPDIR)/dbuf.Tpo -c -o dbuf.lo `test -f '$(top_srcdir)/module/zfs/dbuf.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dbuf.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dbuf.Tpo $(DEPDIR)/dbuf.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dbuf.c' object='dbuf.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dbuf.c' object='dbuf.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbuf.lo `test -f '${top_srcdir}/module/zfs/dbuf.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dbuf.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbuf.lo `test -f '$(top_srcdir)/module/zfs/dbuf.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dbuf.c
 
-ddt.lo: ${top_srcdir}/module/zfs/ddt.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ddt.lo -MD -MP -MF $(DEPDIR)/ddt.Tpo -c -o ddt.lo `test -f '${top_srcdir}/module/zfs/ddt.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/ddt.c
+ddt.lo: $(top_srcdir)/module/zfs/ddt.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ddt.lo -MD -MP -MF $(DEPDIR)/ddt.Tpo -c -o ddt.lo `test -f '$(top_srcdir)/module/zfs/ddt.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/ddt.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ddt.Tpo $(DEPDIR)/ddt.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/ddt.c' object='ddt.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/ddt.c' object='ddt.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ddt.lo `test -f '${top_srcdir}/module/zfs/ddt.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/ddt.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ddt.lo `test -f '$(top_srcdir)/module/zfs/ddt.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/ddt.c
 
-ddt_zap.lo: ${top_srcdir}/module/zfs/ddt_zap.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ddt_zap.lo -MD -MP -MF $(DEPDIR)/ddt_zap.Tpo -c -o ddt_zap.lo `test -f '${top_srcdir}/module/zfs/ddt_zap.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/ddt_zap.c
+ddt_zap.lo: $(top_srcdir)/module/zfs/ddt_zap.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ddt_zap.lo -MD -MP -MF $(DEPDIR)/ddt_zap.Tpo -c -o ddt_zap.lo `test -f '$(top_srcdir)/module/zfs/ddt_zap.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/ddt_zap.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ddt_zap.Tpo $(DEPDIR)/ddt_zap.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/ddt_zap.c' object='ddt_zap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/ddt_zap.c' object='ddt_zap.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ddt_zap.lo `test -f '${top_srcdir}/module/zfs/ddt_zap.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/ddt_zap.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ddt_zap.lo `test -f '$(top_srcdir)/module/zfs/ddt_zap.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/ddt_zap.c
 
-dmu.lo: ${top_srcdir}/module/zfs/dmu.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu.lo -MD -MP -MF $(DEPDIR)/dmu.Tpo -c -o dmu.lo `test -f '${top_srcdir}/module/zfs/dmu.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu.c
+dmu.lo: $(top_srcdir)/module/zfs/dmu.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu.lo -MD -MP -MF $(DEPDIR)/dmu.Tpo -c -o dmu.lo `test -f '$(top_srcdir)/module/zfs/dmu.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dmu.Tpo $(DEPDIR)/dmu.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dmu.c' object='dmu.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dmu.c' object='dmu.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu.lo `test -f '${top_srcdir}/module/zfs/dmu.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu.lo `test -f '$(top_srcdir)/module/zfs/dmu.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu.c
 
-dmu_diff.lo: ${top_srcdir}/module/zfs/dmu_diff.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_diff.lo -MD -MP -MF $(DEPDIR)/dmu_diff.Tpo -c -o dmu_diff.lo `test -f '${top_srcdir}/module/zfs/dmu_diff.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_diff.c
+dmu_diff.lo: $(top_srcdir)/module/zfs/dmu_diff.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_diff.lo -MD -MP -MF $(DEPDIR)/dmu_diff.Tpo -c -o dmu_diff.lo `test -f '$(top_srcdir)/module/zfs/dmu_diff.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_diff.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dmu_diff.Tpo $(DEPDIR)/dmu_diff.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dmu_diff.c' object='dmu_diff.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dmu_diff.c' object='dmu_diff.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_diff.lo `test -f '${top_srcdir}/module/zfs/dmu_diff.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_diff.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_diff.lo `test -f '$(top_srcdir)/module/zfs/dmu_diff.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_diff.c
 
-dmu_object.lo: ${top_srcdir}/module/zfs/dmu_object.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_object.lo -MD -MP -MF $(DEPDIR)/dmu_object.Tpo -c -o dmu_object.lo `test -f '${top_srcdir}/module/zfs/dmu_object.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_object.c
+dmu_object.lo: $(top_srcdir)/module/zfs/dmu_object.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_object.lo -MD -MP -MF $(DEPDIR)/dmu_object.Tpo -c -o dmu_object.lo `test -f '$(top_srcdir)/module/zfs/dmu_object.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_object.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dmu_object.Tpo $(DEPDIR)/dmu_object.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dmu_object.c' object='dmu_object.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dmu_object.c' object='dmu_object.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_object.lo `test -f '${top_srcdir}/module/zfs/dmu_object.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_object.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_object.lo `test -f '$(top_srcdir)/module/zfs/dmu_object.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_object.c
 
-dmu_objset.lo: ${top_srcdir}/module/zfs/dmu_objset.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_objset.lo -MD -MP -MF $(DEPDIR)/dmu_objset.Tpo -c -o dmu_objset.lo `test -f '${top_srcdir}/module/zfs/dmu_objset.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_objset.c
+dmu_objset.lo: $(top_srcdir)/module/zfs/dmu_objset.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_objset.lo -MD -MP -MF $(DEPDIR)/dmu_objset.Tpo -c -o dmu_objset.lo `test -f '$(top_srcdir)/module/zfs/dmu_objset.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_objset.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dmu_objset.Tpo $(DEPDIR)/dmu_objset.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dmu_objset.c' object='dmu_objset.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dmu_objset.c' object='dmu_objset.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_objset.lo `test -f '${top_srcdir}/module/zfs/dmu_objset.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_objset.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_objset.lo `test -f '$(top_srcdir)/module/zfs/dmu_objset.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_objset.c
 
-dmu_send.lo: ${top_srcdir}/module/zfs/dmu_send.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_send.lo -MD -MP -MF $(DEPDIR)/dmu_send.Tpo -c -o dmu_send.lo `test -f '${top_srcdir}/module/zfs/dmu_send.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_send.c
+dmu_send.lo: $(top_srcdir)/module/zfs/dmu_send.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_send.lo -MD -MP -MF $(DEPDIR)/dmu_send.Tpo -c -o dmu_send.lo `test -f '$(top_srcdir)/module/zfs/dmu_send.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_send.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dmu_send.Tpo $(DEPDIR)/dmu_send.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dmu_send.c' object='dmu_send.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dmu_send.c' object='dmu_send.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_send.lo `test -f '${top_srcdir}/module/zfs/dmu_send.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_send.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_send.lo `test -f '$(top_srcdir)/module/zfs/dmu_send.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_send.c
 
-dmu_traverse.lo: ${top_srcdir}/module/zfs/dmu_traverse.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_traverse.lo -MD -MP -MF $(DEPDIR)/dmu_traverse.Tpo -c -o dmu_traverse.lo `test -f '${top_srcdir}/module/zfs/dmu_traverse.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_traverse.c
+dmu_traverse.lo: $(top_srcdir)/module/zfs/dmu_traverse.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_traverse.lo -MD -MP -MF $(DEPDIR)/dmu_traverse.Tpo -c -o dmu_traverse.lo `test -f '$(top_srcdir)/module/zfs/dmu_traverse.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_traverse.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dmu_traverse.Tpo $(DEPDIR)/dmu_traverse.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dmu_traverse.c' object='dmu_traverse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dmu_traverse.c' object='dmu_traverse.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_traverse.lo `test -f '${top_srcdir}/module/zfs/dmu_traverse.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_traverse.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_traverse.lo `test -f '$(top_srcdir)/module/zfs/dmu_traverse.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_traverse.c
 
-dmu_tx.lo: ${top_srcdir}/module/zfs/dmu_tx.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_tx.lo -MD -MP -MF $(DEPDIR)/dmu_tx.Tpo -c -o dmu_tx.lo `test -f '${top_srcdir}/module/zfs/dmu_tx.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_tx.c
+dmu_tx.lo: $(top_srcdir)/module/zfs/dmu_tx.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_tx.lo -MD -MP -MF $(DEPDIR)/dmu_tx.Tpo -c -o dmu_tx.lo `test -f '$(top_srcdir)/module/zfs/dmu_tx.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_tx.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dmu_tx.Tpo $(DEPDIR)/dmu_tx.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dmu_tx.c' object='dmu_tx.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dmu_tx.c' object='dmu_tx.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_tx.lo `test -f '${top_srcdir}/module/zfs/dmu_tx.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_tx.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_tx.lo `test -f '$(top_srcdir)/module/zfs/dmu_tx.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_tx.c
 
-dmu_zfetch.lo: ${top_srcdir}/module/zfs/dmu_zfetch.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_zfetch.lo -MD -MP -MF $(DEPDIR)/dmu_zfetch.Tpo -c -o dmu_zfetch.lo `test -f '${top_srcdir}/module/zfs/dmu_zfetch.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_zfetch.c
+dmu_zfetch.lo: $(top_srcdir)/module/zfs/dmu_zfetch.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dmu_zfetch.lo -MD -MP -MF $(DEPDIR)/dmu_zfetch.Tpo -c -o dmu_zfetch.lo `test -f '$(top_srcdir)/module/zfs/dmu_zfetch.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_zfetch.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dmu_zfetch.Tpo $(DEPDIR)/dmu_zfetch.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dmu_zfetch.c' object='dmu_zfetch.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dmu_zfetch.c' object='dmu_zfetch.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_zfetch.lo `test -f '${top_srcdir}/module/zfs/dmu_zfetch.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dmu_zfetch.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dmu_zfetch.lo `test -f '$(top_srcdir)/module/zfs/dmu_zfetch.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dmu_zfetch.c
 
-dnode.lo: ${top_srcdir}/module/zfs/dnode.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dnode.lo -MD -MP -MF $(DEPDIR)/dnode.Tpo -c -o dnode.lo `test -f '${top_srcdir}/module/zfs/dnode.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dnode.c
+dnode.lo: $(top_srcdir)/module/zfs/dnode.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dnode.lo -MD -MP -MF $(DEPDIR)/dnode.Tpo -c -o dnode.lo `test -f '$(top_srcdir)/module/zfs/dnode.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dnode.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dnode.Tpo $(DEPDIR)/dnode.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dnode.c' object='dnode.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dnode.c' object='dnode.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dnode.lo `test -f '${top_srcdir}/module/zfs/dnode.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dnode.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dnode.lo `test -f '$(top_srcdir)/module/zfs/dnode.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dnode.c
 
-dnode_sync.lo: ${top_srcdir}/module/zfs/dnode_sync.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dnode_sync.lo -MD -MP -MF $(DEPDIR)/dnode_sync.Tpo -c -o dnode_sync.lo `test -f '${top_srcdir}/module/zfs/dnode_sync.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dnode_sync.c
+dnode_sync.lo: $(top_srcdir)/module/zfs/dnode_sync.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dnode_sync.lo -MD -MP -MF $(DEPDIR)/dnode_sync.Tpo -c -o dnode_sync.lo `test -f '$(top_srcdir)/module/zfs/dnode_sync.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dnode_sync.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dnode_sync.Tpo $(DEPDIR)/dnode_sync.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dnode_sync.c' object='dnode_sync.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dnode_sync.c' object='dnode_sync.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dnode_sync.lo `test -f '${top_srcdir}/module/zfs/dnode_sync.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dnode_sync.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dnode_sync.lo `test -f '$(top_srcdir)/module/zfs/dnode_sync.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dnode_sync.c
 
-dsl_dataset.lo: ${top_srcdir}/module/zfs/dsl_dataset.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_dataset.lo -MD -MP -MF $(DEPDIR)/dsl_dataset.Tpo -c -o dsl_dataset.lo `test -f '${top_srcdir}/module/zfs/dsl_dataset.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_dataset.c
+dsl_dataset.lo: $(top_srcdir)/module/zfs/dsl_dataset.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_dataset.lo -MD -MP -MF $(DEPDIR)/dsl_dataset.Tpo -c -o dsl_dataset.lo `test -f '$(top_srcdir)/module/zfs/dsl_dataset.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_dataset.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dsl_dataset.Tpo $(DEPDIR)/dsl_dataset.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dsl_dataset.c' object='dsl_dataset.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dsl_dataset.c' object='dsl_dataset.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_dataset.lo `test -f '${top_srcdir}/module/zfs/dsl_dataset.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_dataset.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_dataset.lo `test -f '$(top_srcdir)/module/zfs/dsl_dataset.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_dataset.c
 
-dsl_deadlist.lo: ${top_srcdir}/module/zfs/dsl_deadlist.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_deadlist.lo -MD -MP -MF $(DEPDIR)/dsl_deadlist.Tpo -c -o dsl_deadlist.lo `test -f '${top_srcdir}/module/zfs/dsl_deadlist.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_deadlist.c
+dsl_deadlist.lo: $(top_srcdir)/module/zfs/dsl_deadlist.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_deadlist.lo -MD -MP -MF $(DEPDIR)/dsl_deadlist.Tpo -c -o dsl_deadlist.lo `test -f '$(top_srcdir)/module/zfs/dsl_deadlist.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_deadlist.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dsl_deadlist.Tpo $(DEPDIR)/dsl_deadlist.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dsl_deadlist.c' object='dsl_deadlist.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dsl_deadlist.c' object='dsl_deadlist.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_deadlist.lo `test -f '${top_srcdir}/module/zfs/dsl_deadlist.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_deadlist.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_deadlist.lo `test -f '$(top_srcdir)/module/zfs/dsl_deadlist.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_deadlist.c
 
-dsl_deleg.lo: ${top_srcdir}/module/zfs/dsl_deleg.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_deleg.lo -MD -MP -MF $(DEPDIR)/dsl_deleg.Tpo -c -o dsl_deleg.lo `test -f '${top_srcdir}/module/zfs/dsl_deleg.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_deleg.c
+dsl_deleg.lo: $(top_srcdir)/module/zfs/dsl_deleg.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_deleg.lo -MD -MP -MF $(DEPDIR)/dsl_deleg.Tpo -c -o dsl_deleg.lo `test -f '$(top_srcdir)/module/zfs/dsl_deleg.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_deleg.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dsl_deleg.Tpo $(DEPDIR)/dsl_deleg.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dsl_deleg.c' object='dsl_deleg.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dsl_deleg.c' object='dsl_deleg.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_deleg.lo `test -f '${top_srcdir}/module/zfs/dsl_deleg.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_deleg.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_deleg.lo `test -f '$(top_srcdir)/module/zfs/dsl_deleg.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_deleg.c
 
-dsl_dir.lo: ${top_srcdir}/module/zfs/dsl_dir.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_dir.lo -MD -MP -MF $(DEPDIR)/dsl_dir.Tpo -c -o dsl_dir.lo `test -f '${top_srcdir}/module/zfs/dsl_dir.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_dir.c
+dsl_dir.lo: $(top_srcdir)/module/zfs/dsl_dir.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_dir.lo -MD -MP -MF $(DEPDIR)/dsl_dir.Tpo -c -o dsl_dir.lo `test -f '$(top_srcdir)/module/zfs/dsl_dir.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_dir.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dsl_dir.Tpo $(DEPDIR)/dsl_dir.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dsl_dir.c' object='dsl_dir.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dsl_dir.c' object='dsl_dir.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_dir.lo `test -f '${top_srcdir}/module/zfs/dsl_dir.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_dir.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_dir.lo `test -f '$(top_srcdir)/module/zfs/dsl_dir.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_dir.c
 
-dsl_pool.lo: ${top_srcdir}/module/zfs/dsl_pool.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_pool.lo -MD -MP -MF $(DEPDIR)/dsl_pool.Tpo -c -o dsl_pool.lo `test -f '${top_srcdir}/module/zfs/dsl_pool.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_pool.c
+dsl_pool.lo: $(top_srcdir)/module/zfs/dsl_pool.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_pool.lo -MD -MP -MF $(DEPDIR)/dsl_pool.Tpo -c -o dsl_pool.lo `test -f '$(top_srcdir)/module/zfs/dsl_pool.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_pool.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dsl_pool.Tpo $(DEPDIR)/dsl_pool.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dsl_pool.c' object='dsl_pool.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dsl_pool.c' object='dsl_pool.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_pool.lo `test -f '${top_srcdir}/module/zfs/dsl_pool.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_pool.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_pool.lo `test -f '$(top_srcdir)/module/zfs/dsl_pool.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_pool.c
 
-dsl_prop.lo: ${top_srcdir}/module/zfs/dsl_prop.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_prop.lo -MD -MP -MF $(DEPDIR)/dsl_prop.Tpo -c -o dsl_prop.lo `test -f '${top_srcdir}/module/zfs/dsl_prop.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_prop.c
+dsl_prop.lo: $(top_srcdir)/module/zfs/dsl_prop.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_prop.lo -MD -MP -MF $(DEPDIR)/dsl_prop.Tpo -c -o dsl_prop.lo `test -f '$(top_srcdir)/module/zfs/dsl_prop.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_prop.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dsl_prop.Tpo $(DEPDIR)/dsl_prop.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dsl_prop.c' object='dsl_prop.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dsl_prop.c' object='dsl_prop.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_prop.lo `test -f '${top_srcdir}/module/zfs/dsl_prop.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_prop.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_prop.lo `test -f '$(top_srcdir)/module/zfs/dsl_prop.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_prop.c
 
-dsl_scan.lo: ${top_srcdir}/module/zfs/dsl_scan.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_scan.lo -MD -MP -MF $(DEPDIR)/dsl_scan.Tpo -c -o dsl_scan.lo `test -f '${top_srcdir}/module/zfs/dsl_scan.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_scan.c
+dsl_scan.lo: $(top_srcdir)/module/zfs/dsl_scan.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_scan.lo -MD -MP -MF $(DEPDIR)/dsl_scan.Tpo -c -o dsl_scan.lo `test -f '$(top_srcdir)/module/zfs/dsl_scan.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_scan.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dsl_scan.Tpo $(DEPDIR)/dsl_scan.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dsl_scan.c' object='dsl_scan.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dsl_scan.c' object='dsl_scan.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_scan.lo `test -f '${top_srcdir}/module/zfs/dsl_scan.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_scan.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_scan.lo `test -f '$(top_srcdir)/module/zfs/dsl_scan.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_scan.c
 
-dsl_synctask.lo: ${top_srcdir}/module/zfs/dsl_synctask.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_synctask.lo -MD -MP -MF $(DEPDIR)/dsl_synctask.Tpo -c -o dsl_synctask.lo `test -f '${top_srcdir}/module/zfs/dsl_synctask.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_synctask.c
+dsl_synctask.lo: $(top_srcdir)/module/zfs/dsl_synctask.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dsl_synctask.lo -MD -MP -MF $(DEPDIR)/dsl_synctask.Tpo -c -o dsl_synctask.lo `test -f '$(top_srcdir)/module/zfs/dsl_synctask.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_synctask.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/dsl_synctask.Tpo $(DEPDIR)/dsl_synctask.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/dsl_synctask.c' object='dsl_synctask.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/dsl_synctask.c' object='dsl_synctask.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_synctask.lo `test -f '${top_srcdir}/module/zfs/dsl_synctask.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/dsl_synctask.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dsl_synctask.lo `test -f '$(top_srcdir)/module/zfs/dsl_synctask.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/dsl_synctask.c
 
-fm.lo: ${top_srcdir}/module/zfs/fm.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fm.lo -MD -MP -MF $(DEPDIR)/fm.Tpo -c -o fm.lo `test -f '${top_srcdir}/module/zfs/fm.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/fm.c
+fm.lo: $(top_srcdir)/module/zfs/fm.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fm.lo -MD -MP -MF $(DEPDIR)/fm.Tpo -c -o fm.lo `test -f '$(top_srcdir)/module/zfs/fm.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/fm.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/fm.Tpo $(DEPDIR)/fm.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/fm.c' object='fm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/fm.c' object='fm.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fm.lo `test -f '${top_srcdir}/module/zfs/fm.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/fm.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fm.lo `test -f '$(top_srcdir)/module/zfs/fm.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/fm.c
 
-gzip.lo: ${top_srcdir}/module/zfs/gzip.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gzip.lo -MD -MP -MF $(DEPDIR)/gzip.Tpo -c -o gzip.lo `test -f '${top_srcdir}/module/zfs/gzip.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/gzip.c
+gzip.lo: $(top_srcdir)/module/zfs/gzip.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gzip.lo -MD -MP -MF $(DEPDIR)/gzip.Tpo -c -o gzip.lo `test -f '$(top_srcdir)/module/zfs/gzip.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/gzip.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/gzip.Tpo $(DEPDIR)/gzip.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/gzip.c' object='gzip.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/gzip.c' object='gzip.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gzip.lo `test -f '${top_srcdir}/module/zfs/gzip.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/gzip.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gzip.lo `test -f '$(top_srcdir)/module/zfs/gzip.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/gzip.c
 
-lzjb.lo: ${top_srcdir}/module/zfs/lzjb.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzjb.lo -MD -MP -MF $(DEPDIR)/lzjb.Tpo -c -o lzjb.lo `test -f '${top_srcdir}/module/zfs/lzjb.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/lzjb.c
+lzjb.lo: $(top_srcdir)/module/zfs/lzjb.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzjb.lo -MD -MP -MF $(DEPDIR)/lzjb.Tpo -c -o lzjb.lo `test -f '$(top_srcdir)/module/zfs/lzjb.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/lzjb.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/lzjb.Tpo $(DEPDIR)/lzjb.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/lzjb.c' object='lzjb.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/lzjb.c' object='lzjb.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzjb.lo `test -f '${top_srcdir}/module/zfs/lzjb.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/lzjb.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzjb.lo `test -f '$(top_srcdir)/module/zfs/lzjb.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/lzjb.c
 
-metaslab.lo: ${top_srcdir}/module/zfs/metaslab.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT metaslab.lo -MD -MP -MF $(DEPDIR)/metaslab.Tpo -c -o metaslab.lo `test -f '${top_srcdir}/module/zfs/metaslab.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/metaslab.c
+metaslab.lo: $(top_srcdir)/module/zfs/metaslab.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT metaslab.lo -MD -MP -MF $(DEPDIR)/metaslab.Tpo -c -o metaslab.lo `test -f '$(top_srcdir)/module/zfs/metaslab.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/metaslab.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/metaslab.Tpo $(DEPDIR)/metaslab.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/metaslab.c' object='metaslab.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/metaslab.c' object='metaslab.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o metaslab.lo `test -f '${top_srcdir}/module/zfs/metaslab.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/metaslab.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o metaslab.lo `test -f '$(top_srcdir)/module/zfs/metaslab.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/metaslab.c
 
-refcount.lo: ${top_srcdir}/module/zfs/refcount.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT refcount.lo -MD -MP -MF $(DEPDIR)/refcount.Tpo -c -o refcount.lo `test -f '${top_srcdir}/module/zfs/refcount.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/refcount.c
+refcount.lo: $(top_srcdir)/module/zfs/refcount.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT refcount.lo -MD -MP -MF $(DEPDIR)/refcount.Tpo -c -o refcount.lo `test -f '$(top_srcdir)/module/zfs/refcount.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/refcount.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/refcount.Tpo $(DEPDIR)/refcount.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/refcount.c' object='refcount.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/refcount.c' object='refcount.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o refcount.lo `test -f '${top_srcdir}/module/zfs/refcount.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/refcount.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o refcount.lo `test -f '$(top_srcdir)/module/zfs/refcount.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/refcount.c
 
-rrwlock.lo: ${top_srcdir}/module/zfs/rrwlock.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rrwlock.lo -MD -MP -MF $(DEPDIR)/rrwlock.Tpo -c -o rrwlock.lo `test -f '${top_srcdir}/module/zfs/rrwlock.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/rrwlock.c
+rrwlock.lo: $(top_srcdir)/module/zfs/rrwlock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT rrwlock.lo -MD -MP -MF $(DEPDIR)/rrwlock.Tpo -c -o rrwlock.lo `test -f '$(top_srcdir)/module/zfs/rrwlock.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/rrwlock.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/rrwlock.Tpo $(DEPDIR)/rrwlock.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/rrwlock.c' object='rrwlock.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/rrwlock.c' object='rrwlock.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rrwlock.lo `test -f '${top_srcdir}/module/zfs/rrwlock.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/rrwlock.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o rrwlock.lo `test -f '$(top_srcdir)/module/zfs/rrwlock.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/rrwlock.c
 
-sa.lo: ${top_srcdir}/module/zfs/sa.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sa.lo -MD -MP -MF $(DEPDIR)/sa.Tpo -c -o sa.lo `test -f '${top_srcdir}/module/zfs/sa.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/sa.c
+sa.lo: $(top_srcdir)/module/zfs/sa.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sa.lo -MD -MP -MF $(DEPDIR)/sa.Tpo -c -o sa.lo `test -f '$(top_srcdir)/module/zfs/sa.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/sa.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/sa.Tpo $(DEPDIR)/sa.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/sa.c' object='sa.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/sa.c' object='sa.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sa.lo `test -f '${top_srcdir}/module/zfs/sa.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/sa.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sa.lo `test -f '$(top_srcdir)/module/zfs/sa.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/sa.c
 
-sha256.lo: ${top_srcdir}/module/zfs/sha256.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sha256.lo -MD -MP -MF $(DEPDIR)/sha256.Tpo -c -o sha256.lo `test -f '${top_srcdir}/module/zfs/sha256.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/sha256.c
+sha256.lo: $(top_srcdir)/module/zfs/sha256.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sha256.lo -MD -MP -MF $(DEPDIR)/sha256.Tpo -c -o sha256.lo `test -f '$(top_srcdir)/module/zfs/sha256.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/sha256.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/sha256.Tpo $(DEPDIR)/sha256.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/sha256.c' object='sha256.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/sha256.c' object='sha256.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sha256.lo `test -f '${top_srcdir}/module/zfs/sha256.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/sha256.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sha256.lo `test -f '$(top_srcdir)/module/zfs/sha256.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/sha256.c
 
-spa.lo: ${top_srcdir}/module/zfs/spa.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa.lo -MD -MP -MF $(DEPDIR)/spa.Tpo -c -o spa.lo `test -f '${top_srcdir}/module/zfs/spa.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa.c
+spa.lo: $(top_srcdir)/module/zfs/spa.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa.lo -MD -MP -MF $(DEPDIR)/spa.Tpo -c -o spa.lo `test -f '$(top_srcdir)/module/zfs/spa.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/spa.Tpo $(DEPDIR)/spa.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/spa.c' object='spa.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/spa.c' object='spa.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa.lo `test -f '${top_srcdir}/module/zfs/spa.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa.lo `test -f '$(top_srcdir)/module/zfs/spa.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa.c
 
-spa_boot.lo: ${top_srcdir}/module/zfs/spa_boot.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa_boot.lo -MD -MP -MF $(DEPDIR)/spa_boot.Tpo -c -o spa_boot.lo `test -f '${top_srcdir}/module/zfs/spa_boot.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa_boot.c
+spa_boot.lo: $(top_srcdir)/module/zfs/spa_boot.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa_boot.lo -MD -MP -MF $(DEPDIR)/spa_boot.Tpo -c -o spa_boot.lo `test -f '$(top_srcdir)/module/zfs/spa_boot.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa_boot.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/spa_boot.Tpo $(DEPDIR)/spa_boot.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/spa_boot.c' object='spa_boot.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/spa_boot.c' object='spa_boot.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa_boot.lo `test -f '${top_srcdir}/module/zfs/spa_boot.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa_boot.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa_boot.lo `test -f '$(top_srcdir)/module/zfs/spa_boot.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa_boot.c
 
-spa_config.lo: ${top_srcdir}/module/zfs/spa_config.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa_config.lo -MD -MP -MF $(DEPDIR)/spa_config.Tpo -c -o spa_config.lo `test -f '${top_srcdir}/module/zfs/spa_config.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa_config.c
+spa_config.lo: $(top_srcdir)/module/zfs/spa_config.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa_config.lo -MD -MP -MF $(DEPDIR)/spa_config.Tpo -c -o spa_config.lo `test -f '$(top_srcdir)/module/zfs/spa_config.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa_config.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/spa_config.Tpo $(DEPDIR)/spa_config.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/spa_config.c' object='spa_config.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/spa_config.c' object='spa_config.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa_config.lo `test -f '${top_srcdir}/module/zfs/spa_config.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa_config.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa_config.lo `test -f '$(top_srcdir)/module/zfs/spa_config.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa_config.c
 
-spa_errlog.lo: ${top_srcdir}/module/zfs/spa_errlog.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa_errlog.lo -MD -MP -MF $(DEPDIR)/spa_errlog.Tpo -c -o spa_errlog.lo `test -f '${top_srcdir}/module/zfs/spa_errlog.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa_errlog.c
+spa_errlog.lo: $(top_srcdir)/module/zfs/spa_errlog.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa_errlog.lo -MD -MP -MF $(DEPDIR)/spa_errlog.Tpo -c -o spa_errlog.lo `test -f '$(top_srcdir)/module/zfs/spa_errlog.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa_errlog.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/spa_errlog.Tpo $(DEPDIR)/spa_errlog.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/spa_errlog.c' object='spa_errlog.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/spa_errlog.c' object='spa_errlog.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa_errlog.lo `test -f '${top_srcdir}/module/zfs/spa_errlog.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa_errlog.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa_errlog.lo `test -f '$(top_srcdir)/module/zfs/spa_errlog.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa_errlog.c
 
-spa_history.lo: ${top_srcdir}/module/zfs/spa_history.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa_history.lo -MD -MP -MF $(DEPDIR)/spa_history.Tpo -c -o spa_history.lo `test -f '${top_srcdir}/module/zfs/spa_history.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa_history.c
+spa_history.lo: $(top_srcdir)/module/zfs/spa_history.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa_history.lo -MD -MP -MF $(DEPDIR)/spa_history.Tpo -c -o spa_history.lo `test -f '$(top_srcdir)/module/zfs/spa_history.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa_history.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/spa_history.Tpo $(DEPDIR)/spa_history.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/spa_history.c' object='spa_history.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/spa_history.c' object='spa_history.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa_history.lo `test -f '${top_srcdir}/module/zfs/spa_history.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa_history.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa_history.lo `test -f '$(top_srcdir)/module/zfs/spa_history.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa_history.c
 
-spa_misc.lo: ${top_srcdir}/module/zfs/spa_misc.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa_misc.lo -MD -MP -MF $(DEPDIR)/spa_misc.Tpo -c -o spa_misc.lo `test -f '${top_srcdir}/module/zfs/spa_misc.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa_misc.c
+spa_misc.lo: $(top_srcdir)/module/zfs/spa_misc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT spa_misc.lo -MD -MP -MF $(DEPDIR)/spa_misc.Tpo -c -o spa_misc.lo `test -f '$(top_srcdir)/module/zfs/spa_misc.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa_misc.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/spa_misc.Tpo $(DEPDIR)/spa_misc.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/spa_misc.c' object='spa_misc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/spa_misc.c' object='spa_misc.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa_misc.lo `test -f '${top_srcdir}/module/zfs/spa_misc.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/spa_misc.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o spa_misc.lo `test -f '$(top_srcdir)/module/zfs/spa_misc.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/spa_misc.c
 
-space_map.lo: ${top_srcdir}/module/zfs/space_map.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT space_map.lo -MD -MP -MF $(DEPDIR)/space_map.Tpo -c -o space_map.lo `test -f '${top_srcdir}/module/zfs/space_map.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/space_map.c
+space_map.lo: $(top_srcdir)/module/zfs/space_map.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT space_map.lo -MD -MP -MF $(DEPDIR)/space_map.Tpo -c -o space_map.lo `test -f '$(top_srcdir)/module/zfs/space_map.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/space_map.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/space_map.Tpo $(DEPDIR)/space_map.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/space_map.c' object='space_map.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/space_map.c' object='space_map.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o space_map.lo `test -f '${top_srcdir}/module/zfs/space_map.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/space_map.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o space_map.lo `test -f '$(top_srcdir)/module/zfs/space_map.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/space_map.c
 
-txg.lo: ${top_srcdir}/module/zfs/txg.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT txg.lo -MD -MP -MF $(DEPDIR)/txg.Tpo -c -o txg.lo `test -f '${top_srcdir}/module/zfs/txg.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/txg.c
+txg.lo: $(top_srcdir)/module/zfs/txg.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT txg.lo -MD -MP -MF $(DEPDIR)/txg.Tpo -c -o txg.lo `test -f '$(top_srcdir)/module/zfs/txg.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/txg.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/txg.Tpo $(DEPDIR)/txg.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/txg.c' object='txg.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/txg.c' object='txg.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o txg.lo `test -f '${top_srcdir}/module/zfs/txg.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/txg.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o txg.lo `test -f '$(top_srcdir)/module/zfs/txg.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/txg.c
 
-uberblock.lo: ${top_srcdir}/module/zfs/uberblock.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uberblock.lo -MD -MP -MF $(DEPDIR)/uberblock.Tpo -c -o uberblock.lo `test -f '${top_srcdir}/module/zfs/uberblock.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/uberblock.c
+uberblock.lo: $(top_srcdir)/module/zfs/uberblock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uberblock.lo -MD -MP -MF $(DEPDIR)/uberblock.Tpo -c -o uberblock.lo `test -f '$(top_srcdir)/module/zfs/uberblock.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/uberblock.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/uberblock.Tpo $(DEPDIR)/uberblock.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/uberblock.c' object='uberblock.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/uberblock.c' object='uberblock.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uberblock.lo `test -f '${top_srcdir}/module/zfs/uberblock.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/uberblock.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uberblock.lo `test -f '$(top_srcdir)/module/zfs/uberblock.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/uberblock.c
 
-unique.lo: ${top_srcdir}/module/zfs/unique.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unique.lo -MD -MP -MF $(DEPDIR)/unique.Tpo -c -o unique.lo `test -f '${top_srcdir}/module/zfs/unique.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/unique.c
+unique.lo: $(top_srcdir)/module/zfs/unique.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unique.lo -MD -MP -MF $(DEPDIR)/unique.Tpo -c -o unique.lo `test -f '$(top_srcdir)/module/zfs/unique.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/unique.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/unique.Tpo $(DEPDIR)/unique.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/unique.c' object='unique.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/unique.c' object='unique.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unique.lo `test -f '${top_srcdir}/module/zfs/unique.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/unique.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unique.lo `test -f '$(top_srcdir)/module/zfs/unique.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/unique.c
 
-vdev.lo: ${top_srcdir}/module/zfs/vdev.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev.lo -MD -MP -MF $(DEPDIR)/vdev.Tpo -c -o vdev.lo `test -f '${top_srcdir}/module/zfs/vdev.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev.c
+vdev.lo: $(top_srcdir)/module/zfs/vdev.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev.lo -MD -MP -MF $(DEPDIR)/vdev.Tpo -c -o vdev.lo `test -f '$(top_srcdir)/module/zfs/vdev.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/vdev.Tpo $(DEPDIR)/vdev.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/vdev.c' object='vdev.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/vdev.c' object='vdev.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev.lo `test -f '${top_srcdir}/module/zfs/vdev.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev.lo `test -f '$(top_srcdir)/module/zfs/vdev.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev.c
 
-vdev_cache.lo: ${top_srcdir}/module/zfs/vdev_cache.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_cache.lo -MD -MP -MF $(DEPDIR)/vdev_cache.Tpo -c -o vdev_cache.lo `test -f '${top_srcdir}/module/zfs/vdev_cache.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_cache.c
+vdev_cache.lo: $(top_srcdir)/module/zfs/vdev_cache.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_cache.lo -MD -MP -MF $(DEPDIR)/vdev_cache.Tpo -c -o vdev_cache.lo `test -f '$(top_srcdir)/module/zfs/vdev_cache.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_cache.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/vdev_cache.Tpo $(DEPDIR)/vdev_cache.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/vdev_cache.c' object='vdev_cache.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/vdev_cache.c' object='vdev_cache.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_cache.lo `test -f '${top_srcdir}/module/zfs/vdev_cache.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_cache.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_cache.lo `test -f '$(top_srcdir)/module/zfs/vdev_cache.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_cache.c
 
-vdev_file.lo: ${top_srcdir}/module/zfs/vdev_file.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_file.lo -MD -MP -MF $(DEPDIR)/vdev_file.Tpo -c -o vdev_file.lo `test -f '${top_srcdir}/module/zfs/vdev_file.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_file.c
+vdev_file.lo: $(top_srcdir)/module/zfs/vdev_file.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_file.lo -MD -MP -MF $(DEPDIR)/vdev_file.Tpo -c -o vdev_file.lo `test -f '$(top_srcdir)/module/zfs/vdev_file.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_file.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/vdev_file.Tpo $(DEPDIR)/vdev_file.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/vdev_file.c' object='vdev_file.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/vdev_file.c' object='vdev_file.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_file.lo `test -f '${top_srcdir}/module/zfs/vdev_file.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_file.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_file.lo `test -f '$(top_srcdir)/module/zfs/vdev_file.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_file.c
 
-vdev_label.lo: ${top_srcdir}/module/zfs/vdev_label.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_label.lo -MD -MP -MF $(DEPDIR)/vdev_label.Tpo -c -o vdev_label.lo `test -f '${top_srcdir}/module/zfs/vdev_label.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_label.c
+vdev_label.lo: $(top_srcdir)/module/zfs/vdev_label.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_label.lo -MD -MP -MF $(DEPDIR)/vdev_label.Tpo -c -o vdev_label.lo `test -f '$(top_srcdir)/module/zfs/vdev_label.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_label.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/vdev_label.Tpo $(DEPDIR)/vdev_label.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/vdev_label.c' object='vdev_label.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/vdev_label.c' object='vdev_label.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_label.lo `test -f '${top_srcdir}/module/zfs/vdev_label.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_label.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_label.lo `test -f '$(top_srcdir)/module/zfs/vdev_label.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_label.c
 
-vdev_mirror.lo: ${top_srcdir}/module/zfs/vdev_mirror.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_mirror.lo -MD -MP -MF $(DEPDIR)/vdev_mirror.Tpo -c -o vdev_mirror.lo `test -f '${top_srcdir}/module/zfs/vdev_mirror.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_mirror.c
+vdev_mirror.lo: $(top_srcdir)/module/zfs/vdev_mirror.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_mirror.lo -MD -MP -MF $(DEPDIR)/vdev_mirror.Tpo -c -o vdev_mirror.lo `test -f '$(top_srcdir)/module/zfs/vdev_mirror.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_mirror.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/vdev_mirror.Tpo $(DEPDIR)/vdev_mirror.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/vdev_mirror.c' object='vdev_mirror.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/vdev_mirror.c' object='vdev_mirror.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_mirror.lo `test -f '${top_srcdir}/module/zfs/vdev_mirror.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_mirror.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_mirror.lo `test -f '$(top_srcdir)/module/zfs/vdev_mirror.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_mirror.c
 
-vdev_missing.lo: ${top_srcdir}/module/zfs/vdev_missing.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_missing.lo -MD -MP -MF $(DEPDIR)/vdev_missing.Tpo -c -o vdev_missing.lo `test -f '${top_srcdir}/module/zfs/vdev_missing.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_missing.c
+vdev_missing.lo: $(top_srcdir)/module/zfs/vdev_missing.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_missing.lo -MD -MP -MF $(DEPDIR)/vdev_missing.Tpo -c -o vdev_missing.lo `test -f '$(top_srcdir)/module/zfs/vdev_missing.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_missing.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/vdev_missing.Tpo $(DEPDIR)/vdev_missing.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/vdev_missing.c' object='vdev_missing.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/vdev_missing.c' object='vdev_missing.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_missing.lo `test -f '${top_srcdir}/module/zfs/vdev_missing.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_missing.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_missing.lo `test -f '$(top_srcdir)/module/zfs/vdev_missing.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_missing.c
 
-vdev_queue.lo: ${top_srcdir}/module/zfs/vdev_queue.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_queue.lo -MD -MP -MF $(DEPDIR)/vdev_queue.Tpo -c -o vdev_queue.lo `test -f '${top_srcdir}/module/zfs/vdev_queue.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_queue.c
+vdev_queue.lo: $(top_srcdir)/module/zfs/vdev_queue.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_queue.lo -MD -MP -MF $(DEPDIR)/vdev_queue.Tpo -c -o vdev_queue.lo `test -f '$(top_srcdir)/module/zfs/vdev_queue.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_queue.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/vdev_queue.Tpo $(DEPDIR)/vdev_queue.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/vdev_queue.c' object='vdev_queue.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/vdev_queue.c' object='vdev_queue.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_queue.lo `test -f '${top_srcdir}/module/zfs/vdev_queue.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_queue.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_queue.lo `test -f '$(top_srcdir)/module/zfs/vdev_queue.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_queue.c
 
-vdev_raidz.lo: ${top_srcdir}/module/zfs/vdev_raidz.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_raidz.lo -MD -MP -MF $(DEPDIR)/vdev_raidz.Tpo -c -o vdev_raidz.lo `test -f '${top_srcdir}/module/zfs/vdev_raidz.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_raidz.c
+vdev_raidz.lo: $(top_srcdir)/module/zfs/vdev_raidz.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_raidz.lo -MD -MP -MF $(DEPDIR)/vdev_raidz.Tpo -c -o vdev_raidz.lo `test -f '$(top_srcdir)/module/zfs/vdev_raidz.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_raidz.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/vdev_raidz.Tpo $(DEPDIR)/vdev_raidz.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/vdev_raidz.c' object='vdev_raidz.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/vdev_raidz.c' object='vdev_raidz.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_raidz.lo `test -f '${top_srcdir}/module/zfs/vdev_raidz.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_raidz.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_raidz.lo `test -f '$(top_srcdir)/module/zfs/vdev_raidz.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_raidz.c
 
-vdev_root.lo: ${top_srcdir}/module/zfs/vdev_root.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_root.lo -MD -MP -MF $(DEPDIR)/vdev_root.Tpo -c -o vdev_root.lo `test -f '${top_srcdir}/module/zfs/vdev_root.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_root.c
+vdev_root.lo: $(top_srcdir)/module/zfs/vdev_root.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT vdev_root.lo -MD -MP -MF $(DEPDIR)/vdev_root.Tpo -c -o vdev_root.lo `test -f '$(top_srcdir)/module/zfs/vdev_root.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_root.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/vdev_root.Tpo $(DEPDIR)/vdev_root.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/vdev_root.c' object='vdev_root.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/vdev_root.c' object='vdev_root.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_root.lo `test -f '${top_srcdir}/module/zfs/vdev_root.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/vdev_root.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o vdev_root.lo `test -f '$(top_srcdir)/module/zfs/vdev_root.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/vdev_root.c
 
-zap.lo: ${top_srcdir}/module/zfs/zap.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zap.lo -MD -MP -MF $(DEPDIR)/zap.Tpo -c -o zap.lo `test -f '${top_srcdir}/module/zfs/zap.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zap.c
+zap.lo: $(top_srcdir)/module/zfs/zap.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zap.lo -MD -MP -MF $(DEPDIR)/zap.Tpo -c -o zap.lo `test -f '$(top_srcdir)/module/zfs/zap.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zap.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zap.Tpo $(DEPDIR)/zap.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zap.c' object='zap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zap.c' object='zap.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zap.lo `test -f '${top_srcdir}/module/zfs/zap.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zap.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zap.lo `test -f '$(top_srcdir)/module/zfs/zap.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zap.c
 
-zap_leaf.lo: ${top_srcdir}/module/zfs/zap_leaf.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zap_leaf.lo -MD -MP -MF $(DEPDIR)/zap_leaf.Tpo -c -o zap_leaf.lo `test -f '${top_srcdir}/module/zfs/zap_leaf.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zap_leaf.c
+zap_leaf.lo: $(top_srcdir)/module/zfs/zap_leaf.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zap_leaf.lo -MD -MP -MF $(DEPDIR)/zap_leaf.Tpo -c -o zap_leaf.lo `test -f '$(top_srcdir)/module/zfs/zap_leaf.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zap_leaf.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zap_leaf.Tpo $(DEPDIR)/zap_leaf.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zap_leaf.c' object='zap_leaf.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zap_leaf.c' object='zap_leaf.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zap_leaf.lo `test -f '${top_srcdir}/module/zfs/zap_leaf.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zap_leaf.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zap_leaf.lo `test -f '$(top_srcdir)/module/zfs/zap_leaf.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zap_leaf.c
 
-zap_micro.lo: ${top_srcdir}/module/zfs/zap_micro.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zap_micro.lo -MD -MP -MF $(DEPDIR)/zap_micro.Tpo -c -o zap_micro.lo `test -f '${top_srcdir}/module/zfs/zap_micro.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zap_micro.c
+zap_micro.lo: $(top_srcdir)/module/zfs/zap_micro.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zap_micro.lo -MD -MP -MF $(DEPDIR)/zap_micro.Tpo -c -o zap_micro.lo `test -f '$(top_srcdir)/module/zfs/zap_micro.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zap_micro.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zap_micro.Tpo $(DEPDIR)/zap_micro.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zap_micro.c' object='zap_micro.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zap_micro.c' object='zap_micro.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zap_micro.lo `test -f '${top_srcdir}/module/zfs/zap_micro.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zap_micro.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zap_micro.lo `test -f '$(top_srcdir)/module/zfs/zap_micro.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zap_micro.c
 
-zfs_byteswap.lo: ${top_srcdir}/module/zfs/zfs_byteswap.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_byteswap.lo -MD -MP -MF $(DEPDIR)/zfs_byteswap.Tpo -c -o zfs_byteswap.lo `test -f '${top_srcdir}/module/zfs/zfs_byteswap.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_byteswap.c
+zfs_byteswap.lo: $(top_srcdir)/module/zfs/zfs_byteswap.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_byteswap.lo -MD -MP -MF $(DEPDIR)/zfs_byteswap.Tpo -c -o zfs_byteswap.lo `test -f '$(top_srcdir)/module/zfs/zfs_byteswap.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_byteswap.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_byteswap.Tpo $(DEPDIR)/zfs_byteswap.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zfs_byteswap.c' object='zfs_byteswap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zfs_byteswap.c' object='zfs_byteswap.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_byteswap.lo `test -f '${top_srcdir}/module/zfs/zfs_byteswap.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_byteswap.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_byteswap.lo `test -f '$(top_srcdir)/module/zfs/zfs_byteswap.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_byteswap.c
 
-zfs_debug.lo: ${top_srcdir}/module/zfs/zfs_debug.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_debug.lo -MD -MP -MF $(DEPDIR)/zfs_debug.Tpo -c -o zfs_debug.lo `test -f '${top_srcdir}/module/zfs/zfs_debug.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_debug.c
+zfs_debug.lo: $(top_srcdir)/module/zfs/zfs_debug.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_debug.lo -MD -MP -MF $(DEPDIR)/zfs_debug.Tpo -c -o zfs_debug.lo `test -f '$(top_srcdir)/module/zfs/zfs_debug.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_debug.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_debug.Tpo $(DEPDIR)/zfs_debug.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zfs_debug.c' object='zfs_debug.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zfs_debug.c' object='zfs_debug.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_debug.lo `test -f '${top_srcdir}/module/zfs/zfs_debug.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_debug.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_debug.lo `test -f '$(top_srcdir)/module/zfs/zfs_debug.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_debug.c
 
-zfs_fm.lo: ${top_srcdir}/module/zfs/zfs_fm.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_fm.lo -MD -MP -MF $(DEPDIR)/zfs_fm.Tpo -c -o zfs_fm.lo `test -f '${top_srcdir}/module/zfs/zfs_fm.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_fm.c
+zfs_fm.lo: $(top_srcdir)/module/zfs/zfs_fm.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_fm.lo -MD -MP -MF $(DEPDIR)/zfs_fm.Tpo -c -o zfs_fm.lo `test -f '$(top_srcdir)/module/zfs/zfs_fm.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_fm.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_fm.Tpo $(DEPDIR)/zfs_fm.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zfs_fm.c' object='zfs_fm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zfs_fm.c' object='zfs_fm.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_fm.lo `test -f '${top_srcdir}/module/zfs/zfs_fm.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_fm.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_fm.lo `test -f '$(top_srcdir)/module/zfs/zfs_fm.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_fm.c
 
-zfs_fuid.lo: ${top_srcdir}/module/zfs/zfs_fuid.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_fuid.lo -MD -MP -MF $(DEPDIR)/zfs_fuid.Tpo -c -o zfs_fuid.lo `test -f '${top_srcdir}/module/zfs/zfs_fuid.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_fuid.c
+zfs_fuid.lo: $(top_srcdir)/module/zfs/zfs_fuid.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_fuid.lo -MD -MP -MF $(DEPDIR)/zfs_fuid.Tpo -c -o zfs_fuid.lo `test -f '$(top_srcdir)/module/zfs/zfs_fuid.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_fuid.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_fuid.Tpo $(DEPDIR)/zfs_fuid.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zfs_fuid.c' object='zfs_fuid.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zfs_fuid.c' object='zfs_fuid.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_fuid.lo `test -f '${top_srcdir}/module/zfs/zfs_fuid.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_fuid.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_fuid.lo `test -f '$(top_srcdir)/module/zfs/zfs_fuid.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_fuid.c
 
-zfs_sa.lo: ${top_srcdir}/module/zfs/zfs_sa.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_sa.lo -MD -MP -MF $(DEPDIR)/zfs_sa.Tpo -c -o zfs_sa.lo `test -f '${top_srcdir}/module/zfs/zfs_sa.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_sa.c
+zfs_sa.lo: $(top_srcdir)/module/zfs/zfs_sa.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_sa.lo -MD -MP -MF $(DEPDIR)/zfs_sa.Tpo -c -o zfs_sa.lo `test -f '$(top_srcdir)/module/zfs/zfs_sa.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_sa.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_sa.Tpo $(DEPDIR)/zfs_sa.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zfs_sa.c' object='zfs_sa.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zfs_sa.c' object='zfs_sa.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_sa.lo `test -f '${top_srcdir}/module/zfs/zfs_sa.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_sa.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_sa.lo `test -f '$(top_srcdir)/module/zfs/zfs_sa.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_sa.c
 
-zfs_znode.lo: ${top_srcdir}/module/zfs/zfs_znode.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_znode.lo -MD -MP -MF $(DEPDIR)/zfs_znode.Tpo -c -o zfs_znode.lo `test -f '${top_srcdir}/module/zfs/zfs_znode.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_znode.c
+zfs_znode.lo: $(top_srcdir)/module/zfs/zfs_znode.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zfs_znode.lo -MD -MP -MF $(DEPDIR)/zfs_znode.Tpo -c -o zfs_znode.lo `test -f '$(top_srcdir)/module/zfs/zfs_znode.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_znode.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zfs_znode.Tpo $(DEPDIR)/zfs_znode.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zfs_znode.c' object='zfs_znode.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zfs_znode.c' object='zfs_znode.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_znode.lo `test -f '${top_srcdir}/module/zfs/zfs_znode.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zfs_znode.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zfs_znode.lo `test -f '$(top_srcdir)/module/zfs/zfs_znode.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zfs_znode.c
 
-zil.lo: ${top_srcdir}/module/zfs/zil.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zil.lo -MD -MP -MF $(DEPDIR)/zil.Tpo -c -o zil.lo `test -f '${top_srcdir}/module/zfs/zil.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zil.c
+zil.lo: $(top_srcdir)/module/zfs/zil.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zil.lo -MD -MP -MF $(DEPDIR)/zil.Tpo -c -o zil.lo `test -f '$(top_srcdir)/module/zfs/zil.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zil.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zil.Tpo $(DEPDIR)/zil.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zil.c' object='zil.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zil.c' object='zil.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zil.lo `test -f '${top_srcdir}/module/zfs/zil.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zil.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zil.lo `test -f '$(top_srcdir)/module/zfs/zil.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zil.c
 
-zio.lo: ${top_srcdir}/module/zfs/zio.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zio.lo -MD -MP -MF $(DEPDIR)/zio.Tpo -c -o zio.lo `test -f '${top_srcdir}/module/zfs/zio.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zio.c
+zio.lo: $(top_srcdir)/module/zfs/zio.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zio.lo -MD -MP -MF $(DEPDIR)/zio.Tpo -c -o zio.lo `test -f '$(top_srcdir)/module/zfs/zio.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zio.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zio.Tpo $(DEPDIR)/zio.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zio.c' object='zio.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zio.c' object='zio.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zio.lo `test -f '${top_srcdir}/module/zfs/zio.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zio.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zio.lo `test -f '$(top_srcdir)/module/zfs/zio.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zio.c
 
-zio_checksum.lo: ${top_srcdir}/module/zfs/zio_checksum.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zio_checksum.lo -MD -MP -MF $(DEPDIR)/zio_checksum.Tpo -c -o zio_checksum.lo `test -f '${top_srcdir}/module/zfs/zio_checksum.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zio_checksum.c
+zio_checksum.lo: $(top_srcdir)/module/zfs/zio_checksum.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zio_checksum.lo -MD -MP -MF $(DEPDIR)/zio_checksum.Tpo -c -o zio_checksum.lo `test -f '$(top_srcdir)/module/zfs/zio_checksum.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zio_checksum.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zio_checksum.Tpo $(DEPDIR)/zio_checksum.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zio_checksum.c' object='zio_checksum.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zio_checksum.c' object='zio_checksum.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zio_checksum.lo `test -f '${top_srcdir}/module/zfs/zio_checksum.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zio_checksum.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zio_checksum.lo `test -f '$(top_srcdir)/module/zfs/zio_checksum.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zio_checksum.c
 
-zio_compress.lo: ${top_srcdir}/module/zfs/zio_compress.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zio_compress.lo -MD -MP -MF $(DEPDIR)/zio_compress.Tpo -c -o zio_compress.lo `test -f '${top_srcdir}/module/zfs/zio_compress.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zio_compress.c
+zio_compress.lo: $(top_srcdir)/module/zfs/zio_compress.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zio_compress.lo -MD -MP -MF $(DEPDIR)/zio_compress.Tpo -c -o zio_compress.lo `test -f '$(top_srcdir)/module/zfs/zio_compress.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zio_compress.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zio_compress.Tpo $(DEPDIR)/zio_compress.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zio_compress.c' object='zio_compress.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zio_compress.c' object='zio_compress.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zio_compress.lo `test -f '${top_srcdir}/module/zfs/zio_compress.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zio_compress.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zio_compress.lo `test -f '$(top_srcdir)/module/zfs/zio_compress.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zio_compress.c
 
-zio_inject.lo: ${top_srcdir}/module/zfs/zio_inject.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zio_inject.lo -MD -MP -MF $(DEPDIR)/zio_inject.Tpo -c -o zio_inject.lo `test -f '${top_srcdir}/module/zfs/zio_inject.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zio_inject.c
+zio_inject.lo: $(top_srcdir)/module/zfs/zio_inject.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zio_inject.lo -MD -MP -MF $(DEPDIR)/zio_inject.Tpo -c -o zio_inject.lo `test -f '$(top_srcdir)/module/zfs/zio_inject.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zio_inject.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zio_inject.Tpo $(DEPDIR)/zio_inject.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zio_inject.c' object='zio_inject.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zio_inject.c' object='zio_inject.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zio_inject.lo `test -f '${top_srcdir}/module/zfs/zio_inject.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zio_inject.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zio_inject.lo `test -f '$(top_srcdir)/module/zfs/zio_inject.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zio_inject.c
 
-zle.lo: ${top_srcdir}/module/zfs/zle.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zle.lo -MD -MP -MF $(DEPDIR)/zle.Tpo -c -o zle.lo `test -f '${top_srcdir}/module/zfs/zle.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zle.c
+zle.lo: $(top_srcdir)/module/zfs/zle.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zle.lo -MD -MP -MF $(DEPDIR)/zle.Tpo -c -o zle.lo `test -f '$(top_srcdir)/module/zfs/zle.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zle.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zle.Tpo $(DEPDIR)/zle.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zle.c' object='zle.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zle.c' object='zle.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zle.lo `test -f '${top_srcdir}/module/zfs/zle.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zle.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zle.lo `test -f '$(top_srcdir)/module/zfs/zle.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zle.c
 
-zrlock.lo: ${top_srcdir}/module/zfs/zrlock.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zrlock.lo -MD -MP -MF $(DEPDIR)/zrlock.Tpo -c -o zrlock.lo `test -f '${top_srcdir}/module/zfs/zrlock.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zrlock.c
+zrlock.lo: $(top_srcdir)/module/zfs/zrlock.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zrlock.lo -MD -MP -MF $(DEPDIR)/zrlock.Tpo -c -o zrlock.lo `test -f '$(top_srcdir)/module/zfs/zrlock.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zrlock.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/zrlock.Tpo $(DEPDIR)/zrlock.Plo
 @am__fastdepCC_FALSE@  $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='${top_srcdir}/module/zfs/zrlock.c' object='zrlock.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$(top_srcdir)/module/zfs/zrlock.c' object='zrlock.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zrlock.lo `test -f '${top_srcdir}/module/zfs/zrlock.c' || echo '$(srcdir)/'`${top_srcdir}/module/zfs/zrlock.c
+@am__fastdepCC_FALSE@  $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zrlock.lo `test -f '$(top_srcdir)/module/zfs/zrlock.c' || echo '$(srcdir)/'`$(top_srcdir)/module/zfs/zrlock.c
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -1327,76 +1226,6 @@ mostlyclean-libtool:
 clean-libtool:
        -rm -rf .libs _libs
 
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       dot_seen=no; \
-       target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           dot_seen=yes; \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done; \
-       if test "$$dot_seen" = "no"; then \
-         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-       fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       dot_seen=no; \
-       case "$@" in \
-         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-         *) list='$(SUBDIRS)' ;; \
-       esac; \
-       rev=''; for subdir in $$list; do \
-         if test "$$subdir" = "."; then :; else \
-           rev="$$subdir $$rev"; \
-         fi; \
-       done; \
-       rev="$$rev ."; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done && test -z "$$fail"
-tags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-       done
-ctags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-       done
-
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
@@ -1407,23 +1236,10 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
        mkid -fID $$unique
 tags: TAGS
 
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
        set x; \
        here=`pwd`; \
-       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-         include_option=--etags-include; \
-         empty_fix=.; \
-       else \
-         include_option=--include; \
-         empty_fix=; \
-       fi; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
-           test ! -f $$subdir/TAGS || \
-             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-         fi; \
-       done; \
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
@@ -1442,7 +1258,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
          fi; \
        fi
 ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
                $(TAGS_FILES) $(LISP)
        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
        unique=`for i in $$list; do \
@@ -1492,51 +1308,22 @@ distdir: $(DISTFILES)
            || exit 1; \
          fi; \
        done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
-           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-           $(am__relativize); \
-           new_distdir=$$reldir; \
-           dir1=$$subdir; dir2="$(top_distdir)"; \
-           $(am__relativize); \
-           new_top_distdir=$$reldir; \
-           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-           ($(am__cd) $$subdir && \
-             $(MAKE) $(AM_MAKEFLAGS) \
-               top_distdir="$$new_top_distdir" \
-               distdir="$$new_distdir" \
-               am__remove_distdir=: \
-               am__skip_length_check=: \
-               am__skip_mode_fix=: \
-               distdir) \
-             || exit 1; \
-         fi; \
-       done
 check-am: all-am
-check: check-recursive
+check: check-am
 all-am: Makefile $(LTLIBRARIES)
-installdirs: installdirs-recursive
-installdirs-am:
+installdirs:
        for dir in "$(DESTDIR)$(libdir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
 
 install-am: all-am
        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
-installcheck: installcheck-recursive
+installcheck: installcheck-am
 install-strip:
        $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
          install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
@@ -1553,95 +1340,92 @@ distclean-generic:
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
+clean: clean-am
 
 clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
        mostlyclean-am
 
-distclean: distclean-recursive
+distclean: distclean-am
        -rm -rf ./$(DEPDIR)
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
 
-dvi: dvi-recursive
+dvi: dvi-am
 
 dvi-am:
 
-html: html-recursive
+html: html-am
 
 html-am:
 
-info: info-recursive
+info: info-am
 
 info-am:
 
 install-data-am:
 
-install-dvi: install-dvi-recursive
+install-dvi: install-dvi-am
 
 install-dvi-am:
 
 install-exec-am: install-libLTLIBRARIES
 
-install-html: install-html-recursive
+install-html: install-html-am
 
 install-html-am:
 
-install-info: install-info-recursive
+install-info: install-info-am
 
 install-info-am:
 
 install-man:
 
-install-pdf: install-pdf-recursive
+install-pdf: install-pdf-am
 
 install-pdf-am:
 
-install-ps: install-ps-recursive
+install-ps: install-ps-am
 
 install-ps-am:
 
 installcheck-am:
 
-maintainer-clean: maintainer-clean-recursive
+maintainer-clean: maintainer-clean-am
        -rm -rf ./$(DEPDIR)
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
-mostlyclean: mostlyclean-recursive
+mostlyclean: mostlyclean-am
 
 mostlyclean-am: mostlyclean-compile mostlyclean-generic \
        mostlyclean-libtool
 
-pdf: pdf-recursive
+pdf: pdf-am
 
 pdf-am:
 
-ps: ps-recursive
+ps: ps-am
 
 ps-am:
 
 uninstall-am: uninstall-libLTLIBRARIES
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-       install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-       all all-am check check-am clean clean-generic \
-       clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \
-       distclean distclean-compile distclean-generic \
-       distclean-libtool distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-libLTLIBRARIES install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs installdirs-am \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-       pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
-       uninstall-libLTLIBRARIES
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libLTLIBRARIES clean-libtool ctags distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am \
+       install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags uninstall uninstall-am uninstall-libLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/lib/libzpool/include/Makefile.am b/lib/libzpool/include/Makefile.am
deleted file mode 100644 (file)
index 2d7d453..0000000
+++ /dev/null
@@ -1 +0,0 @@
-nobase_pkginclude_HEADERS  = sys/*.h
diff --git a/lib/libzpool/include/Makefile.in b/lib/libzpool/include/Makefile.in
deleted file mode 100644 (file)
index 6f4c69b..0000000
+++ /dev/null
@@ -1,544 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = lib/libzpool/include
-DIST_COMMON = $(nobase_pkginclude_HEADERS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps =  \
-       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
-       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
-       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
-       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
-       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
-       $(top_srcdir)/config/kernel-blk-end-request.m4 \
-       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
-       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
-       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
-       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
-       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
-       $(top_srcdir)/config/kernel-fmode-t.m4 \
-       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
-       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
-       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
-       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
-       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
-       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
-       $(top_srcdir)/config/kernel.m4 \
-       $(top_srcdir)/config/user-arch.m4 \
-       $(top_srcdir)/config/user-frame-larger-than.m4 \
-       $(top_srcdir)/config/user-ioctl.m4 \
-       $(top_srcdir)/config/user-libblkid.m4 \
-       $(top_srcdir)/config/user-libshare.m4 \
-       $(top_srcdir)/config/user-libuuid.m4 \
-       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
-       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
-       $(top_srcdir)/config/zfs-build.m4 \
-       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/zfs_config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN   " $@;
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-SOURCES =
-DIST_SOURCES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pkgincludedir)"
-HEADERS = $(nobase_pkginclude_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-ALIEN = @ALIEN@
-ALIEN_VERSION = @ALIEN_VERSION@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BUILDDIR = @BUILDDIR@
-CC = @CC@
-CCAS = @CCAS@
-CCASDEPMODE = @CCASDEPMODE@
-CCASFLAGS = @CCASFLAGS@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEBUG_CFLAGS = @DEBUG_CFLAGS@
-DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
-DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DPKG = @DPKG@
-DPKGBUILD = @DPKGBUILD@
-DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
-DPKG_VERSION = @DPKG_VERSION@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
-GREP = @GREP@
-HAVE_ALIEN = @HAVE_ALIEN@
-HAVE_DPKG = @HAVE_DPKG@
-HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
-HAVE_RPM = @HAVE_RPM@
-HAVE_RPMBUILD = @HAVE_RPMBUILD@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-KERNELCPPFLAGS = @KERNELCPPFLAGS@
-KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBUUID = @LIBUUID@
-LINUX = @LINUX@
-LINUX_OBJ = @LINUX_OBJ@
-LINUX_SYMBOLS = @LINUX_SYMBOLS@
-LINUX_VERSION = @LINUX_VERSION@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-RPM = @RPM@
-RPMBUILD = @RPMBUILD@
-RPMBUILD_VERSION = @RPMBUILD_VERSION@
-RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SPL = @SPL@
-SPL_OBJ = @SPL_OBJ@
-SPL_SYMBOLS = @SPL_SYMBOLS@
-SPL_VERSION = @SPL_VERSION@
-STRIP = @STRIP@
-TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
-VENDOR = @VENDOR@
-VERSION = @VERSION@
-ZFS_CONFIG = @ZFS_CONFIG@
-ZFS_META_ALIAS = @ZFS_META_ALIAS@
-ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
-ZFS_META_DATA = @ZFS_META_DATA@
-ZFS_META_LICENSE = @ZFS_META_LICENSE@
-ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
-ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
-ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
-ZFS_META_NAME = @ZFS_META_NAME@
-ZFS_META_RELEASE = @ZFS_META_RELEASE@
-ZFS_META_VERSION = @ZFS_META_VERSION@
-ZLIB = @ZLIB@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-nobase_pkginclude_HEADERS = sys/*.h
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-               && { if test -f $@; then exit 0; else break; fi; }; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/libzpool/include/Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu lib/libzpool/include/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-       esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-install-nobase_pkgincludeHEADERS: $(nobase_pkginclude_HEADERS)
-       @$(NORMAL_INSTALL)
-       test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)"
-       @list='$(nobase_pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-       $(am__nobase_list) | while read dir files; do \
-         xfiles=; for file in $$files; do \
-           if test -f "$$file"; then xfiles="$$xfiles $$file"; \
-           else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
-         test -z "$$xfiles" || { \
-           test "x$$dir" = x. || { \
-             echo "$(MKDIR_P) '$(DESTDIR)$(pkgincludedir)/$$dir'"; \
-             $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)/$$dir"; }; \
-           echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(pkgincludedir)/$$dir'"; \
-           $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(pkgincludedir)/$$dir" || exit $$?; }; \
-       done
-
-uninstall-nobase_pkgincludeHEADERS:
-       @$(NORMAL_UNINSTALL)
-       @list='$(nobase_pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
-       $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       set x; \
-       here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       shift; \
-       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         if test $$# -gt 0; then \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             "$$@" $$unique; \
-         else \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             $$unique; \
-         fi; \
-       fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       test -z "$(CTAGS_ARGS)$$unique" \
-         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$unique
-
-GTAGS:
-       here=`$(am__cd) $(top_builddir) && pwd` \
-         && $(am__cd) $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-       list='$(DISTFILES)'; \
-         dist_files=`for file in $$list; do echo $$file; done | \
-         sed -e "s|^$$srcdirstrip/||;t" \
-             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-       case $$dist_files in \
-         */*) $(MKDIR_P) `echo "$$dist_files" | \
-                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-                          sort -u` ;; \
-       esac; \
-       for file in $$dist_files; do \
-         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-         if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-           if test -d "$(distdir)/$$file"; then \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-           fi; \
-           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-         else \
-           test -f "$(distdir)/$$file" \
-           || cp -p $$d/$$file "$(distdir)/$$file" \
-           || exit 1; \
-         fi; \
-       done
-check-am: all-am
-check: check-am
-all-am: Makefile $(HEADERS)
-installdirs:
-       for dir in "$(DESTDIR)$(pkgincludedir)"; do \
-         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-       done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-       -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-nobase_pkgincludeHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-nobase_pkgincludeHEADERS
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libtool ctags distclean distclean-generic \
-       distclean-libtool distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-nobase_pkgincludeHEADERS \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am uninstall-nobase_pkgincludeHEADERS
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/lib/libzpool/include/sys/zfs_context.h b/lib/libzpool/include/sys/zfs_context.h
deleted file mode 100644 (file)
index 5dd64b7..0000000
+++ /dev/null
@@ -1,594 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _SYS_ZFS_CONTEXT_H
-#define        _SYS_ZFS_CONTEXT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define        _SYS_MUTEX_H
-#define        _SYS_RWLOCK_H
-#define        _SYS_CONDVAR_H
-#define        _SYS_SYSTM_H
-#define        _SYS_DEBUG_H
-#define        _SYS_T_LOCK_H
-#define        _SYS_VNODE_H
-#define        _SYS_VFS_H
-#define        _SYS_SUNDDI_H
-#define        _SYS_CALLB_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <stdarg.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <strings.h>
-#include <pthread.h>
-#include <assert.h>
-#include <alloca.h>
-#include <umem.h>
-#include <limits.h>
-#include <atomic.h>
-#include <dirent.h>
-#include <time.h>
-#include <sys/note.h>
-#include <sys/types.h>
-#include <sys/cred.h>
-#include <sys/sysmacros.h>
-#include <sys/bitmap.h>
-#include <sys/resource.h>
-#include <sys/byteorder.h>
-#include <sys/list.h>
-#include <sys/uio.h>
-#include <sys/zfs_debug.h>
-#include <sys/sdt.h>
-#include <sys/kstat.h>
-#include <sys/u8_textprep.h>
-#include <sys/fm/fs/zfs.h>
-#include <sys/sunddi.h>
-
-/*
- * Stack
- */
-
-#define  noinline      __attribute__((noinline))
-
-/*
- * Debugging
- */
-
-/*
- * Note that we are not using the debugging levels.
- */
-
-#define        CE_CONT         0       /* continuation         */
-#define        CE_NOTE         1       /* notice               */
-#define        CE_WARN         2       /* warning              */
-#define        CE_PANIC        3       /* panic                */
-#define        CE_IGNORE       4       /* print nothing        */
-
-extern int aok;
-
-/*
- * ZFS debugging
- */
-
-#ifdef ZFS_DEBUG
-extern void dprintf_setup(int *argc, char **argv);
-#endif /* ZFS_DEBUG */
-
-extern void cmn_err(int, const char *, ...);
-extern void vcmn_err(int, const char *, __va_list);
-extern void panic(const char *, ...);
-extern void vpanic(const char *, __va_list);
-
-#define        fm_panic        panic
-
-/*
- * DTrace SDT probes have different signatures in userland than they do in
- * kernel.  If they're being used in kernel code, re-define them out of
- * existence for their counterparts in libzpool.
- */
-
-#ifdef DTRACE_PROBE
-#undef DTRACE_PROBE
-#define        DTRACE_PROBE(a) ((void)0)
-#endif /* DTRACE_PROBE */
-
-#ifdef DTRACE_PROBE1
-#undef DTRACE_PROBE1
-#define        DTRACE_PROBE1(a, b, c)  ((void)0)
-#endif /* DTRACE_PROBE1 */
-
-#ifdef DTRACE_PROBE2
-#undef DTRACE_PROBE2
-#define        DTRACE_PROBE2(a, b, c, d, e)    ((void)0)
-#endif /* DTRACE_PROBE2 */
-
-#ifdef DTRACE_PROBE3
-#undef DTRACE_PROBE3
-#define        DTRACE_PROBE3(a, b, c, d, e, f, g)      ((void)0)
-#endif /* DTRACE_PROBE3 */
-
-#ifdef DTRACE_PROBE4
-#undef DTRACE_PROBE4
-#define        DTRACE_PROBE4(a, b, c, d, e, f, g, h, i)        ((void)0)
-#endif /* DTRACE_PROBE4 */
-
-/*
- * Threads
- */
-#define        TS_MAGIC                0x72f158ab4261e538ull
-#define        TS_RUN                  0x00000002
-#ifdef __linux__
-#define        STACK_SIZE              8192    /* Linux x86 and amd64 */
-#else
-#define        STACK_SIZE              24576   /* Solaris */
-#endif
-
-#ifdef NPTL_GUARD_WITHIN_STACK
-#define        EXTRA_GUARD_BYTES       PAGESIZE
-#else
-#define        EXTRA_GUARD_BYTES       0
-#endif
-
-/* in libzpool, p0 exists only to have its address taken */
-typedef struct proc {
-       uintptr_t       this_is_never_used_dont_dereference_it;
-} proc_t;
-
-extern struct proc p0;
-
-typedef void (*thread_func_t)(void *);
-typedef void (*thread_func_arg_t)(void *);
-typedef pthread_t kt_did_t;
-
-typedef struct kthread {
-       kt_did_t        t_tid;
-       thread_func_t   t_func;
-       void *          t_arg;
-} kthread_t;
-
-#define        tsd_get(key)                    pthread_getspecific(key)
-#define        tsd_set(key, val)               pthread_setspecific(key, val)
-#define        curthread                       zk_thread_current()
-#define        thread_exit                     zk_thread_exit
-#define        thread_create(stk, stksize, func, arg, len, pp, state, pri)     \
-       zk_thread_create(stk, stksize, (thread_func_t)func, arg,        \
-                        len, NULL, state, pri)
-#define        thread_join(t)                  zk_thread_join(t)
-#define        newproc(f,a,cid,pri,ctp,pid)    (ENOSYS)
-
-extern kthread_t *zk_thread_current(void);
-extern void zk_thread_exit(void);
-extern kthread_t *zk_thread_create(caddr_t stk, size_t  stksize,
-       thread_func_t func, void *arg, size_t len,
-       proc_t *pp, int state, pri_t pri);
-extern void zk_thread_join(kt_did_t tid);
-
-#define        PS_NONE         -1
-
-#define        issig(why)      (FALSE)
-#define        ISSIG(thr, why) (FALSE)
-
-/*
- * Mutexes
- */
-#define        MTX_MAGIC       0x9522f51362a6e326ull
-#define        MTX_INIT        ((void *)NULL)
-#define        MTX_DEST        ((void *)-1UL)
-
-typedef struct kmutex {
-       void            *m_owner;
-       uint64_t        m_magic;
-       pthread_mutex_t m_lock;
-} kmutex_t;
-
-#define        MUTEX_DEFAULT   0
-#define MUTEX_HELD(m)  ((m)->m_owner == curthread)
-#define        MUTEX_NOT_HELD(m) (!MUTEX_HELD(m))
-
-extern void mutex_init(kmutex_t *mp, char *name, int type, void *cookie);
-extern void mutex_destroy(kmutex_t *mp);
-extern void mutex_enter(kmutex_t *mp);
-extern void mutex_exit(kmutex_t *mp);
-extern int mutex_tryenter(kmutex_t *mp);
-extern void *mutex_owner(kmutex_t *mp);
-extern int mutex_held(kmutex_t *mp);
-
-/*
- * RW locks
- */
-#define        RW_MAGIC        0x4d31fb123648e78aull
-#define        RW_INIT         ((void *)NULL)
-#define        RW_DEST         ((void *)-1UL)
-
-typedef struct krwlock {
-       void                    *rw_owner;
-       void                    *rw_wr_owner;
-       uint64_t                rw_magic;
-       pthread_rwlock_t        rw_lock;
-       uint_t                  rw_readers;
-} krwlock_t;
-
-typedef int krw_t;
-
-#define        RW_READER       0
-#define        RW_WRITER       1
-#define RW_DEFAULT     RW_READER
-
-#define        RW_READ_HELD(x)         ((x)->rw_readers > 0)
-#define        RW_WRITE_HELD(x)        ((x)->rw_wr_owner == curthread)
-#define        RW_LOCK_HELD(x)         (RW_READ_HELD(x) || RW_WRITE_HELD(x))
-
-extern void rw_init(krwlock_t *rwlp, char *name, int type, void *arg);
-extern void rw_destroy(krwlock_t *rwlp);
-extern void rw_enter(krwlock_t *rwlp, krw_t rw);
-extern int rw_tryenter(krwlock_t *rwlp, krw_t rw);
-extern int rw_tryupgrade(krwlock_t *rwlp);
-extern void rw_exit(krwlock_t *rwlp);
-#define        rw_downgrade(rwlp) do { } while (0)
-
-extern uid_t crgetuid(cred_t *cr);
-extern gid_t crgetgid(cred_t *cr);
-extern int crgetngroups(cred_t *cr);
-extern gid_t *crgetgroups(cred_t *cr);
-
-/*
- * Condition variables
- */
-#define CV_MAGIC       0xd31ea9a83b1b30c4ull
-
-typedef struct kcondvar {
-       uint64_t                cv_magic;
-       pthread_cond_t          cv;
-} kcondvar_t;
-
-#define        CV_DEFAULT      0
-
-extern void cv_init(kcondvar_t *cv, char *name, int type, void *arg);
-extern void cv_destroy(kcondvar_t *cv);
-extern void cv_wait(kcondvar_t *cv, kmutex_t *mp);
-extern clock_t cv_timedwait(kcondvar_t *cv, kmutex_t *mp, clock_t abstime);
-extern void cv_signal(kcondvar_t *cv);
-extern void cv_broadcast(kcondvar_t *cv);
-
-/*
- * kstat creation, installation and deletion
- */
-extern kstat_t *kstat_create(char *, int,
-    char *, char *, uchar_t, ulong_t, uchar_t);
-extern void kstat_install(kstat_t *);
-extern void kstat_delete(kstat_t *);
-
-/*
- * Kernel memory
- */
-#define        KM_SLEEP                UMEM_NOFAIL
-#define        KM_PUSHPAGE             KM_SLEEP
-#define        KM_NOSLEEP              UMEM_DEFAULT
-#define        KM_NODEBUG              0x0
-#define        KMC_NODEBUG             UMC_NODEBUG
-#define        kmem_alloc(_s, _f)      umem_alloc(_s, _f)
-#define        kmem_zalloc(_s, _f)     umem_zalloc(_s, _f)
-#define        kmem_free(_b, _s)       umem_free(_b, _s)
-#define        vmem_alloc(_s, _f)      kmem_alloc(_s, _f)
-#define        vmem_zalloc(_s, _f)     kmem_zalloc(_s, _f)
-#define        vmem_free(_b, _s)       kmem_free(_b, _s)
-#define        kmem_cache_create(_a, _b, _c, _d, _e, _f, _g, _h, _i) \
-       umem_cache_create(_a, _b, _c, _d, _e, _f, _g, _h, _i)
-#define        kmem_cache_destroy(_c)  umem_cache_destroy(_c)
-#define        kmem_cache_alloc(_c, _f) umem_cache_alloc(_c, _f)
-#define        kmem_cache_free(_c, _b) umem_cache_free(_c, _b)
-#define        kmem_debugging()        0
-#define        kmem_cache_reap_now(_c)         /* nothing */
-#define        kmem_cache_set_move(_c, _cb)    /* nothing */
-#define        POINTER_INVALIDATE(_pp)         /* nothing */
-#define        POINTER_IS_VALID(_p)    0
-
-typedef umem_cache_t kmem_cache_t;
-
-typedef enum kmem_cbrc {
-       KMEM_CBRC_YES,
-       KMEM_CBRC_NO,
-       KMEM_CBRC_LATER,
-       KMEM_CBRC_DONT_NEED,
-       KMEM_CBRC_DONT_KNOW
-} kmem_cbrc_t;
-
-/*
- * Task queues
- */
-typedef struct taskq taskq_t;
-typedef uintptr_t taskqid_t;
-typedef void (task_func_t)(void *);
-
-#define        TASKQ_PREPOPULATE       0x0001
-#define        TASKQ_CPR_SAFE          0x0002  /* Use CPR safe protocol */
-#define        TASKQ_DYNAMIC           0x0004  /* Use dynamic thread scheduling */
-#define        TASKQ_THREADS_CPU_PCT   0x0008  /* Scale # threads by # cpus */
-#define        TASKQ_DC_BATCH          0x0010  /* Mark threads as batch */
-
-#define        TQ_SLEEP        KM_SLEEP        /* Can block for memory */
-#define        TQ_NOSLEEP      KM_NOSLEEP      /* cannot block for memory; may fail */
-#define        TQ_NOQUEUE      0x02            /* Do not enqueue if can't dispatch */
-#define        TQ_FRONT        0x08            /* Queue in front */
-
-extern taskq_t *system_taskq;
-
-extern taskq_t *taskq_create(const char *, int, pri_t, int, int, uint_t);
-#define        taskq_create_proc(a, b, c, d, e, p, f) \
-           (taskq_create(a, b, c, d, e, f))
-#define        taskq_create_sysdc(a, b, d, e, p, dc, f) \
-           (taskq_create(a, b, maxclsyspri, d, e, f))
-extern taskqid_t taskq_dispatch(taskq_t *, task_func_t, void *, uint_t);
-extern void    taskq_destroy(taskq_t *);
-extern void    taskq_wait(taskq_t *);
-extern int     taskq_member(taskq_t *, kthread_t *);
-extern void    system_taskq_init(void);
-extern void    system_taskq_fini(void);
-
-#define        XVA_MAPSIZE     3
-#define        XVA_MAGIC       0x78766174
-
-/*
- * vnodes
- */
-typedef struct vnode {
-       uint64_t        v_size;
-       int             v_fd;
-       char            *v_path;
-} vnode_t;
-
-#define        AV_SCANSTAMP_SZ 32              /* length of anti-virus scanstamp */
-
-typedef struct xoptattr {
-       timestruc_t     xoa_createtime; /* Create time of file */
-       uint8_t         xoa_archive;
-       uint8_t         xoa_system;
-       uint8_t         xoa_readonly;
-       uint8_t         xoa_hidden;
-       uint8_t         xoa_nounlink;
-       uint8_t         xoa_immutable;
-       uint8_t         xoa_appendonly;
-       uint8_t         xoa_nodump;
-       uint8_t         xoa_settable;
-       uint8_t         xoa_opaque;
-       uint8_t         xoa_av_quarantined;
-       uint8_t         xoa_av_modified;
-       uint8_t         xoa_av_scanstamp[AV_SCANSTAMP_SZ];
-       uint8_t         xoa_reparse;
-       uint8_t         xoa_offline;
-       uint8_t         xoa_sparse;
-} xoptattr_t;
-
-typedef struct vattr {
-       uint_t          va_mask;        /* bit-mask of attributes */
-       u_offset_t      va_size;        /* file size in bytes */
-} vattr_t;
-
-
-typedef struct xvattr {
-       vattr_t         xva_vattr;      /* Embedded vattr structure */
-       uint32_t        xva_magic;      /* Magic Number */
-       uint32_t        xva_mapsize;    /* Size of attr bitmap (32-bit words) */
-       uint32_t        *xva_rtnattrmapp;       /* Ptr to xva_rtnattrmap[] */
-       uint32_t        xva_reqattrmap[XVA_MAPSIZE];    /* Requested attrs */
-       uint32_t        xva_rtnattrmap[XVA_MAPSIZE];    /* Returned attrs */
-       xoptattr_t      xva_xoptattrs;  /* Optional attributes */
-} xvattr_t;
-
-typedef struct vsecattr {
-       uint_t          vsa_mask;       /* See below */
-       int             vsa_aclcnt;     /* ACL entry count */
-       void            *vsa_aclentp;   /* pointer to ACL entries */
-       int             vsa_dfaclcnt;   /* default ACL entry count */
-       void            *vsa_dfaclentp; /* pointer to default ACL entries */
-       size_t          vsa_aclentsz;   /* ACE size in bytes of vsa_aclentp */
-} vsecattr_t;
-
-#define        AT_TYPE         0x00001
-#define        AT_MODE         0x00002
-#define        AT_UID          0x00004
-#define        AT_GID          0x00008
-#define        AT_FSID         0x00010
-#define        AT_NODEID       0x00020
-#define        AT_NLINK        0x00040
-#define        AT_SIZE         0x00080
-#define        AT_ATIME        0x00100
-#define        AT_MTIME        0x00200
-#define        AT_CTIME        0x00400
-#define        AT_RDEV         0x00800
-#define        AT_BLKSIZE      0x01000
-#define        AT_NBLOCKS      0x02000
-#define        AT_SEQ          0x08000
-#define        AT_XVATTR       0x10000
-
-#define        CRCREAT         0
-
-extern int fop_getattr(vnode_t *vp, vattr_t *vap);
-
-#define        VOP_CLOSE(vp, f, c, o, cr, ct)  0
-#define        VOP_PUTPAGE(vp, of, sz, fl, cr, ct)     0
-#define        VOP_GETATTR(vp, vap, fl, cr, ct)  fop_getattr((vp), (vap));
-
-#define        VOP_FSYNC(vp, f, cr, ct)        fsync((vp)->v_fd)
-
-#define        VN_RELE(vp)     vn_close(vp)
-
-extern int vn_open(char *path, int x1, int oflags, int mode, vnode_t **vpp,
-    int x2, int x3);
-extern int vn_openat(char *path, int x1, int oflags, int mode, vnode_t **vpp,
-    int x2, int x3, vnode_t *vp, int fd);
-extern int vn_rdwr(int uio, vnode_t *vp, void *addr, ssize_t len,
-    offset_t offset, int x1, int x2, rlim64_t x3, void *x4, ssize_t *residp);
-extern void vn_close(vnode_t *vp);
-
-#define        vn_remove(path, x1, x2)         remove(path)
-#define        vn_rename(from, to, seg)        rename((from), (to))
-#define        vn_is_readonly(vp)              B_FALSE
-
-extern vnode_t *rootdir;
-
-#include <sys/file.h>          /* for FREAD, FWRITE, etc */
-
-/*
- * Random stuff
- */
-#define        ddi_get_lbolt()         (gethrtime() >> 23)
-#define        ddi_get_lbolt64()       (gethrtime() >> 23)
-#define        hz      119     /* frequency when using gethrtime() >> 23 for lbolt */
-
-extern void delay(clock_t ticks);
-
-#define        gethrestime_sec() time(NULL)
-#define        gethrestime(t) \
-       do {\
-               (t)->tv_sec = gethrestime_sec();\
-               (t)->tv_nsec = 0;\
-       } while (0);
-
-#define        max_ncpus       64
-
-#define        minclsyspri     60
-#define        maxclsyspri     99
-
-#define        CPU_SEQID       (pthread_self() & (max_ncpus - 1))
-
-#define        kcred           NULL
-#define        CRED()          NULL
-
-#define        ptob(x)         ((x) * PAGESIZE)
-
-extern uint64_t physmem;
-
-extern int highbit(ulong_t i);
-extern int random_get_bytes(uint8_t *ptr, size_t len);
-extern int random_get_pseudo_bytes(uint8_t *ptr, size_t len);
-
-extern void kernel_init(int);
-extern void kernel_fini(void);
-
-struct spa;
-extern void nicenum(uint64_t num, char *buf);
-extern void show_pool_stats(struct spa *);
-
-typedef struct callb_cpr {
-       kmutex_t        *cc_lockp;
-} callb_cpr_t;
-
-#define        CALLB_CPR_INIT(cp, lockp, func, name)   {               \
-       (cp)->cc_lockp = lockp;                                 \
-}
-
-#define        CALLB_CPR_SAFE_BEGIN(cp) {                              \
-       ASSERT(MUTEX_HELD((cp)->cc_lockp));                     \
-}
-
-#define        CALLB_CPR_SAFE_END(cp, lockp) {                         \
-       ASSERT(MUTEX_HELD((cp)->cc_lockp));                     \
-}
-
-#define        CALLB_CPR_EXIT(cp) {                                    \
-       ASSERT(MUTEX_HELD((cp)->cc_lockp));                     \
-       mutex_exit((cp)->cc_lockp);                             \
-}
-
-#define        zone_dataset_visible(x, y)      (1)
-#define        INGLOBALZONE(z)                 (1)
-
-extern char *kmem_vasprintf(const char *fmt, va_list adx);
-extern char *kmem_asprintf(const char *fmt, ...);
-#define        strfree(str) kmem_free((str), strlen(str)+1)
-
-/*
- * Hostname information
- */
-extern char hw_serial[];       /* for userland-emulated hostid access */
-extern int ddi_strtoul(const char *str, char **nptr, int base,
-    unsigned long *result);
-
-extern int ddi_strtoull(const char *str, char **nptr, int base,
-    u_longlong_t *result);
-
-/* ZFS Boot Related stuff. */
-
-struct _buf {
-       intptr_t        _fd;
-};
-
-struct bootstat {
-       uint64_t st_size;
-};
-
-typedef struct ace_object {
-       uid_t           a_who;
-       uint32_t        a_access_mask;
-       uint16_t        a_flags;
-       uint16_t        a_type;
-       uint8_t         a_obj_type[16];
-       uint8_t         a_inherit_obj_type[16];
-} ace_object_t;
-
-
-#define        ACE_ACCESS_ALLOWED_OBJECT_ACE_TYPE      0x05
-#define        ACE_ACCESS_DENIED_OBJECT_ACE_TYPE       0x06
-#define        ACE_SYSTEM_AUDIT_OBJECT_ACE_TYPE        0x07
-#define        ACE_SYSTEM_ALARM_OBJECT_ACE_TYPE        0x08
-
-extern struct _buf *kobj_open_file(char *name);
-extern int kobj_read_file(struct _buf *file, char *buf, unsigned size,
-    unsigned off);
-extern void kobj_close_file(struct _buf *file);
-extern int kobj_get_filesize(struct _buf *file, uint64_t *size);
-extern int zfs_secpolicy_snapshot_perms(const char *name, cred_t *cr);
-extern int zfs_secpolicy_rename_perms(const char *from, const char *to,
-    cred_t *cr);
-extern int zfs_secpolicy_destroy_perms(const char *name, cred_t *cr);
-extern zoneid_t getzoneid(void);
-
-/* SID stuff */
-typedef struct ksiddomain {
-       uint_t  kd_ref;
-       uint_t  kd_len;
-       char    *kd_name;
-} ksiddomain_t;
-
-ksiddomain_t *ksid_lookupdomain(const char *);
-void ksiddomain_rele(ksiddomain_t *);
-
-#define        DDI_SLEEP       KM_SLEEP
-#define        ddi_log_sysevent(_a, _b, _c, _d, _e, _f, _g) \
-       sysevent_post_event(_c, _d, _b, "libzpool", _e, _f)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZFS_CONTEXT_H */
index 1925460ba24bf8885b7c6fd71840e9a6542923b9..04390d9e6c4758e6c40a3a951719425f732edde1 100644 (file)
@@ -132,14 +132,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -177,7 +175,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -192,7 +189,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -211,7 +207,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -221,7 +216,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
index 34c526669cdd119eb0ad740a5c4b7be9e8e18ba6..ee5678ccf953b597063f99a98bd2700e78e9397e 100644 (file)
@@ -117,14 +117,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -162,7 +160,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -177,7 +174,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -196,7 +192,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -206,7 +201,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
index f59f04479cd16da30f4ace7a65e041c7fe8823ec..78e48147ae8525b865e01909cd8bb0bac0294737 100644 (file)
@@ -6,8 +6,21 @@ subdir-m += zfs
 subdir-m += zpios
 
 modules:
-       # Make the exported SPL symbols available to these modules.
-       cp @SPL_OBJ@/@SPL_SYMBOLS@ .
+       @# Make the exported SPL symbols available to these modules.
+       @# They may be in the root of SPL_OBJ when building against
+       @# installed devel headers, or they may be in the module
+       @# subdirectory when building against the spl source tree.
+       @if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
+               /bin/cp @SPL_OBJ@/@SPL_SYMBOLS@ .; \
+       elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
+               /bin/cp @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
+       else \
+               echo -e "\n" \
+               "*** Missing spl symbols ensure you have built the spl:\n" \
+               "*** - @SPL_OBJ@/@SPL_SYMBOLS@, or\n" \
+               "*** - @SPL_OBJ@/module/@SPL_SYMBOLS@\n"; \
+               exit 1; \
+       fi
        $(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` @KERNELMAKE_PARAMS@ $@
 
 clean:
@@ -17,36 +30,21 @@ clean:
        if [ -f Module.markers ]; then $(RM) Module.markers; fi
 
 modules_install:
-       # Install the kernel modules
+       @# Install the kernel modules
        $(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
                INSTALL_MOD_PATH=$(DESTDIR) \
                INSTALL_MOD_DIR=addon/zfs $@
-       find ${DESTDIR}/lib/modules/ -name 'modules.*' | xargs ${RM}
-       sysmap=${DESTDIR}/boot/System.map-@LINUX_VERSION@; \
+       find $(DESTDIR)/lib/modules/ -name 'modules.*' | xargs $(RM)
+       sysmap=$(DESTDIR)/boot/System.map-@LINUX_VERSION@; \
        if [ -f $$sysmap ]; then \
                depmod -ae -F $$sysmap @LINUX_VERSION@; \
        fi
-       # Install the required headers in to the kernel source
-       destname=zfs-@ZFS_META_VERSION@/@LINUX_VERSION@; \
-       instdest=$(DESTDIR)/usr/src/$$destname; \
-       (find . -mindepth 3 -name '*.h' | xargs -Ihdr sh -c \
-        "DEST=hdr && install -D hdr $$instdest/\$${DEST#*/*/*/}") || exit 1
 
 modules_uninstall:
-       # Uninstall the kernel modules
-       $(RM) -R ${DESTDIR}/lib/modules/@LINUX_VERSION@/addon/zfs
-       # Uninstall the required headers from the kernel source
-       destname=zfs-@ZFS_META_VERSION@/@LINUX_VERSION@; \
-       instdest=$(DESTDIR)/usr/src/$$destname; \
-       $(RM) -R $$instdest
+       @# Uninstall the kernel modules
+       $(RM) -R $(DESTDIR)/lib/modules/@LINUX_VERSION@/addon/zfs
 
 distdir:
-       distfiles=`find . -name '*.c' -o -name '*.h'`; \
-       for distfile in $$distfiles; do \
-               distpath=`dirname $$distdir/$$distfile`; \
-               (/bin/mkdir -p $$distpath && \
-                /bin/cp $$distfile $$distdir/$$distfile) || exit 1; \
-       done
 
 distclean maintainer-clean: clean
 install: modules_install
index 941de20f4c1d1eb007ed25eda959501b3254d27a..efa414883283798c36f2d91c52d289c4fc227947 100644 (file)
@@ -1,8 +1,10 @@
 MODULE := zavl
 
-EXTRA_CFLAGS  = -I@MODDIR@/avl/include
-EXTRA_CFLAGS += @KERNELCPPFLAGS@
+EXTRA_CFLAGS  = @KERNELCPPFLAGS@
+EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h
+EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h
+EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@
 
-obj-m := ${MODULE}.o
+obj-m := $(MODULE).o
 
-${MODULE}-objs += avl.o
+$(MODULE)-objs += @top_srcdir@/module/avl/avl.o
diff --git a/module/avl/include/sys/avl.h b/module/avl/include/sys/avl.h
deleted file mode 100644 (file)
index ba305c9..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _AVL_H
-#define        _AVL_H
-
-/*
- * This is a private header file.  Applications should not directly include
- * this file.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/types.h>
-#include <sys/avl_impl.h>
-
-/*
- * This is a generic implemenatation of AVL trees for use in the Solaris kernel.
- * The interfaces provide an efficient way of implementing an ordered set of
- * data structures.
- *
- * AVL trees provide an alternative to using an ordered linked list. Using AVL
- * trees will usually be faster, however they requires more storage. An ordered
- * linked list in general requires 2 pointers in each data structure. The
- * AVL tree implementation uses 3 pointers. The following chart gives the
- * approximate performance of operations with the different approaches:
- *
- *     Operation        Link List      AVL tree
- *     ---------        --------       --------
- *     lookup             O(n)         O(log(n))
- *
- *     insert 1 node    constant       constant
- *
- *     delete 1 node    constant       between constant and O(log(n))
- *
- *     delete all nodes   O(n)         O(n)
- *
- *     visit the next
- *     or prev node     constant       between constant and O(log(n))
- *
- *
- * The data structure nodes are anchored at an "avl_tree_t" (the equivalent
- * of a list header) and the individual nodes will have a field of
- * type "avl_node_t" (corresponding to list pointers).
- *
- * The type "avl_index_t" is used to indicate a position in the list for
- * certain calls.
- *
- * The usage scenario is generally:
- *
- * 1. Create the list/tree with: avl_create()
- *
- * followed by any mixture of:
- *
- * 2a. Insert nodes with: avl_add(), or avl_find() and avl_insert()
- *
- * 2b. Visited elements with:
- *      avl_first() - returns the lowest valued node
- *      avl_last() - returns the highest valued node
- *      AVL_NEXT() - given a node go to next higher one
- *      AVL_PREV() - given a node go to previous lower one
- *
- * 2c.  Find the node with the closest value either less than or greater
- *     than a given value with avl_nearest().
- *
- * 2d. Remove individual nodes from the list/tree with avl_remove().
- *
- * and finally when the list is being destroyed
- *
- * 3. Use avl_destroy_nodes() to quickly process/free up any remaining nodes.
- *    Note that once you use avl_destroy_nodes(), you can no longer
- *    use any routine except avl_destroy_nodes() and avl_destoy().
- *
- * 4. Use avl_destroy() to destroy the AVL tree itself.
- *
- * Any locking for multiple thread access is up to the user to provide, just
- * as is needed for any linked list implementation.
- */
-
-
-/*
- * Type used for the root of the AVL tree.
- */
-typedef struct avl_tree avl_tree_t;
-
-/*
- * The data nodes in the AVL tree must have a field of this type.
- */
-typedef struct avl_node avl_node_t;
-
-/*
- * An opaque type used to locate a position in the tree where a node
- * would be inserted.
- */
-typedef uintptr_t avl_index_t;
-
-
-/*
- * Direction constants used for avl_nearest().
- */
-#define        AVL_BEFORE      (0)
-#define        AVL_AFTER       (1)
-
-
-/*
- * Prototypes
- *
- * Where not otherwise mentioned, "void *" arguments are a pointer to the
- * user data structure which must contain a field of type avl_node_t.
- *
- * Also assume the user data structures looks like:
- *     stuct my_type {
- *             ...
- *             avl_node_t      my_link;
- *             ...
- *     };
- */
-
-/*
- * Initialize an AVL tree. Arguments are:
- *
- * tree   - the tree to be initialized
- * compar - function to compare two nodes, it must return exactly: -1, 0, or +1
- *          -1 for <, 0 for ==, and +1 for >
- * size   - the value of sizeof(struct my_type)
- * offset - the value of OFFSETOF(struct my_type, my_link)
- */
-extern void avl_create(avl_tree_t *tree,
-       int (*compar) (const void *, const void *), size_t size, size_t offset);
-
-
-/*
- * Find a node with a matching value in the tree. Returns the matching node
- * found. If not found, it returns NULL and then if "where" is not NULL it sets
- * "where" for use with avl_insert() or avl_nearest().
- *
- * node   - node that has the value being looked for
- * where  - position for use with avl_nearest() or avl_insert(), may be NULL
- */
-extern void *avl_find(avl_tree_t *tree, const void *node, avl_index_t *where);
-
-/*
- * Insert a node into the tree.
- *
- * node   - the node to insert
- * where  - position as returned from avl_find()
- */
-extern void avl_insert(avl_tree_t *tree, void *node, avl_index_t where);
-
-/*
- * Insert "new_data" in "tree" in the given "direction" either after
- * or before the data "here".
- *
- * This might be usefull for avl clients caching recently accessed
- * data to avoid doing avl_find() again for insertion.
- *
- * new_data    - new data to insert
- * here                - existing node in "tree"
- * direction   - either AVL_AFTER or AVL_BEFORE the data "here".
- */
-extern void avl_insert_here(avl_tree_t *tree, void *new_data, void *here,
-    int direction);
-
-
-/*
- * Return the first or last valued node in the tree. Will return NULL
- * if the tree is empty.
- *
- */
-extern void *avl_first(avl_tree_t *tree);
-extern void *avl_last(avl_tree_t *tree);
-
-
-/*
- * Return the next or previous valued node in the tree.
- * AVL_NEXT() will return NULL if at the last node.
- * AVL_PREV() will return NULL if at the first node.
- *
- * node   - the node from which the next or previous node is found
- */
-#define        AVL_NEXT(tree, node)    avl_walk(tree, node, AVL_AFTER)
-#define        AVL_PREV(tree, node)    avl_walk(tree, node, AVL_BEFORE)
-
-
-/*
- * Find the node with the nearest value either greater or less than
- * the value from a previous avl_find(). Returns the node or NULL if
- * there isn't a matching one.
- *
- * where     - position as returned from avl_find()
- * direction - either AVL_BEFORE or AVL_AFTER
- *
- * EXAMPLE get the greatest node that is less than a given value:
- *
- *     avl_tree_t *tree;
- *     struct my_data look_for_value = {....};
- *     struct my_data *node;
- *     struct my_data *less;
- *     avl_index_t where;
- *
- *     node = avl_find(tree, &look_for_value, &where);
- *     if (node != NULL)
- *             less = AVL_PREV(tree, node);
- *     else
- *             less = avl_nearest(tree, where, AVL_BEFORE);
- */
-extern void *avl_nearest(avl_tree_t *tree, avl_index_t where, int direction);
-
-
-/*
- * Add a single node to the tree.
- * The node must not be in the tree, and it must not
- * compare equal to any other node already in the tree.
- *
- * node   - the node to add
- */
-extern void avl_add(avl_tree_t *tree, void *node);
-
-
-/*
- * Remove a single node from the tree.  The node must be in the tree.
- *
- * node   - the node to remove
- */
-extern void avl_remove(avl_tree_t *tree, void *node);
-
-/*
- * Reinsert a node only if its order has changed relative to its nearest
- * neighbors. To optimize performance avl_update_lt() checks only the previous
- * node and avl_update_gt() checks only the next node. Use avl_update_lt() and
- * avl_update_gt() only if you know the direction in which the order of the
- * node may change.
- */
-extern boolean_t avl_update(avl_tree_t *, void *);
-extern boolean_t avl_update_lt(avl_tree_t *, void *);
-extern boolean_t avl_update_gt(avl_tree_t *, void *);
-
-/*
- * Return the number of nodes in the tree
- */
-extern ulong_t avl_numnodes(avl_tree_t *tree);
-
-/*
- * Return B_TRUE if there are zero nodes in the tree, B_FALSE otherwise.
- */
-extern boolean_t avl_is_empty(avl_tree_t *tree);
-
-/*
- * Used to destroy any remaining nodes in a tree. The cookie argument should
- * be initialized to NULL before the first call. Returns a node that has been
- * removed from the tree and may be free()'d. Returns NULL when the tree is
- * empty.
- *
- * Once you call avl_destroy_nodes(), you can only continuing calling it and
- * finally avl_destroy(). No other AVL routines will be valid.
- *
- * cookie - a "void *" used to save state between calls to avl_destroy_nodes()
- *
- * EXAMPLE:
- *     avl_tree_t *tree;
- *     struct my_data *node;
- *     void *cookie;
- *
- *     cookie = NULL;
- *     while ((node = avl_destroy_nodes(tree, &cookie)) != NULL)
- *             free(node);
- *     avl_destroy(tree);
- */
-extern void *avl_destroy_nodes(avl_tree_t *tree, void **cookie);
-
-
-/*
- * Final destroy of an AVL tree. Arguments are:
- *
- * tree   - the empty tree to destroy
- */
-extern void avl_destroy(avl_tree_t *tree);
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _AVL_H */
diff --git a/module/avl/include/sys/avl_impl.h b/module/avl/include/sys/avl_impl.h
deleted file mode 100644 (file)
index fddf769..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _AVL_IMPL_H
-#define        _AVL_IMPL_H
-
-
-
-/*
- * This is a private header file.  Applications should not directly include
- * this file.
- */
-
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*
- * generic AVL tree implementation for kernel use
- *
- * There are 5 pieces of information stored for each node in an AVL tree
- *
- *     pointer to less than child
- *     pointer to greater than child
- *     a pointer to the parent of this node
- *     an indication  [0/1]  of which child I am of my parent
- *     a "balance" (-1, 0, +1)  indicating which child tree is taller
- *
- * Since they only need 3 bits, the last two fields are packed into the
- * bottom bits of the parent pointer on 64 bit machines to save on space.
- */
-
-#ifndef _LP64
-
-struct avl_node {
-       struct avl_node *avl_child[2];  /* left/right children */
-       struct avl_node *avl_parent;    /* this node's parent */
-       unsigned short avl_child_index; /* my index in parent's avl_child[] */
-       short avl_balance;              /* balance value: -1, 0, +1 */
-};
-
-#define        AVL_XPARENT(n)          ((n)->avl_parent)
-#define        AVL_SETPARENT(n, p)     ((n)->avl_parent = (p))
-
-#define        AVL_XCHILD(n)           ((n)->avl_child_index)
-#define        AVL_SETCHILD(n, c)      ((n)->avl_child_index = (unsigned short)(c))
-
-#define        AVL_XBALANCE(n)         ((n)->avl_balance)
-#define        AVL_SETBALANCE(n, b)    ((n)->avl_balance = (short)(b))
-
-#else /* _LP64 */
-
-/*
- * for 64 bit machines, avl_pcb contains parent pointer, balance and child_index
- * values packed in the following manner:
- *
- * |63                                  3|        2        |1          0 |
- * |-------------------------------------|-----------------|-------------|
- * |      avl_parent hi order bits       | avl_child_index | avl_balance |
- * |                                     |                 |     + 1     |
- * |-------------------------------------|-----------------|-------------|
- *
- */
-struct avl_node {
-       struct avl_node *avl_child[2];  /* left/right children nodes */
-       uintptr_t avl_pcb;              /* parent, child_index, balance */
-};
-
-/*
- * macros to extract/set fields in avl_pcb
- *
- * pointer to the parent of the current node is the high order bits
- */
-#define        AVL_XPARENT(n)          ((struct avl_node *)((n)->avl_pcb & ~7))
-#define        AVL_SETPARENT(n, p)                                             \
-       ((n)->avl_pcb = (((n)->avl_pcb & 7) | (uintptr_t)(p)))
-
-/*
- * index of this node in its parent's avl_child[]: bit #2
- */
-#define        AVL_XCHILD(n)           (((n)->avl_pcb >> 2) & 1)
-#define        AVL_SETCHILD(n, c)                                              \
-       ((n)->avl_pcb = (uintptr_t)(((n)->avl_pcb & ~4) | ((c) << 2)))
-
-/*
- * balance indication for a node, lowest 2 bits. A valid balance is
- * -1, 0, or +1, and is encoded by adding 1 to the value to get the
- * unsigned values of 0, 1, 2.
- */
-#define        AVL_XBALANCE(n)         ((int)(((n)->avl_pcb & 3) - 1))
-#define        AVL_SETBALANCE(n, b)                                            \
-       ((n)->avl_pcb = (uintptr_t)((((n)->avl_pcb & ~3) | ((b) + 1))))
-
-#endif /* _LP64 */
-
-
-
-/*
- * switch between a node and data pointer for a given tree
- * the value of "o" is tree->avl_offset
- */
-#define        AVL_NODE2DATA(n, o)     ((void *)((uintptr_t)(n) - (o)))
-#define        AVL_DATA2NODE(d, o)     ((struct avl_node *)((uintptr_t)(d) + (o)))
-
-
-
-/*
- * macros used to create/access an avl_index_t
- */
-#define        AVL_INDEX2NODE(x)       ((avl_node_t *)((x) & ~1))
-#define        AVL_INDEX2CHILD(x)      ((x) & 1)
-#define        AVL_MKINDEX(n, c)       ((avl_index_t)(n) | (c))
-
-
-/*
- * The tree structure. The fields avl_root, avl_compar, and avl_offset come
- * first since they are needed for avl_find().  We want them to fit into
- * a single 64 byte cache line to make avl_find() as fast as possible.
- */
-struct avl_tree {
-       struct avl_node *avl_root;      /* root node in tree */
-       int (*avl_compar)(const void *, const void *);
-       size_t avl_offset;              /* offsetof(type, avl_link_t field) */
-       ulong_t avl_numnodes;           /* number of nodes in the tree */
-       size_t avl_size;                /* sizeof user type struct */
-};
-
-
-/*
- * This will only by used via AVL_NEXT() or AVL_PREV()
- */
-extern void *avl_walk(struct avl_tree *, void *, int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _AVL_IMPL_H */
index 3f643e724d10508f4b6a218921c8b5050afb9b38..71c748e5fcc3e57979d544559d7b771b7f2f9c37 100644 (file)
@@ -1,10 +1,12 @@
 MODULE := znvpair
 
-EXTRA_CFLAGS  = -I@MODDIR@/nvpair/include
-EXTRA_CFLAGS += @KERNELCPPFLAGS@
+EXTRA_CFLAGS  = @KERNELCPPFLAGS@
+EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h
+EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h
+EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@
 
-obj-m := ${MODULE}.o
+obj-m := $(MODULE).o
 
-${MODULE}-objs += nvpair.o
-${MODULE}-objs += nvpair_alloc_spl.o
-${MODULE}-objs += nvpair_alloc_fixed.o
+$(MODULE)-objs += @top_srcdir@/module/nvpair/nvpair.o
+$(MODULE)-objs += @top_srcdir@/module/nvpair/nvpair_alloc_spl.o
+$(MODULE)-objs += @top_srcdir@/module/nvpair/nvpair_alloc_fixed.o
diff --git a/module/nvpair/include/sys/nvpair.h b/module/nvpair/include/sys/nvpair.h
deleted file mode 100644 (file)
index 30ff4e0..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_NVPAIR_H
-#define        _SYS_NVPAIR_H
-
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/va_list.h>
-
-#if defined(_KERNEL) && !defined(_BOOT)
-#include <sys/kmem.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-       DATA_TYPE_UNKNOWN = 0,
-       DATA_TYPE_BOOLEAN,
-       DATA_TYPE_BYTE,
-       DATA_TYPE_INT16,
-       DATA_TYPE_UINT16,
-       DATA_TYPE_INT32,
-       DATA_TYPE_UINT32,
-       DATA_TYPE_INT64,
-       DATA_TYPE_UINT64,
-       DATA_TYPE_STRING,
-       DATA_TYPE_BYTE_ARRAY,
-       DATA_TYPE_INT16_ARRAY,
-       DATA_TYPE_UINT16_ARRAY,
-       DATA_TYPE_INT32_ARRAY,
-       DATA_TYPE_UINT32_ARRAY,
-       DATA_TYPE_INT64_ARRAY,
-       DATA_TYPE_UINT64_ARRAY,
-       DATA_TYPE_STRING_ARRAY,
-       DATA_TYPE_HRTIME,
-       DATA_TYPE_NVLIST,
-       DATA_TYPE_NVLIST_ARRAY,
-       DATA_TYPE_BOOLEAN_VALUE,
-       DATA_TYPE_INT8,
-       DATA_TYPE_UINT8,
-       DATA_TYPE_BOOLEAN_ARRAY,
-       DATA_TYPE_INT8_ARRAY,
-#if !defined(_KERNEL)
-       DATA_TYPE_UINT8_ARRAY,
-       DATA_TYPE_DOUBLE
-#else
-       DATA_TYPE_UINT8_ARRAY
-#endif
-} data_type_t;
-
-typedef struct nvpair {
-       int32_t nvp_size;       /* size of this nvpair */
-       int16_t nvp_name_sz;    /* length of name string */
-       int16_t nvp_reserve;    /* not used */
-       int32_t nvp_value_elem; /* number of elements for array types */
-       data_type_t nvp_type;   /* type of value */
-       /* name string */
-       /* aligned ptr array for string arrays */
-       /* aligned array of data for value */
-} nvpair_t;
-
-/* nvlist header */
-typedef struct nvlist {
-       int32_t         nvl_version;
-       uint32_t        nvl_nvflag;     /* persistent flags */
-       uint64_t        nvl_priv;       /* ptr to private data if not packed */
-       uint32_t        nvl_flag;
-       int32_t         nvl_pad;        /* currently not used, for alignment */
-} nvlist_t;
-
-/* nvp implementation version */
-#define        NV_VERSION      0
-
-/* nvlist pack encoding */
-#define        NV_ENCODE_NATIVE        0
-#define        NV_ENCODE_XDR           1
-
-/* nvlist persistent unique name flags, stored in nvl_nvflags */
-#define        NV_UNIQUE_NAME          0x1
-#define        NV_UNIQUE_NAME_TYPE     0x2
-
-/* nvlist lookup pairs related flags */
-#define        NV_FLAG_NOENTOK         0x1
-
-/* convenience macros */
-#define        NV_ALIGN(x)             (((ulong_t)(x) + 7ul) & ~7ul)
-#define        NV_ALIGN4(x)            (((x) + 3) & ~3)
-
-#define        NVP_SIZE(nvp)           ((nvp)->nvp_size)
-#define        NVP_NAME(nvp)           ((char *)(nvp) + sizeof (nvpair_t))
-#define        NVP_TYPE(nvp)           ((nvp)->nvp_type)
-#define        NVP_NELEM(nvp)          ((nvp)->nvp_value_elem)
-#define        NVP_VALUE(nvp)          ((char *)(nvp) + NV_ALIGN(sizeof (nvpair_t) \
-                               + (nvp)->nvp_name_sz))
-
-#define        NVL_VERSION(nvl)        ((nvl)->nvl_version)
-#define        NVL_SIZE(nvl)           ((nvl)->nvl_size)
-#define        NVL_FLAG(nvl)           ((nvl)->nvl_flag)
-
-/* NV allocator framework */
-typedef struct nv_alloc_ops nv_alloc_ops_t;
-
-typedef struct nv_alloc {
-       const nv_alloc_ops_t *nva_ops;
-       void *nva_arg;
-} nv_alloc_t;
-
-struct nv_alloc_ops {
-       int (*nv_ao_init)(nv_alloc_t *, __va_list);
-       void (*nv_ao_fini)(nv_alloc_t *);
-       void *(*nv_ao_alloc)(nv_alloc_t *, size_t);
-       void (*nv_ao_free)(nv_alloc_t *, void *, size_t);
-       void (*nv_ao_reset)(nv_alloc_t *);
-};
-
-extern const nv_alloc_ops_t *nv_fixed_ops;
-extern nv_alloc_t *nv_alloc_nosleep;
-
-#if defined(_KERNEL) && !defined(_BOOT)
-extern nv_alloc_t *nv_alloc_sleep;
-#endif
-
-int nv_alloc_init(nv_alloc_t *, const nv_alloc_ops_t *, /* args */ ...);
-void nv_alloc_reset(nv_alloc_t *);
-void nv_alloc_fini(nv_alloc_t *);
-
-/* list management */
-int nvlist_alloc(nvlist_t **, uint_t, int);
-void nvlist_free(nvlist_t *);
-int nvlist_size(nvlist_t *, size_t *, int);
-int nvlist_pack(nvlist_t *, char **, size_t *, int, int);
-int nvlist_unpack(char *, size_t, nvlist_t **, int);
-int nvlist_dup(nvlist_t *, nvlist_t **, int);
-int nvlist_merge(nvlist_t *, nvlist_t *, int);
-
-uint_t nvlist_nvflag(nvlist_t *);
-
-int nvlist_xalloc(nvlist_t **, uint_t, nv_alloc_t *);
-int nvlist_xpack(nvlist_t *, char **, size_t *, int, nv_alloc_t *);
-int nvlist_xunpack(char *, size_t, nvlist_t **, nv_alloc_t *);
-int nvlist_xdup(nvlist_t *, nvlist_t **, nv_alloc_t *);
-nv_alloc_t *nvlist_lookup_nv_alloc(nvlist_t *);
-
-int nvlist_add_nvpair(nvlist_t *, nvpair_t *);
-int nvlist_add_boolean(nvlist_t *, const char *);
-int nvlist_add_boolean_value(nvlist_t *, const char *, boolean_t);
-int nvlist_add_byte(nvlist_t *, const char *, uchar_t);
-int nvlist_add_int8(nvlist_t *, const char *, int8_t);
-int nvlist_add_uint8(nvlist_t *, const char *, uint8_t);
-int nvlist_add_int16(nvlist_t *, const char *, int16_t);
-int nvlist_add_uint16(nvlist_t *, const char *, uint16_t);
-int nvlist_add_int32(nvlist_t *, const char *, int32_t);
-int nvlist_add_uint32(nvlist_t *, const char *, uint32_t);
-int nvlist_add_int64(nvlist_t *, const char *, int64_t);
-int nvlist_add_uint64(nvlist_t *, const char *, uint64_t);
-int nvlist_add_string(nvlist_t *, const char *, const char *);
-int nvlist_add_nvlist(nvlist_t *, const char *, nvlist_t *);
-int nvlist_add_boolean_array(nvlist_t *, const char *, boolean_t *, uint_t);
-int nvlist_add_byte_array(nvlist_t *, const char *, uchar_t *, uint_t);
-int nvlist_add_int8_array(nvlist_t *, const char *, int8_t *, uint_t);
-int nvlist_add_uint8_array(nvlist_t *, const char *, uint8_t *, uint_t);
-int nvlist_add_int16_array(nvlist_t *, const char *, int16_t *, uint_t);
-int nvlist_add_uint16_array(nvlist_t *, const char *, uint16_t *, uint_t);
-int nvlist_add_int32_array(nvlist_t *, const char *, int32_t *, uint_t);
-int nvlist_add_uint32_array(nvlist_t *, const char *, uint32_t *, uint_t);
-int nvlist_add_int64_array(nvlist_t *, const char *, int64_t *, uint_t);
-int nvlist_add_uint64_array(nvlist_t *, const char *, uint64_t *, uint_t);
-int nvlist_add_string_array(nvlist_t *, const char *, char *const *, uint_t);
-int nvlist_add_nvlist_array(nvlist_t *, const char *, nvlist_t **, uint_t);
-int nvlist_add_hrtime(nvlist_t *, const char *, hrtime_t);
-#if !defined(_KERNEL)
-int nvlist_add_double(nvlist_t *, const char *, double);
-#endif
-
-int nvlist_remove(nvlist_t *, const char *, data_type_t);
-int nvlist_remove_all(nvlist_t *, const char *);
-int nvlist_remove_nvpair(nvlist_t *, nvpair_t *);
-
-int nvlist_lookup_boolean(nvlist_t *, const char *);
-int nvlist_lookup_boolean_value(nvlist_t *, const char *, boolean_t *);
-int nvlist_lookup_byte(nvlist_t *, const char *, uchar_t *);
-int nvlist_lookup_int8(nvlist_t *, const char *, int8_t *);
-int nvlist_lookup_uint8(nvlist_t *, const char *, uint8_t *);
-int nvlist_lookup_int16(nvlist_t *, const char *, int16_t *);
-int nvlist_lookup_uint16(nvlist_t *, const char *, uint16_t *);
-int nvlist_lookup_int32(nvlist_t *, const char *, int32_t *);
-int nvlist_lookup_uint32(nvlist_t *, const char *, uint32_t *);
-int nvlist_lookup_int64(nvlist_t *, const char *, int64_t *);
-int nvlist_lookup_uint64(nvlist_t *, const char *, uint64_t *);
-int nvlist_lookup_string(nvlist_t *, const char *, char **);
-int nvlist_lookup_nvlist(nvlist_t *, const char *, nvlist_t **);
-int nvlist_lookup_boolean_array(nvlist_t *, const char *,
-    boolean_t **, uint_t *);
-int nvlist_lookup_byte_array(nvlist_t *, const char *, uchar_t **, uint_t *);
-int nvlist_lookup_int8_array(nvlist_t *, const char *, int8_t **, uint_t *);
-int nvlist_lookup_uint8_array(nvlist_t *, const char *, uint8_t **, uint_t *);
-int nvlist_lookup_int16_array(nvlist_t *, const char *, int16_t **, uint_t *);
-int nvlist_lookup_uint16_array(nvlist_t *, const char *, uint16_t **, uint_t *);
-int nvlist_lookup_int32_array(nvlist_t *, const char *, int32_t **, uint_t *);
-int nvlist_lookup_uint32_array(nvlist_t *, const char *, uint32_t **, uint_t *);
-int nvlist_lookup_int64_array(nvlist_t *, const char *, int64_t **, uint_t *);
-int nvlist_lookup_uint64_array(nvlist_t *, const char *, uint64_t **, uint_t *);
-int nvlist_lookup_string_array(nvlist_t *, const char *, char ***, uint_t *);
-int nvlist_lookup_nvlist_array(nvlist_t *, const char *,
-    nvlist_t ***, uint_t *);
-int nvlist_lookup_hrtime(nvlist_t *, const char *, hrtime_t *);
-int nvlist_lookup_pairs(nvlist_t *, int, ...);
-#if !defined(_KERNEL)
-int nvlist_lookup_double(nvlist_t *, const char *, double *);
-#endif
-
-int nvlist_lookup_nvpair(nvlist_t *, const char *, nvpair_t **);
-int nvlist_lookup_nvpair_embedded_index(nvlist_t *, const char *, nvpair_t **,
-    int *, char **);
-boolean_t nvlist_exists(nvlist_t *, const char *);
-boolean_t nvlist_empty(nvlist_t *);
-
-/* processing nvpair */
-nvpair_t *nvlist_next_nvpair(nvlist_t *, nvpair_t *);
-nvpair_t *nvlist_prev_nvpair(nvlist_t *, nvpair_t *);
-char *nvpair_name(nvpair_t *);
-data_type_t nvpair_type(nvpair_t *);
-int nvpair_type_is_array(nvpair_t *);
-int nvpair_value_boolean_value(nvpair_t *, boolean_t *);
-int nvpair_value_byte(nvpair_t *, uchar_t *);
-int nvpair_value_int8(nvpair_t *, int8_t *);
-int nvpair_value_uint8(nvpair_t *, uint8_t *);
-int nvpair_value_int16(nvpair_t *, int16_t *);
-int nvpair_value_uint16(nvpair_t *, uint16_t *);
-int nvpair_value_int32(nvpair_t *, int32_t *);
-int nvpair_value_uint32(nvpair_t *, uint32_t *);
-int nvpair_value_int64(nvpair_t *, int64_t *);
-int nvpair_value_uint64(nvpair_t *, uint64_t *);
-int nvpair_value_string(nvpair_t *, char **);
-int nvpair_value_nvlist(nvpair_t *, nvlist_t **);
-int nvpair_value_boolean_array(nvpair_t *, boolean_t **, uint_t *);
-int nvpair_value_byte_array(nvpair_t *, uchar_t **, uint_t *);
-int nvpair_value_int8_array(nvpair_t *, int8_t **, uint_t *);
-int nvpair_value_uint8_array(nvpair_t *, uint8_t **, uint_t *);
-int nvpair_value_int16_array(nvpair_t *, int16_t **, uint_t *);
-int nvpair_value_uint16_array(nvpair_t *, uint16_t **, uint_t *);
-int nvpair_value_int32_array(nvpair_t *, int32_t **, uint_t *);
-int nvpair_value_uint32_array(nvpair_t *, uint32_t **, uint_t *);
-int nvpair_value_int64_array(nvpair_t *, int64_t **, uint_t *);
-int nvpair_value_uint64_array(nvpair_t *, uint64_t **, uint_t *);
-int nvpair_value_string_array(nvpair_t *, char ***, uint_t *);
-int nvpair_value_nvlist_array(nvpair_t *, nvlist_t ***, uint_t *);
-int nvpair_value_hrtime(nvpair_t *, hrtime_t *);
-#if !defined(_KERNEL)
-int nvpair_value_double(nvpair_t *, double *);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_NVPAIR_H */
diff --git a/module/nvpair/include/sys/nvpair_impl.h b/module/nvpair/include/sys/nvpair_impl.h
deleted file mode 100644 (file)
index b851ddd..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _NVPAIR_IMPL_H
-#define        _NVPAIR_IMPL_H
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/nvpair.h>
-
-/*
- * The structures here provided for information and debugging purposes only
- * may be changed in the future.
- */
-
-/*
- * implementation linked list for pre-packed data
- */
-typedef struct i_nvp i_nvp_t;
-
-struct i_nvp {
-       union {
-               uint64_t        _nvi_align;     /* ensure alignment */
-               struct {
-                       i_nvp_t *_nvi_next;     /* pointer to next nvpair */
-                       i_nvp_t *_nvi_prev;     /* pointer to prev nvpair */
-               } _nvi;
-       } _nvi_un;
-       nvpair_t nvi_nvp;                       /* nvpair */
-};
-#define        nvi_next        _nvi_un._nvi._nvi_next
-#define        nvi_prev        _nvi_un._nvi._nvi_prev
-
-typedef struct {
-       i_nvp_t         *nvp_list;      /* linked list of nvpairs */
-       i_nvp_t         *nvp_last;      /* last nvpair */
-       i_nvp_t         *nvp_curr;      /* current walker nvpair */
-       nv_alloc_t      *nvp_nva;       /* pluggable allocator */
-       uint32_t        nvp_stat;       /* internal state */
-} nvpriv_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NVPAIR_IMPL_H */
index 1a78fe0b59c1573623d6da72bf6bf7db37078358..14a46b270b04b82357e5dc68055ea7bc3f2dadee 100644 (file)
@@ -1,9 +1,11 @@
 MODULE := zunicode
 
-EXTRA_CFLAGS  = -I@MODDIR@/unicode/include
-EXTRA_CFLAGS += @KERNELCPPFLAGS@
+EXTRA_CFLAGS  = @KERNELCPPFLAGS@
+EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h
+EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h
+EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@
 
-obj-m := ${MODULE}.o
+obj-m := $(MODULE).o
 
-${MODULE}-objs += u8_textprep.o
-${MODULE}-objs += uconv.o
+$(MODULE)-objs += @top_srcdir@/module/unicode/u8_textprep.o
+$(MODULE)-objs += @top_srcdir@/module/unicode/uconv.o
diff --git a/module/unicode/include/sys/u8_textprep.h b/module/unicode/include/sys/u8_textprep.h
deleted file mode 100644 (file)
index f8b5bed..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _SYS_U8_TEXTPREP_H
-#define        _SYS_U8_TEXTPREP_H
-
-
-
-#include <sys/isa_defs.h>
-#include <sys/types.h>
-#include <sys/errno.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Unicode encoding conversion functions and their macros.
- */
-#define        UCONV_IN_BIG_ENDIAN             0x0001
-#define        UCONV_OUT_BIG_ENDIAN            0x0002
-#define        UCONV_IN_SYSTEM_ENDIAN          0x0004
-#define        UCONV_OUT_SYSTEM_ENDIAN         0x0008
-#define        UCONV_IN_LITTLE_ENDIAN          0x0010
-#define        UCONV_OUT_LITTLE_ENDIAN         0x0020
-#define        UCONV_IGNORE_NULL               0x0040
-#define        UCONV_IN_ACCEPT_BOM             0x0080
-#define        UCONV_OUT_EMIT_BOM              0x0100
-
-extern int uconv_u16tou32(const uint16_t *, size_t *, uint32_t *, size_t *,
-       int);
-extern int uconv_u16tou8(const uint16_t *, size_t *, uchar_t *, size_t *, int);
-extern int uconv_u32tou16(const uint32_t *, size_t *, uint16_t *, size_t *,
-       int);
-extern int uconv_u32tou8(const uint32_t *, size_t *, uchar_t *, size_t *, int);
-extern int uconv_u8tou16(const uchar_t *, size_t *, uint16_t *, size_t *, int);
-extern int uconv_u8tou32(const uchar_t *, size_t *, uint32_t *, size_t *, int);
-
-/*
- * UTF-8 text preparation functions and their macros.
- *
- * Among the macros defined, U8_CANON_DECOMP, U8_COMPAT_DECOMP, and
- * U8_CANON_COMP are not public interfaces and must not be used directly
- * at the flag input argument.
- */
-#define        U8_STRCMP_CS                    (0x00000001)
-#define        U8_STRCMP_CI_UPPER              (0x00000002)
-#define        U8_STRCMP_CI_LOWER              (0x00000004)
-
-#define        U8_CANON_DECOMP                 (0x00000010)
-#define        U8_COMPAT_DECOMP                (0x00000020)
-#define        U8_CANON_COMP                   (0x00000040)
-
-#define        U8_STRCMP_NFD                   (U8_CANON_DECOMP)
-#define        U8_STRCMP_NFC                   (U8_CANON_DECOMP | U8_CANON_COMP)
-#define        U8_STRCMP_NFKD                  (U8_COMPAT_DECOMP)
-#define        U8_STRCMP_NFKC                  (U8_COMPAT_DECOMP | U8_CANON_COMP)
-
-#define        U8_TEXTPREP_TOUPPER             (U8_STRCMP_CI_UPPER)
-#define        U8_TEXTPREP_TOLOWER             (U8_STRCMP_CI_LOWER)
-
-#define        U8_TEXTPREP_NFD                 (U8_STRCMP_NFD)
-#define        U8_TEXTPREP_NFC                 (U8_STRCMP_NFC)
-#define        U8_TEXTPREP_NFKD                (U8_STRCMP_NFKD)
-#define        U8_TEXTPREP_NFKC                (U8_STRCMP_NFKC)
-
-#define        U8_TEXTPREP_IGNORE_NULL         (0x00010000)
-#define        U8_TEXTPREP_IGNORE_INVALID      (0x00020000)
-#define        U8_TEXTPREP_NOWAIT              (0x00040000)
-
-#define        U8_UNICODE_320                  (0)
-#define        U8_UNICODE_500                  (1)
-#define        U8_UNICODE_LATEST               (U8_UNICODE_500)
-
-#define        U8_VALIDATE_ENTIRE              (0x00100000)
-#define        U8_VALIDATE_CHECK_ADDITIONAL    (0x00200000)
-#define        U8_VALIDATE_UCS2_RANGE          (0x00400000)
-
-#define        U8_ILLEGAL_CHAR                 (-1)
-#define        U8_OUT_OF_RANGE_CHAR            (-2)
-
-extern int u8_validate(char *, size_t, char **, int, int *);
-extern int u8_strcmp(const char *, const char *, size_t, int, size_t, int *);
-extern size_t u8_textprep_str(char *, size_t *, char *, size_t *, int, size_t,
-       int *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_U8_TEXTPREP_H */
diff --git a/module/unicode/include/sys/u8_textprep_data.h b/module/unicode/include/sys/u8_textprep_data.h
deleted file mode 100644 (file)
index 03f71f2..0000000
+++ /dev/null
@@ -1,35376 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-/*
- * COPYRIGHT AND PERMISSION NOTICE
- *
- * Copyright (c) 1991-2006 Unicode, Inc. All rights reserved. Distributed under
- * the Terms of Use in http://www.unicode.org/copyright.html.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of the Unicode data files and any associated documentation (the
- * "Data Files") or Unicode software and any associated documentation (the
- * "Software") to deal in the Data Files or Software without restriction,
- * including without limitation the rights to use, copy, modify, merge,
- * publish, distribute, and/or sell copies of the Data Files or Software, and
- * to permit persons to whom the Data Files or Software are furnished to do so,
- * provided that (a) the above copyright notice(s) and this permission notice
- * appear with all copies of the Data Files or Software, (b) both the above
- * copyright notice(s) and this permission notice appear in associated
- * documentation, and (c) there is clear notice in each modified Data File or
- * in the Software as well as in the documentation associated with the Data
- * File(s) or Software that the data or software has been modified.
- *
- * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
- * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
- * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
- * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR
- * CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THE DATA FILES OR SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder shall not
- * be used in advertising or otherwise to promote the sale, use or other
- * dealings in these Data Files or Software without prior written authorization
- * of the copyright holder.
- *
- * Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be
- * registered in some jurisdictions. All other trademarks and registered
- * trademarks mentioned herein are the property of their respective owners.
- */
-/*
- * This file has been modified by Sun Microsystems, Inc.
- */
-
-#ifndef _SYS_U8_TEXTPREP_DATA_H
-#define        _SYS_U8_TEXTPREP_DATA_H
-
-
-
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * To get to the combining class data, composition mappings, decomposition
- * mappings, and case conversion mappings of Unicode, the data structures
- * formulated and their meanings are like the following:
- *
- * Each UTF-8 character is seen as a 4-byte entity so that U+0061 (or 0x61 in
- * UTF-8) would be seen as 0x00 0x00 0x00 0x61. Similarly, U+1D15E would be
- * 0xF0 0x9D 0x85 0x9E in UTF-8.
- *
- * The first byte (MSB) value is an index to the b1_tbl, such as
- * u8_common_b1_tbl and u8_composition_b1_tbl tables. A b1_tbl has
- * indices to b2_tbl tables that have indices to b3_tbl. Each b3_tbl has
- * either indices to b4_tbl or indices to b4_tbl and base values for
- * displacement calculations later by using the u8_displacement_t type at
- * below. Each b4_tbl table then has indices to the final tables.
- *
- * As an example, if we have a character with code value of U+1D15E which is
- * 0xF0 0x9D 0x85 0x9E in UTF-8, the target decomposition character bytes
- * that will be mapped by the mapping procedure would be the ones between
- * the start_index and the end_index computed as like the following:
- *
- *     b2_tbl_id = u8_common_b1_tbl[0][0xF0];
- *     b3_tbl_id = u8_decomp_b2_tbl[0][b2_tbl_id][0x9D];
- *     b4_tbl_id = u8_decomp_b3_tbl[0][b3_tbl_id][0x85].tbl_id;
- *     b4_base = u8_decomp_b3_tbl[0][b3_tbl_id][0x85].base;
- *     if (b4_tbl_id >= 0x8000) {
- *             b4_tbl_id -= 0x8000;
- *             start_index = u8_decomp_b4_16bit_tbl[0][b4_tbl_id][0x9E];
- *             end_index = u8_decomp_b4_16bit_tbl[0][b4_tbl_id][0x9E + 1];
- *     } else {
- *             start_index = u8_decomp_b4_tbl[0][b4_tbl_id][0x9E];
- *             end_index = u8_decomp_b4_tbl[0][b4_tbl_id][0x9E + 1];
- *     }
- *
- * The start_index and the end_index can be used to retrieve the bytes
- * possibly of multiple UTF-8 characters from the final tables.
- *
- * The "[0]" at the above indicates this is for Unicode Version 3.2.0 data
- * as of today.  Consequently, the "[1]" indicates another Unicode version
- * data and it is Unicode 5.0.0 as of today.
- *
- * The mapping procedures and the data structures are more or less similar or
- * alike among different mappings. You might want to read the u8_textprep.c
- * for specific details.
- *
- * The tool programs created and used to generate the tables in this file are
- * saved at PSARC/2007/149/materials/ as tools.tar.gz file.
- */
-
-/* The following is a component type for the b4_tbl vectors. */
-typedef struct {
-       uint16_t        tbl_id;
-       uint16_t        base;
-} u8_displacement_t;
-
-/*
- * The U8_TBL_ELEMENT_NOT_DEF macro indicates a byte that is not defined or
- * used. The U8_TBL_ELEMENT_FILLER indicates the end of a UTF-8 character at
- * the final tables.
- */
-#define        U8_TBL_ELEMENT_NOT_DEF          (0xff)
-#define        N_                              U8_TBL_ELEMENT_NOT_DEF
-
-#define        U8_TBL_ELEMENT_FILLER           (0xf7)
-#define        FIL_                            U8_TBL_ELEMENT_FILLER
-
-/*
- * The common b1_tbl for combining class, decompositions, tolower, and
- * toupper case conversion mappings.
- */
-static const uchar_t u8_common_b1_tbl[2][256] = {
-       {
-               0,  N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               1,  N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-       },
-       {
-               0,  N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               1,  N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-       },
-};
-
-static const uchar_t u8_combining_class_b2_tbl[2][2][256] = {
-       {
-               {
-                       0,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       1,  2,  3,  4,  N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, 5,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, 6,  N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-
-       },
-       {
-               {
-                       0,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       1,  2,  3,  4,  N_, N_, N_, N_,
-                       N_, N_, 5,  N_, N_, N_, N_, 6,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       7,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, 8,  N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-
-       },
-
-};
-
-static const uchar_t u8_combining_class_b3_tbl[2][9][256] = {
-       {
-               {       /* Third byte table 0. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, 0,  1,  N_, N_,
-                       N_, N_, 2,  N_, N_, N_, 3,  4,
-                       N_, 5,  N_, 6,  7,  8,  N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 1. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, 9,  10, 11, 12,
-                       13, 14, 15, 16, 17, 18, N_, 19,
-                       N_, 20, N_, 21, N_, 22, N_, 23,
-                       24, 25, 26, 27, 28, 29, 30, 31,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 2. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       32, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, 33, N_, N_, 34,
-                       N_, N_, 35, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 3. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, 36, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 4. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       37, N_, 38, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 5. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, 39, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       40, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 6. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, 41, 42, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 7. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 8. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-       },
-       {
-               {       /* Third byte table 0. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, 0,  1,  N_, N_,
-                       N_, N_, 2,  N_, N_, N_, 3,  4,
-                       5,  6,  N_, 7,  8,  9,  N_, 10,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 1. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, 11, 12, 13, 14,
-                       15, 16, 17, 18, 19, 20, N_, 21,
-                       N_, 22, 23, 24, N_, 25, N_, 26,
-                       27, 28, 29, 30, 31, 32, 33, 34,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 2. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       35, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, 36, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, 37, N_, N_, 38,
-                       N_, N_, 39, N_, 40, N_, N_, N_,
-                       41, N_, N_, N_, 42, 43, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, 44,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 3. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, 45, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 4. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       46, N_, 47, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 5. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       48, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 6. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, 49, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       50, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 7. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       51, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {       /* Third byte table 8. */
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, 52, 53, N_,
-                       N_, 54, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-       },
-};
-
-/*
- * Unlike other b4_tbl, the b4_tbl for combining class data has
- * the combining class values not indices to the final tables.
- */
-static const uchar_t u8_combining_class_b4_tbl[2][55][256] = {
-       {
-               {       /* Fourth byte table 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,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       230, 230, 230, 230, 230, 230, 230, 230,
-                       230, 230, 230, 230, 230, 230, 230, 230,
-                       230, 230, 230, 230, 230, 232, 220, 220,
-                       220, 220, 232, 216, 220, 220, 220, 220,
-                       220, 202, 202, 220, 220, 220, 220, 202,
-                       202, 220, 220, 220, 220, 220, 220, 220,
-                       220, 220, 220, 220, 1,   1,   1,   1,
-                       1,   220, 220, 220, 220, 230, 230, 230,
-                       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,   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,
-               },
-               {       /* Fourth byte table 1. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       230, 230, 230, 230, 230, 240, 230, 220,
-                       220, 220, 230, 230, 230, 220, 220, 0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       234, 234, 233, 230, 230, 230, 230, 230,
-                       230, 230, 230, 230, 230, 230, 230, 230,
-                       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,   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,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 2. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   230, 230, 230, 230, 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,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 3. */
-                       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,   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,   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,   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,   220, 230, 230, 230, 230, 220, 230,
-                       230, 230, 222, 220, 230, 230, 230, 230,
-                       230, 230, 0,   220, 220, 220, 220, 220,
-                       230, 230, 220, 230, 230, 222, 228, 230,
-                       10,  11,  12,  13,  14,  15,  16,  17,
-                       18,  19,  0,   20,  21,  22,  0,   23,
-                       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,   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,
-               },
-               {       /* Fourth byte table 4. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   24,  25,  0,   230, 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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 5. */
-                       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,   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,   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,   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,   27,  28,  29,  30,  31,
-                       32,  33,  34,  230, 230, 220, 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,
-                       35,  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,   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,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 6. */
-                       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,   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,   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,   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,   0,   0,   230, 230,
-                       230, 230, 230, 230, 230, 0,   0,   230,
-                       230, 230, 230, 220, 230, 0,   0,   230,
-                       230, 0,   220, 230, 230, 220, 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,   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,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 7. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   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,   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,   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,   0,   0,   0,   0,   0,
-                       0,   36,  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,
-                       230, 220, 230, 230, 220, 230, 230, 220,
-                       220, 220, 230, 220, 220, 230, 220, 230,
-                       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,   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,
-               },
-               {       /* Fourth byte table 8. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       230, 230, 220, 230, 220, 230, 220, 230,
-                       220, 230, 230, 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,
-                       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,   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,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 9. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 10. */
-                       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,   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,   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,   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,   9,   0,   0,
-                       0,   230, 220, 230, 230, 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,   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,   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,
-               },
-               {       /* Fourth byte table 11. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 12. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   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,   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,   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,   0,   0,   0,   0,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 13. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 14. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 15. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 16. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 17. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 18. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 19. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 20. */
-                       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,   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,   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,   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,   9,   0,   0,
-                       0,   0,   0,   0,   0,   84,  91,  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,   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,   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,
-               },
-               {       /* Fourth byte table 21. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 22. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 23. */
-                       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,   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,   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,   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,   9,   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,
-                       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,   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,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 24. */
-                       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,   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,   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,   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,   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,
-                       103, 103, 9,   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,
-                       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,
-               },
-               {       /* Fourth byte table 25. */
-                       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,   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,   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,   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,
-                       107, 107, 107, 107, 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,   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,   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,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 26. */
-                       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,   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,   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,   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,   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,
-                       118, 118, 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,   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,
-               },
-               {       /* Fourth byte table 27. */
-                       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,   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,   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,   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,
-                       122, 122, 122, 122, 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,   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,   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,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 28. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       220, 220, 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,   220, 0,   220,
-                       0,   216, 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,   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,
-               },
-               {       /* Fourth byte table 29. */
-                       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,   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,   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,   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,   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,   129, 130, 0,   132, 0,   0,   0,
-                       0,   0,   130, 130, 130, 130, 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,   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,
-               },
-               {       /* Fourth byte table 30. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       130, 0,   230, 230, 9,   0,   230, 230,
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 31. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   220, 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,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 32. */
-                       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,   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,   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,   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,   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,   7,
-                       0,   9,   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,   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,
-               },
-               {       /* Fourth byte table 33. */
-                       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,   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,   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,   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,   9,   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,   9,   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,   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,   0,
-               },
-               {       /* Fourth byte table 34. */
-                       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,   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,   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,   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,   9,   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,
-                       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,   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,
-               },
-               {       /* Fourth byte table 35. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   228, 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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 36. */
-                       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,   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,   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,   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,
-                       230, 230, 1,   1,   230, 230, 230, 230,
-                       1,   1,   1,   230, 230, 0,   0,   0,
-                       0,   230, 0,   0,   0,   1,   1,   230,
-                       220, 230, 1,   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,
-                       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,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 37. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   218, 228, 232, 222, 224, 224,
-                       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,   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,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 38. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   8,   8,   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,
-                       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,   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,
-               },
-               {       /* Fourth byte table 39. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   26,  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,   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,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 40. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       230, 230, 230, 230, 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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 41. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   216, 216, 1,
-                       1,   1,   0,   0,   0,   226, 216, 216,
-                       216, 216, 216, 0,   0,   0,   0,   0,
-                       0,   0,   0,   220, 220, 220, 220, 220,
-                       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,   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,
-               },
-               {       /* Fourth byte table 42. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       220, 220, 220, 0,   0,   230, 230, 230,
-                       230, 230, 220, 220, 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,   230, 230, 230, 230, 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,   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,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 43. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 44. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 45. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 46. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 47. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 48. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 49. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 50. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 51. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 52. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 53. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 54. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-       },
-       {
-               {       /* Fourth byte table 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,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       230, 230, 230, 230, 230, 230, 230, 230,
-                       230, 230, 230, 230, 230, 230, 230, 230,
-                       230, 230, 230, 230, 230, 232, 220, 220,
-                       220, 220, 232, 216, 220, 220, 220, 220,
-                       220, 202, 202, 220, 220, 220, 220, 202,
-                       202, 220, 220, 220, 220, 220, 220, 220,
-                       220, 220, 220, 220, 1,   1,   1,   1,
-                       1,   220, 220, 220, 220, 230, 230, 230,
-                       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,   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,
-               },
-               {       /* Fourth byte table 1. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       230, 230, 230, 230, 230, 240, 230, 220,
-                       220, 220, 230, 230, 230, 220, 220, 0,
-                       230, 230, 230, 220, 220, 220, 220, 230,
-                       232, 220, 220, 230, 233, 234, 234, 233,
-                       234, 234, 233, 230, 230, 230, 230, 230,
-                       230, 230, 230, 230, 230, 230, 230, 230,
-                       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,   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,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 2. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   230, 230, 230, 230, 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,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 3. */
-                       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,   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,   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,   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,   220, 230, 230, 230, 230, 220, 230,
-                       230, 230, 222, 220, 230, 230, 230, 230,
-                       230, 230, 220, 220, 220, 220, 220, 220,
-                       230, 230, 220, 230, 230, 222, 228, 230,
-                       10,  11,  12,  13,  14,  15,  16,  17,
-                       18,  19,  19,  20,  21,  22,  0,   23,
-                       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,   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,
-               },
-               {       /* Fourth byte table 4. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   24,  25,  0,   230, 220, 0,   18,
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 5. */
-                       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,   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,   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,   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,
-                       230, 230, 230, 230, 230, 230, 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,   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,
-                       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,
-               },
-               {       /* Fourth byte table 6. */
-                       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,   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,   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,   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,   27,  28,  29,  30,  31,
-                       32,  33,  34,  230, 230, 220, 220, 230,
-                       230, 230, 230, 230, 220, 230, 230, 0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       35,  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,   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,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 7. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   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,   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,   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,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   230, 230,
-                       230, 230, 230, 230, 230, 0,   0,   230,
-                       230, 230, 230, 220, 230, 0,   0,   230,
-                       230, 0,   220, 230, 230, 220, 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,   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,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 8. */
-                       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,   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,   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,   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,   36,  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,
-                       230, 220, 230, 230, 220, 230, 230, 220,
-                       220, 220, 230, 220, 220, 230, 220, 230,
-                       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,   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,
-               },
-               {       /* Fourth byte table 9. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       230, 230, 220, 230, 220, 230, 220, 230,
-                       220, 230, 230, 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,
-                       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,   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,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 10. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   230, 230, 230, 230, 230,
-                       230, 230, 220, 230, 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,   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,   0,   0,
-               },
-               {       /* Fourth byte table 11. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 12. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   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,   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,   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,   0,   0,   0,   0,   9,   0,   0,
-                       0,   230, 220, 230, 230, 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,   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,   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,
-               },
-               {       /* Fourth byte table 13. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 14. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 15. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 16. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 17. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 18. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 19. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 20. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 21. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 22. */
-                       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,   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,   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,   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,   9,   0,   0,
-                       0,   0,   0,   0,   0,   84,  91,  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,   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,   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,
-               },
-               {       /* Fourth byte table 23. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-               },
-               {       /* Fourth byte table 24. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 25. */
-                       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,   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,   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,   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,   9,   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,   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,
-                       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,   0,   0,   0,
-               },
-               {       /* Fourth byte table 26. */
-                       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,   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,   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,   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,   9,   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,
-                       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,   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,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 27. */
-                       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,   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,   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,   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,   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,
-                       103, 103, 9,   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,
-                       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,
-               },
-               {       /* Fourth byte table 28. */
-                       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,   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,   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,   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,
-                       107, 107, 107, 107, 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,   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,   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,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 29. */
-                       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,   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,   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,   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,   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,
-                       118, 118, 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,   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,
-               },
-               {       /* Fourth byte table 30. */
-                       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,   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,   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,   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,
-                       122, 122, 122, 122, 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,   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,   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,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 31. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       220, 220, 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,   220, 0,   220,
-                       0,   216, 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,   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,
-               },
-               {       /* Fourth byte table 32. */
-                       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,   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,   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,   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,   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,   129, 130, 0,   132, 0,   0,   0,
-                       0,   0,   130, 130, 130, 130, 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,   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,
-               },
-               {       /* Fourth byte table 33. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       130, 0,   230, 230, 9,   0,   230, 230,
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 34. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   220, 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,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 35. */
-                       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,   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,   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,   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,   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,   7,
-                       0,   9,   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,   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,
-               },
-               {       /* Fourth byte table 36. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   230,
-                       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,   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,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 37. */
-                       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,   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,   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,   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,   9,   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,   9,   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,   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,   0,
-               },
-               {       /* Fourth byte table 38. */
-                       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,   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,   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,   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,   9,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   230, 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,   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,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 39. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   228, 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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 40. */
-                       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,   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,   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,   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,   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,   222, 230, 220, 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,   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,
-               },
-               {       /* Fourth byte table 41. */
-                       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,   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,   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,   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,   0,   0,   0,   230,
-                       220, 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,   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,   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,
-               },
-               {       /* Fourth byte table 42. */
-                       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,   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,   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,   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,   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,   7,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 43. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   9,   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,   0,   230, 220, 230, 230, 230,
-                       230, 230, 230, 230, 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,   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,   0,   0,
-               },
-               {       /* Fourth byte table 44. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       230, 230, 220, 230, 230, 230, 230, 230,
-                       230, 230, 220, 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,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   230, 220,
-                       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,   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,
-               },
-               {       /* Fourth byte table 45. */
-                       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,   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,   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,   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,
-                       230, 230, 1,   1,   230, 230, 230, 230,
-                       1,   1,   1,   230, 230, 0,   0,   0,
-                       0,   230, 0,   0,   0,   1,   1,   230,
-                       220, 230, 1,   1,   220, 220, 220, 220,
-                       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,   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,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 46. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   218, 228, 232, 222, 224, 224,
-                       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,   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,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 47. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   8,   8,   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,
-                       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,   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,
-               },
-               {       /* Fourth byte table 48. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   9,   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,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 49. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   26,  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,   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,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 50. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       230, 230, 230, 230, 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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 51. */
-                       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,   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,   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,   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,   220, 0,   230,
-                       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,   0,   0,   0,
-                       230, 1,   220, 0,   0,   0,   0,   9,
-                       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,   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,
-               },
-               {       /* Fourth byte table 52. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   216, 216, 1,
-                       1,   1,   0,   0,   0,   226, 216, 216,
-                       216, 216, 216, 0,   0,   0,   0,   0,
-                       0,   0,   0,   220, 220, 220, 220, 220,
-                       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,   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,
-               },
-               {       /* Fourth byte table 53. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       220, 220, 220, 0,   0,   230, 230, 230,
-                       230, 230, 220, 220, 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,   230, 230, 230, 230, 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,   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,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-               {       /* Fourth byte table 54. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   230, 230, 230, 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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-               },
-       },
-};
-
-static const uchar_t u8_composition_b1_tbl[2][256] = {
-       {
-               0,  N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-       },
-       {
-               0,  N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-               N_, N_, N_, N_, N_, N_, N_, N_,
-       },
-};
-
-static const uchar_t u8_composition_b2_tbl[2][1][256] = {
-       {
-               {
-                       0,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       1,  2,  3,  4,  N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-
-       },
-       {
-               {
-                       0,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       1,  2,  3,  4,  N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-
-       },
-
-};
-
-static const u8_displacement_t u8_composition_b3_tbl[2][5][256] = {
-       {
-               {       /* Third byte table 0. */
-                       { 0x8000, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 0, 2470 },
-                       { 0x8001, 2491 }, { 1, 2871 }, { 2, 2959 },
-                       { 3, 3061 }, { 4, 3212 }, { 5, 3226 },
-                       { N_, 0 }, { 6, 3270 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 0x8002, 3277 },
-                       { 7, 3774 }, { 8, 3949 }, { 9, 4198 },
-                       { N_, 0 }, { 10, 4265 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 11, 4293 }, { 12, 4312 }, { N_, 0 },
-                       { 13, 4326 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 1. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 14, 4347 },
-                       { N_, 0 }, { N_, 0 }, { 15, 4374 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 16, 4391 },
-                       { 17, 4416 }, { 18, 4425 }, { N_, 0 },
-                       { 19, 4451 }, { 20, 4460 }, { 21, 4469 },
-                       { N_, 0 }, { 22, 4503 }, { N_, 0 },
-                       { 23, 4529 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 2. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 24, 4563 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 25, 4572 }, { 26, 4588 },
-                       { 27, 4620 }, { 28, 4666 }, { 0x8003, 4682 },
-                       { 0x8004, 5254 }, { 29, 5616 }, { 30, 5646 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 3. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 31, 5684 },
-                       { 32, 5708 }, { 33, 5732 }, { 34, 5780 },
-                       { 35, 5900 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 4. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 36, 6012 }, { 37, 6241 }, { 38, 6358 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-       },
-       {
-               {       /* Third byte table 0. */
-                       { 0x8000, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 0, 2470 },
-                       { 0x8001, 2491 }, { 1, 2871 }, { 2, 2959 },
-                       { 3, 3061 }, { 4, 3212 }, { 5, 3226 },
-                       { N_, 0 }, { 6, 3270 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 0x8002, 3277 },
-                       { 7, 3774 }, { 8, 3949 }, { 9, 4198 },
-                       { N_, 0 }, { 10, 4265 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 11, 4293 }, { 12, 4312 }, { N_, 0 },
-                       { 13, 4326 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 1. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 14, 4347 },
-                       { N_, 0 }, { N_, 0 }, { 15, 4374 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 16, 4391 },
-                       { 17, 4416 }, { 18, 4425 }, { N_, 0 },
-                       { 19, 4451 }, { 20, 4460 }, { 21, 4469 },
-                       { N_, 0 }, { 22, 4503 }, { N_, 0 },
-                       { 23, 4529 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 2. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 24, 4563 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 25, 4572 }, { 26, 4662 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 27, 4671 }, { 28, 4687 },
-                       { 29, 4719 }, { 30, 4765 }, { 0x8003, 4781 },
-                       { 0x8004, 5353 }, { 31, 5715 }, { 32, 5745 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 3. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 33, 5783 },
-                       { 34, 5807 }, { 35, 5831 }, { 36, 5879 },
-                       { 37, 5999 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 4. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 38, 6111 }, { 39, 6340 }, { 40, 6457 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-       },
-};
-
-static const uchar_t u8_composition_b4_tbl[2][41][257] = {
-       {
-               {       /* Fourth byte table 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,   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,   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,   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,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 1. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   29,  58,  58,  58,  58,
-                       58,  58,  58,  58,  58,  58,  58,  58,
-                       58,  58,  58,  73,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,
-               },
-               {       /* Fourth byte table 2. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   15,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  38,  46,  46,  46,  46,
-                       46,  54,  62,  62,  62,  62,  62,  62,
-                       62,  70,  78,  86,  94,  94,  94,  94,
-                       94,  94,  94,  94,  94,  94,  94,  94,
-                       94,  94,  94,  94,  94,  94,  94,  94,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102,
-               },
-               {       /* Fourth byte table 3. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   36,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       108, 144, 144, 144, 144, 144, 144, 144,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151,
-               },
-               {       /* Fourth byte table 4. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   7,   14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,
-               },
-               {       /* Fourth byte table 5. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   7,
-                       14,  22,  30,  30,  30,  30,  30,  37,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,
-               },
-               {       /* Fourth byte table 6. */
-                       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,   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,   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,   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,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,
-               },
-               {       /* Fourth byte table 7. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   15,  15,  15,  15,  70,  70,
-                       70,  70,  112, 133, 154, 154, 154, 162,
-                       162, 162, 162, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175,
-               },
-               {       /* Fourth byte table 8. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   20,  20,  20,  27,  27,  46,  59,
-                       66,  91,  91,  98,  98,  98,  98,  105,
-                       105, 105, 105, 105, 130, 130, 130, 130,
-                       137, 137, 137, 137, 144, 144, 151, 151,
-                       151, 164, 164, 164, 171, 171, 190, 203,
-                       210, 235, 235, 242, 242, 242, 242, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249,
-               },
-               {       /* Fourth byte table 9. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   25,  25,  25,  25,
-                       32,  32,  32,  32,  39,  39,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  53,
-                       53,  53,  53,  53,  53,  53,  53,  53,
-                       53,  53,  53,  53,  53,  53,  53,  53,
-                       53,  53,  53,  53,  53,  53,  53,  53,
-                       53,  53,  53,  53,  53,  60,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,
-               },
-               {       /* Fourth byte table 10. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   7,   14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  21,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,
-               },
-               {       /* Fourth byte table 11. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,
-               },
-               {       /* Fourth byte table 12. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   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,   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,   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,   7,   7,   14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,
-               },
-               {       /* Fourth byte table 13. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   14,  14,  14,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 14. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   9,   9,   9,   9,   9,   9,   9,
-                       9,   18,  18,  18,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,
-               },
-               {       /* Fourth byte table 15. */
-                       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,   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,   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,   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,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,
-               },
-               {       /* Fourth byte table 16. */
-                       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,   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,   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,   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,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,
-               },
-               {       /* Fourth byte table 17. */
-                       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,   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,   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,   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,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,
-               },
-               {       /* Fourth byte table 18. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   17,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,
-               },
-               {       /* Fourth byte table 19. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,
-               },
-               {       /* Fourth byte table 20. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   0,   0,   0,   0,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,
-               },
-               {       /* Fourth byte table 21. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   25,
-                       25,  25,  25,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,
-               },
-               {       /* Fourth byte table 22. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   17,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,
-               },
-               {       /* Fourth byte table 23. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   25,  25,  25,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,
-               },
-               {       /* Fourth byte table 24. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,
-               },
-               {       /* Fourth byte table 25. */
-                       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,   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,   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,   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,   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,   8,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,
-               },
-               {       /* Fourth byte table 26. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   8,   16,  16,  16,  16,
-                       16,  16,  16,  24,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,
-               },
-               {       /* Fourth byte table 27. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   15,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  38,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,
-               },
-               {       /* Fourth byte table 28. */
-                       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,   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,   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,   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,   8,   16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,
-               },
-               {       /* Fourth byte table 29. */
-                       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,   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,   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,   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,   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,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,
-               },
-               {       /* Fourth byte table 30. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   16,
-                       16,  16,  16,  16,  16,  16,  16,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,
-               },
-               {       /* Fourth byte table 31. */
-                       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,   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,   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,   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,   8,   8,   16,  16,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,
-               },
-               {       /* Fourth byte table 32. */
-                       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,   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,   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,   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,   8,   8,   16,  16,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,
-               },
-               {       /* Fourth byte table 33. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   8,   8,   8,   8,
-                       8,   16,  16,  16,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  32,  32,  40,  40,
-                       40,  40,  40,  40,  40,  40,  40,  40,
-                       40,  40,  40,  40,  40,  40,  40,  40,
-                       40,  40,  40,  40,  40,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,
-               },
-               {       /* Fourth byte table 34. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   8,   8,   16,  16,
-                       16,  24,  24,  24,  24,  24,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  40,  40,  40,  48,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  64,  72,  72,  72,  80,
-                       88,  88,  88,  96,  104, 112, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120,
-               },
-               {       /* Fourth byte table 35. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   8,   16,  16,  16,  24,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  40,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  56,  56,  56,  56,  56,
-                       56,  64,  72,  72,  80,  80,  80,  80,
-                       80,  80,  80,  88,  96,  104, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112,
-               },
-               {       /* Fourth byte table 36. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   9,
-                       9,   9,   9,   9,   18,  18,  27,  27,
-                       36,  36,  45,  45,  54,  54,  63,  63,
-                       72,  72,  81,  81,  90,  90,  99,  99,
-                       108, 108, 117, 117, 117, 126, 126, 135,
-                       135, 144, 144, 144, 144, 144, 144, 144,
-                       161, 161, 161, 178, 178, 178, 195, 195,
-                       195, 212, 212, 212, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229,
-               },
-               {       /* Fourth byte table 37. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   18,
-                       18,  18,  18,  18,  27,  27,  36,  36,
-                       45,  45,  54,  54,  63,  63,  72,  72,
-                       81,  81,  90,  90,  99,  99,  108, 108,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117,
-               },
-               {       /* Fourth byte table 38. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   9,   9,   9,   18,  18,  27,
-                       27,  36,  36,  36,  36,  36,  36,  36,
-                       53,  53,  53,  70,  70,  70,  87,  87,
-                       87,  104, 104, 104, 121, 121, 121, 121,
-                       121, 121, 121, 121, 121, 121, 121, 121,
-                       121, 121, 121, 121, 121, 121, 121, 121,
-                       130, 139, 148, 157, 157, 157, 157, 157,
-                       157, 157, 157, 157, 157, 157, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166,
-               },
-               {       /* Fourth byte table 39. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 40. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-       },
-       {
-               {       /* Fourth byte table 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,   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,   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,   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,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 1. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   29,  58,  58,  58,  58,
-                       58,  58,  58,  58,  58,  58,  58,  58,
-                       58,  58,  58,  73,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,
-               },
-               {       /* Fourth byte table 2. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   15,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  38,  46,  46,  46,  46,
-                       46,  54,  62,  62,  62,  62,  62,  62,
-                       62,  70,  78,  86,  94,  94,  94,  94,
-                       94,  94,  94,  94,  94,  94,  94,  94,
-                       94,  94,  94,  94,  94,  94,  94,  94,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102, 102, 102, 102, 102, 102, 102, 102,
-                       102,
-               },
-               {       /* Fourth byte table 3. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   36,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       108, 144, 144, 144, 144, 144, 144, 144,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151, 151, 151, 151, 151, 151, 151, 151,
-                       151,
-               },
-               {       /* Fourth byte table 4. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   7,   14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,
-               },
-               {       /* Fourth byte table 5. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   7,
-                       14,  22,  30,  30,  30,  30,  30,  37,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,
-               },
-               {       /* Fourth byte table 6. */
-                       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,   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,   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,   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,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,
-               },
-               {       /* Fourth byte table 7. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   15,  15,  15,  15,  70,  70,
-                       70,  70,  112, 133, 154, 154, 154, 162,
-                       162, 162, 162, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175,
-               },
-               {       /* Fourth byte table 8. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   20,  20,  20,  27,  27,  46,  59,
-                       66,  91,  91,  98,  98,  98,  98,  105,
-                       105, 105, 105, 105, 130, 130, 130, 130,
-                       137, 137, 137, 137, 144, 144, 151, 151,
-                       151, 164, 164, 164, 171, 171, 190, 203,
-                       210, 235, 235, 242, 242, 242, 242, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249, 249, 249, 249, 249, 249, 249, 249,
-                       249,
-               },
-               {       /* Fourth byte table 9. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   25,  25,  25,  25,
-                       32,  32,  32,  32,  39,  39,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  53,
-                       53,  53,  53,  53,  53,  53,  53,  53,
-                       53,  53,  53,  53,  53,  53,  53,  53,
-                       53,  53,  53,  53,  53,  53,  53,  53,
-                       53,  53,  53,  53,  53,  60,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,
-               },
-               {       /* Fourth byte table 10. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   7,   14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  21,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,
-               },
-               {       /* Fourth byte table 11. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,
-               },
-               {       /* Fourth byte table 12. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   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,   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,   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,   7,   7,   14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,
-               },
-               {       /* Fourth byte table 13. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   14,  14,  14,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 14. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   9,   9,   9,   9,   9,   9,   9,
-                       9,   18,  18,  18,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,
-               },
-               {       /* Fourth byte table 15. */
-                       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,   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,   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,   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,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,
-               },
-               {       /* Fourth byte table 16. */
-                       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,   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,   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,   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,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,
-               },
-               {       /* Fourth byte table 17. */
-                       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,   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,   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,   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,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,
-               },
-               {       /* Fourth byte table 18. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   17,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,
-               },
-               {       /* Fourth byte table 19. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,
-               },
-               {       /* Fourth byte table 20. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   0,   0,   0,   0,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,
-               },
-               {       /* Fourth byte table 21. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   25,
-                       25,  25,  25,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,
-               },
-               {       /* Fourth byte table 22. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   17,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,
-               },
-               {       /* Fourth byte table 23. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   25,  25,  25,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  34,  34,
-                       34,
-               },
-               {       /* Fourth byte table 24. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,
-               },
-               {       /* Fourth byte table 25. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   9,   9,
-                       18,  18,  27,  27,  36,  36,  45,  45,
-                       45,  45,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  63,  63,  72,  72,  81,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,
-               },
-               {       /* Fourth byte table 26. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,
-               },
-               {       /* Fourth byte table 27. */
-                       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,   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,   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,   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,   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,   8,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,
-               },
-               {       /* Fourth byte table 28. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   8,   16,  16,  16,  16,
-                       16,  16,  16,  24,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,
-               },
-               {       /* Fourth byte table 29. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   15,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  38,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,
-               },
-               {       /* Fourth byte table 30. */
-                       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,   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,   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,   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,   8,   16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,
-               },
-               {       /* Fourth byte table 31. */
-                       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,   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,   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,   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,   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,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,
-               },
-               {       /* Fourth byte table 32. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   16,
-                       16,  16,  16,  16,  16,  16,  16,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,
-               },
-               {       /* Fourth byte table 33. */
-                       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,   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,   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,   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,   8,   8,   16,  16,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,
-               },
-               {       /* Fourth byte table 34. */
-                       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,   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,   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,   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,   8,   8,   16,  16,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,
-               },
-               {       /* Fourth byte table 35. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   8,   8,   8,   8,
-                       8,   16,  16,  16,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  32,  32,  40,  40,
-                       40,  40,  40,  40,  40,  40,  40,  40,
-                       40,  40,  40,  40,  40,  40,  40,  40,
-                       40,  40,  40,  40,  40,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,
-               },
-               {       /* Fourth byte table 36. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   8,   8,   16,  16,
-                       16,  24,  24,  24,  24,  24,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  40,  40,  40,  48,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  64,  72,  72,  72,  80,
-                       88,  88,  88,  96,  104, 112, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120, 120, 120, 120, 120, 120, 120, 120,
-                       120,
-               },
-               {       /* Fourth byte table 37. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   8,   16,  16,  16,  24,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  40,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  56,  56,  56,  56,  56,
-                       56,  64,  72,  72,  80,  80,  80,  80,
-                       80,  80,  80,  88,  96,  104, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112,
-               },
-               {       /* Fourth byte table 38. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   9,
-                       9,   9,   9,   9,   18,  18,  27,  27,
-                       36,  36,  45,  45,  54,  54,  63,  63,
-                       72,  72,  81,  81,  90,  90,  99,  99,
-                       108, 108, 117, 117, 117, 126, 126, 135,
-                       135, 144, 144, 144, 144, 144, 144, 144,
-                       161, 161, 161, 178, 178, 178, 195, 195,
-                       195, 212, 212, 212, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229, 229, 229, 229, 229, 229, 229, 229,
-                       229,
-               },
-               {       /* Fourth byte table 39. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   18,
-                       18,  18,  18,  18,  27,  27,  36,  36,
-                       45,  45,  54,  54,  63,  63,  72,  72,
-                       81,  81,  90,  90,  99,  99,  108, 108,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117, 117, 117, 117, 117, 117, 117, 117,
-                       117,
-               },
-               {       /* Fourth byte table 40. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   9,   9,   9,   18,  18,  27,
-                       27,  36,  36,  36,  36,  36,  36,  36,
-                       53,  53,  53,  70,  70,  70,  87,  87,
-                       87,  104, 104, 104, 121, 121, 121, 121,
-                       121, 121, 121, 121, 121, 121, 121, 121,
-                       121, 121, 121, 121, 121, 121, 121, 121,
-                       130, 139, 148, 157, 157, 157, 157, 157,
-                       157, 157, 157, 157, 157, 157, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166, 166, 166, 166, 166, 166, 166, 166,
-                       166,
-               },
-       },
-};
-
-static const uint16_t u8_composition_b4_16bit_tbl[2][5][257] = {
-       {
-               {       /* Fourth byte 16-bit table 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,    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,    8,    16,   24,
-                       24,   24,   124,  146,  177,  219,  327,  335,
-                       379,  427,  521,  528,  562,  602,  624,  683,
-                       782,  797,  797,  849,  894,  941,  1061, 1076,
-                       1118, 1133, 1193, 1233, 1233, 1233, 1233, 1233,
-                       1233, 1233, 1333, 1355, 1386, 1428, 1536, 1544,
-                       1588, 1643, 1731, 1744, 1778, 1818, 1840, 1899,
-                       1998, 2013, 2013, 2065, 2110, 2164, 2284, 2299,
-                       2348, 2363, 2430, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470,
-               },
-               {       /* Fourth byte 16-bit table 1. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    29,   29,   36,   43,   56,
-                       64,   64,   64,   93,   93,   93,   93,   93,
-                       101,  101,  101,  101,  101,  130,  151,  158,
-                       158,  165,  165,  165,  165,  190,  190,  190,
-                       190,  190,  190,  219,  219,  226,  233,  246,
-                       254,  254,  254,  283,  283,  283,  283,  283,
-                       291,  291,  291,  291,  291,  320,  341,  348,
-                       348,  355,  355,  355,  355,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,
-               },
-               {       /* Fourth byte 16-bit table 2. */
-                       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,    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,    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,    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,    49,   49,   49,   49,   77,   77,
-                       112,  112,  160,  160,  160,  160,  160,  160,
-                       188,  188,  196,  196,  196,  196,  237,  237,
-                       237,  237,  272,  272,  272,  280,  280,  288,
-                       288,  288,  344,  344,  344,  344,  372,  372,
-                       414,  414,  469,  469,  469,  469,  469,  469,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,
-               },
-               {       /* Fourth byte 16-bit table 3. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    29,   58,   66,   74,   82,   90,   98,
-                       106,  135,  164,  172,  180,  188,  196,  204,
-                       212,  227,  242,  242,  242,  242,  242,  242,
-                       242,  257,  272,  272,  272,  272,  272,  272,
-                       272,  301,  330,  338,  346,  354,  362,  370,
-                       378,  407,  436,  444,  452,  460,  468,  476,
-                       484,  506,  528,  528,  528,  528,  528,  528,
-                       528,  550,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,
-               },
-               {       /* Fourth byte 16-bit table 4. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    15,   30,   30,   30,   30,   30,   30,
-                       30,   45,   60,   60,   60,   60,   60,   60,
-                       60,   82,   104,  104,  104,  104,  104,  104,
-                       104,  104,  126,  126,  126,  126,  126,  126,
-                       126,  155,  184,  192,  200,  208,  216,  224,
-                       232,  261,  290,  298,  306,  314,  322,  330,
-                       338,  346,  346,  346,  346,  354,  354,  354,
-                       354,  354,  354,  354,  354,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,
-               },
-       },
-       {
-               {       /* Fourth byte 16-bit table 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,    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,    8,    16,   24,
-                       24,   24,   124,  146,  177,  219,  327,  335,
-                       379,  427,  521,  528,  562,  602,  624,  683,
-                       782,  797,  797,  849,  894,  941,  1061, 1076,
-                       1118, 1133, 1193, 1233, 1233, 1233, 1233, 1233,
-                       1233, 1233, 1333, 1355, 1386, 1428, 1536, 1544,
-                       1588, 1643, 1731, 1744, 1778, 1818, 1840, 1899,
-                       1998, 2013, 2013, 2065, 2110, 2164, 2284, 2299,
-                       2348, 2363, 2430, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
-                       2470,
-               },
-               {       /* Fourth byte 16-bit table 1. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    29,   29,   36,   43,   56,
-                       64,   64,   64,   93,   93,   93,   93,   93,
-                       101,  101,  101,  101,  101,  130,  151,  158,
-                       158,  165,  165,  165,  165,  190,  190,  190,
-                       190,  190,  190,  219,  219,  226,  233,  246,
-                       254,  254,  254,  283,  283,  283,  283,  283,
-                       291,  291,  291,  291,  291,  320,  341,  348,
-                       348,  355,  355,  355,  355,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,  380,  380,  380,  380,  380,  380,  380,
-                       380,
-               },
-               {       /* Fourth byte 16-bit table 2. */
-                       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,    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,    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,    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,    49,   49,   49,   49,   77,   77,
-                       112,  112,  160,  160,  160,  160,  160,  160,
-                       188,  188,  196,  196,  196,  196,  237,  237,
-                       237,  237,  272,  272,  272,  280,  280,  288,
-                       288,  288,  344,  344,  344,  344,  372,  372,
-                       414,  414,  469,  469,  469,  469,  469,  469,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,  497,  497,  497,  497,  497,  497,  497,
-                       497,
-               },
-               {       /* Fourth byte 16-bit table 3. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    29,   58,   66,   74,   82,   90,   98,
-                       106,  135,  164,  172,  180,  188,  196,  204,
-                       212,  227,  242,  242,  242,  242,  242,  242,
-                       242,  257,  272,  272,  272,  272,  272,  272,
-                       272,  301,  330,  338,  346,  354,  362,  370,
-                       378,  407,  436,  444,  452,  460,  468,  476,
-                       484,  506,  528,  528,  528,  528,  528,  528,
-                       528,  550,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,  572,  572,  572,  572,  572,  572,  572,
-                       572,
-               },
-               {       /* Fourth byte 16-bit table 4. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    15,   30,   30,   30,   30,   30,   30,
-                       30,   45,   60,   60,   60,   60,   60,   60,
-                       60,   82,   104,  104,  104,  104,  104,  104,
-                       104,  104,  126,  126,  126,  126,  126,  126,
-                       126,  155,  184,  192,  200,  208,  216,  224,
-                       232,  261,  290,  298,  306,  314,  322,  330,
-                       338,  346,  346,  346,  346,  354,  354,  354,
-                       354,  354,  354,  354,  354,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,  362,  362,  362,  362,  362,  362,  362,
-                       362,
-               },
-       },
-};
-
-static const uchar_t u8_composition_final_tbl[2][6623] = {
-       {
-               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAE, FIL_,
-               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xA0, FIL_,
-               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAF, FIL_,
-               0x10, 0xCC, 0x86, FIL_, 0xC4, 0x82, FIL_, 0xCC,
-               0x87, FIL_, 0xC8, 0xA6, FIL_, 0xCC, 0x8F, FIL_,
-               0xC8, 0x80, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x82,
-               FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x81, FIL_, 0xCC,
-               0x80, FIL_, 0xC3, 0x80, FIL_, 0xCC, 0x83, FIL_,
-               0xC3, 0x83, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA,
-               0xA0, FIL_, 0xCC, 0xA5, FIL_, 0xE1, 0xB8, 0x80,
-               FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x82, FIL_, 0xCC,
-               0x84, FIL_, 0xC4, 0x80, FIL_, 0xCC, 0x88, FIL_,
-               0xC3, 0x84, FIL_, 0xCC, 0x8A, FIL_, 0xC3, 0x85,
-               FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x84, FIL_, 0xCC,
-               0x89, FIL_, 0xE1, 0xBA, 0xA2, FIL_, 0xCC, 0x8C,
-               FIL_, 0xC7, 0x8D, FIL_, 0x03, 0xCC, 0x87, FIL_,
-               0xE1, 0xB8, 0x82, FIL_, 0xCC, 0xB1, FIL_, 0xE1,
-               0xB8, 0x86, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
-               0x84, FIL_, 0x05, 0xCC, 0xA7, FIL_, 0xC3, 0x87,
-               FIL_, 0xCC, 0x81, FIL_, 0xC4, 0x86, FIL_, 0xCC,
-               0x8C, FIL_, 0xC4, 0x8C, FIL_, 0xCC, 0x87, FIL_,
-               0xC4, 0x8A, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0x88,
-               FIL_, 0x06, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0x8E,
-               FIL_, 0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0x90, FIL_,
-               0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x92, FIL_, 0xCC,
-               0x87, FIL_, 0xE1, 0xB8, 0x8A, FIL_, 0xCC, 0x8C,
-               FIL_, 0xC4, 0x8E, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xB8, 0x8C, FIL_, 0x11, 0xCC, 0x80, FIL_, 0xC3,
-               0x88, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x89, FIL_,
-               0xCC, 0x82, FIL_, 0xC3, 0x8A, FIL_, 0xCC, 0x88,
-               FIL_, 0xC3, 0x8B, FIL_, 0xCC, 0xA7, FIL_, 0xC8,
-               0xA8, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x86, FIL_,
-               0xCC, 0x8F, FIL_, 0xC8, 0x84, FIL_, 0xCC, 0x89,
-               FIL_, 0xE1, 0xBA, 0xBA, FIL_, 0xCC, 0xB0, FIL_,
-               0xE1, 0xB8, 0x9A, FIL_, 0xCC, 0xAD, FIL_, 0xE1,
-               0xB8, 0x98, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBA,
-               0xBC, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0xB8,
-               FIL_, 0xCC, 0x84, FIL_, 0xC4, 0x92, FIL_, 0xCC,
-               0x86, FIL_, 0xC4, 0x94, FIL_, 0xCC, 0x87, FIL_,
-               0xC4, 0x96, FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x98,
-               FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x9A, FIL_, 0x01,
-               0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9E, FIL_, 0x07,
-               0xCC, 0x8C, FIL_, 0xC7, 0xA6, FIL_, 0xCC, 0x87,
-               FIL_, 0xC4, 0xA0, FIL_, 0xCC, 0x84, FIL_, 0xE1,
-               0xB8, 0xA0, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0x9C,
-               FIL_, 0xCC, 0x81, FIL_, 0xC7, 0xB4, FIL_, 0xCC,
-               0xA7, FIL_, 0xC4, 0xA2, FIL_, 0xCC, 0x86, FIL_,
-               0xC4, 0x9E, FIL_, 0x07, 0xCC, 0xAE, FIL_, 0xE1,
-               0xB8, 0xAA, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB8,
-               0xA2, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA6,
-               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0xA4, FIL_,
-               0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0xA8, FIL_, 0xCC,
-               0x8C, FIL_, 0xC8, 0x9E, FIL_, 0xCC, 0x82, FIL_,
-               0xC4, 0xA4, FIL_, 0x0F, 0xCC, 0x84, FIL_, 0xC4,
-               0xAA, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x8C, FIL_,
-               0xCC, 0xA8, FIL_, 0xC4, 0xAE, FIL_, 0xCC, 0x83,
-               FIL_, 0xC4, 0xA8, FIL_, 0xCC, 0x88, FIL_, 0xC3,
-               0x8F, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x8D, FIL_,
-               0xCC, 0x8F, FIL_, 0xC8, 0x88, FIL_, 0xCC, 0x86,
-               FIL_, 0xC4, 0xAC, FIL_, 0xCC, 0x91, FIL_, 0xC8,
-               0x8A, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x8F, FIL_,
-               0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x88, FIL_, 0xCC,
-               0x87, FIL_, 0xC4, 0xB0, FIL_, 0xCC, 0xA3, FIL_,
-               0xE1, 0xBB, 0x8A, FIL_, 0xCC, 0xB0, FIL_, 0xE1,
-               0xB8, 0xAC, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x8E,
-               FIL_, 0x01, 0xCC, 0x82, FIL_, 0xC4, 0xB4, FIL_,
-               0x05, 0xCC, 0x8C, FIL_, 0xC7, 0xA8, FIL_, 0xCC,
-               0xB1, FIL_, 0xE1, 0xB8, 0xB4, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xB8, 0xB0, FIL_, 0xCC, 0xA7, FIL_,
-               0xC4, 0xB6, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
-               0xB2, FIL_, 0x06, 0xCC, 0xA7, FIL_, 0xC4, 0xBB,
-               FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0xBD, FIL_, 0xCC,
-               0xB1, FIL_, 0xE1, 0xB8, 0xBA, FIL_, 0xCC, 0xA3,
-               FIL_, 0xE1, 0xB8, 0xB6, FIL_, 0xCC, 0xAD, FIL_,
-               0xE1, 0xB8, 0xBC, FIL_, 0xCC, 0x81, FIL_, 0xC4,
-               0xB9, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xB8,
-               0xBE, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x82,
-               FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x80, FIL_,
-               0x09, 0xCC, 0x80, FIL_, 0xC7, 0xB8, FIL_, 0xCC,
-               0xAD, FIL_, 0xE1, 0xB9, 0x8A, FIL_, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0x84, FIL_, 0xCC, 0xB1, FIL_,
-               0xE1, 0xB9, 0x88, FIL_, 0xCC, 0x83, FIL_, 0xC3,
-               0x91, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x86,
-               FIL_, 0xCC, 0x81, FIL_, 0xC5, 0x83, FIL_, 0xCC,
-               0xA7, FIL_, 0xC5, 0x85, FIL_, 0xCC, 0x8C, FIL_,
-               0xC5, 0x87, FIL_, 0x10, 0xCC, 0xA8, FIL_, 0xC7,
-               0xAA, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x8E, FIL_,
-               0xCC, 0x80, FIL_, 0xC3, 0x92, FIL_, 0xCC, 0x9B,
-               FIL_, 0xC6, 0xA0, FIL_, 0xCC, 0x8F, FIL_, 0xC8,
-               0x8C, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x93, FIL_,
-               0xCC, 0x87, FIL_, 0xC8, 0xAE, FIL_, 0xCC, 0x8C,
-               FIL_, 0xC7, 0x91, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xBB, 0x8C, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x94,
-               FIL_, 0xCC, 0x84, FIL_, 0xC5, 0x8C, FIL_, 0xCC,
-               0x83, FIL_, 0xC3, 0x95, FIL_, 0xCC, 0x86, FIL_,
-               0xC5, 0x8E, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x96,
-               FIL_, 0xCC, 0x8B, FIL_, 0xC5, 0x90, FIL_, 0xCC,
-               0x89, FIL_, 0xE1, 0xBB, 0x8E, FIL_, 0x02, 0xCC,
-               0x87, FIL_, 0xE1, 0xB9, 0x96, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xB9, 0x94, FIL_, 0x08, 0xCC, 0x91,
-               FIL_, 0xC8, 0x92, FIL_, 0xCC, 0xA7, FIL_, 0xC5,
-               0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0x98, FIL_,
-               0xCC, 0xB1, FIL_, 0xE1, 0xB9, 0x9E, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xB9, 0x9A, FIL_, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0x98, FIL_, 0xCC, 0x81, FIL_,
-               0xC5, 0x94, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x90,
-               FIL_, 0x07, 0xCC, 0x81, FIL_, 0xC5, 0x9A, FIL_,
-               0xCC, 0x82, FIL_, 0xC5, 0x9C, FIL_, 0xCC, 0xA7,
-               FIL_, 0xC5, 0x9E, FIL_, 0xCC, 0x8C, FIL_, 0xC5,
-               0xA0, FIL_, 0xCC, 0xA6, FIL_, 0xC8, 0x98, FIL_,
-               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA0, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xB9, 0xA2, FIL_, 0x07, 0xCC,
-               0x8C, FIL_, 0xC5, 0xA4, FIL_, 0xCC, 0xB1, FIL_,
-               0xE1, 0xB9, 0xAE, FIL_, 0xCC, 0xA6, FIL_, 0xC8,
-               0x9A, FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0xA2, FIL_,
-               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xAA, FIL_, 0xCC,
-               0xAD, FIL_, 0xE1, 0xB9, 0xB0, FIL_, 0xCC, 0xA3,
-               FIL_, 0xE1, 0xB9, 0xAC, FIL_, 0x13, 0xCC, 0xA8,
-               FIL_, 0xC5, 0xB2, FIL_, 0xCC, 0x83, FIL_, 0xC5,
-               0xA8, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0xAA, FIL_,
-               0xCC, 0x81, FIL_, 0xC3, 0x9A, FIL_, 0xCC, 0x86,
-               FIL_, 0xC5, 0xAC, FIL_, 0xCC, 0x8A, FIL_, 0xC5,
-               0xAE, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x99, FIL_,
-               0xCC, 0x91, FIL_, 0xC8, 0x96, FIL_, 0xCC, 0x8B,
-               FIL_, 0xC5, 0xB0, FIL_, 0xCC, 0xA4, FIL_, 0xE1,
-               0xB9, 0xB2, FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB9,
-               0xB4, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x94, FIL_,
-               0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB6, FIL_, 0xCC,
-               0x9B, FIL_, 0xC6, 0xAF, FIL_, 0xCC, 0x82, FIL_,
-               0xC3, 0x9B, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x9C,
-               FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x93, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xBB, 0xA4, FIL_, 0xCC, 0x89,
-               FIL_, 0xE1, 0xBB, 0xA6, FIL_, 0x02, 0xCC, 0x83,
-               FIL_, 0xE1, 0xB9, 0xBC, FIL_, 0xCC, 0xA3, FIL_,
-               0xE1, 0xB9, 0xBE, FIL_, 0x06, 0xCC, 0x82, FIL_,
-               0xC5, 0xB4, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xBA,
-               0x84, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xBA, 0x86,
-               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x88, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xBA, 0x82, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBA, 0x80, FIL_, 0x02, 0xCC,
-               0x87, FIL_, 0xE1, 0xBA, 0x8A, FIL_, 0xCC, 0x88,
-               FIL_, 0xE1, 0xBA, 0x8C, FIL_, 0x09, 0xCC, 0x89,
-               FIL_, 0xE1, 0xBB, 0xB6, FIL_, 0xCC, 0x87, FIL_,
-               0xE1, 0xBA, 0x8E, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xBB, 0xB4, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x9D,
-               FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xB2, FIL_, 0xCC,
-               0x82, FIL_, 0xC5, 0xB6, FIL_, 0xCC, 0x88, FIL_,
-               0xC5, 0xB8, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB,
-               0xB2, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xB8,
-               FIL_, 0x06, 0xCC, 0x87, FIL_, 0xC5, 0xBB, FIL_,
-               0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x92, FIL_, 0xCC,
-               0x8C, FIL_, 0xC5, 0xBD, FIL_, 0xCC, 0xB1, FIL_,
-               0xE1, 0xBA, 0x94, FIL_, 0xCC, 0x82, FIL_, 0xE1,
-               0xBA, 0x90, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0xB9,
-               FIL_, 0x10, 0xCC, 0x8C, FIL_, 0xC7, 0x8E, FIL_,
-               0xCC, 0x8F, FIL_, 0xC8, 0x81, FIL_, 0xCC, 0xA8,
-               FIL_, 0xC4, 0x85, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xBA, 0xA1, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x83,
-               FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA3, FIL_,
-               0xCC, 0x84, FIL_, 0xC4, 0x81, FIL_, 0xCC, 0x91,
-               FIL_, 0xC8, 0x83, FIL_, 0xCC, 0x8A, FIL_, 0xC3,
-               0xA5, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0xA4, FIL_,
-               0xCC, 0x83, FIL_, 0xC3, 0xA3, FIL_, 0xCC, 0x82,
-               FIL_, 0xC3, 0xA2, FIL_, 0xCC, 0x81, FIL_, 0xC3,
-               0xA1, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xA0, FIL_,
-               0xCC, 0x87, FIL_, 0xC8, 0xA7, FIL_, 0xCC, 0xA5,
-               FIL_, 0xE1, 0xB8, 0x81, FIL_, 0x03, 0xCC, 0xB1,
-               FIL_, 0xE1, 0xB8, 0x87, FIL_, 0xCC, 0xA3, FIL_,
-               0xE1, 0xB8, 0x85, FIL_, 0xCC, 0x87, FIL_, 0xE1,
-               0xB8, 0x83, FIL_, 0x05, 0xCC, 0x87, FIL_, 0xC4,
-               0x8B, FIL_, 0xCC, 0xA7, FIL_, 0xC3, 0xA7, FIL_,
-               0xCC, 0x82, FIL_, 0xC4, 0x89, FIL_, 0xCC, 0x8C,
-               FIL_, 0xC4, 0x8D, FIL_, 0xCC, 0x81, FIL_, 0xC4,
-               0x87, FIL_, 0x06, 0xCC, 0xAD, FIL_, 0xE1, 0xB8,
-               0x93, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x8B,
-               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0x8D, FIL_,
-               0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0x8F, FIL_, 0xCC,
-               0xA7, FIL_, 0xE1, 0xB8, 0x91, FIL_, 0xCC, 0x8C,
-               FIL_, 0xC4, 0x8F, FIL_, 0x11, 0xCC, 0xA8, FIL_,
-               0xC4, 0x99, FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x9B,
-               FIL_, 0xCC, 0x87, FIL_, 0xC4, 0x97, FIL_, 0xCC,
-               0x88, FIL_, 0xC3, 0xAB, FIL_, 0xCC, 0xA3, FIL_,
-               0xE1, 0xBA, 0xB9, FIL_, 0xCC, 0xB0, FIL_, 0xE1,
-               0xB8, 0x9B, FIL_, 0xCC, 0x84, FIL_, 0xC4, 0x93,
-               FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x99, FIL_,
-               0xCC, 0x83, FIL_, 0xE1, 0xBA, 0xBD, FIL_, 0xCC,
-               0x86, FIL_, 0xC4, 0x95, FIL_, 0xCC, 0xA7, FIL_,
-               0xC8, 0xA9, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA,
-               0xBB, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x85, FIL_,
-               0xCC, 0x81, FIL_, 0xC3, 0xA9, FIL_, 0xCC, 0x91,
-               FIL_, 0xC8, 0x87, FIL_, 0xCC, 0x80, FIL_, 0xC3,
-               0xA8, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xAA, FIL_,
-               0x01, 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9F, FIL_,
-               0x07, 0xCC, 0x86, FIL_, 0xC4, 0x9F, FIL_, 0xCC,
-               0xA7, FIL_, 0xC4, 0xA3, FIL_, 0xCC, 0x81, FIL_,
-               0xC7, 0xB5, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0x9D,
-               FIL_, 0xCC, 0x87, FIL_, 0xC4, 0xA1, FIL_, 0xCC,
-               0x8C, FIL_, 0xC7, 0xA7, FIL_, 0xCC, 0x84, FIL_,
-               0xE1, 0xB8, 0xA1, FIL_, 0x08, 0xCC, 0x8C, FIL_,
-               0xC8, 0x9F, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0xA5,
-               FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA7, FIL_,
-               0xCC, 0x87, FIL_, 0xE1, 0xB8, 0xA3, FIL_, 0xCC,
-               0xB1, FIL_, 0xE1, 0xBA, 0x96, FIL_, 0xCC, 0xA3,
-               FIL_, 0xE1, 0xB8, 0xA5, FIL_, 0xCC, 0xA7, FIL_,
-               0xE1, 0xB8, 0xA9, FIL_, 0xCC, 0xAE, FIL_, 0xE1,
-               0xB8, 0xAB, FIL_, 0x0E, 0xCC, 0x81, FIL_, 0xC3,
-               0xAD, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xAC, FIL_,
-               0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0x8B, FIL_, 0xCC,
-               0x8C, FIL_, 0xC7, 0x90, FIL_, 0xCC, 0x89, FIL_,
-               0xE1, 0xBB, 0x89, FIL_, 0xCC, 0x91, FIL_, 0xC8,
-               0x8B, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x89, FIL_,
-               0xCC, 0x82, FIL_, 0xC3, 0xAE, FIL_, 0xCC, 0xB0,
-               FIL_, 0xE1, 0xB8, 0xAD, FIL_, 0xCC, 0xA8, FIL_,
-               0xC4, 0xAF, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0xAD,
-               FIL_, 0xCC, 0x84, FIL_, 0xC4, 0xAB, FIL_, 0xCC,
-               0x83, FIL_, 0xC4, 0xA9, FIL_, 0xCC, 0x88, FIL_,
-               0xC3, 0xAF, FIL_, 0x02, 0xCC, 0x82, FIL_, 0xC4,
-               0xB5, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0xB0, FIL_,
-               0x05, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0xB3, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xB1, FIL_, 0xCC,
-               0xA7, FIL_, 0xC4, 0xB7, FIL_, 0xCC, 0x8C, FIL_,
-               0xC7, 0xA9, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB8,
-               0xB5, FIL_, 0x06, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
-               0xB7, FIL_, 0xCC, 0x81, FIL_, 0xC4, 0xBA, FIL_,
-               0xCC, 0xA7, FIL_, 0xC4, 0xBC, FIL_, 0xCC, 0x8C,
-               FIL_, 0xC4, 0xBE, FIL_, 0xCC, 0xB1, FIL_, 0xE1,
-               0xB8, 0xBB, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8,
-               0xBD, FIL_, 0x03, 0xCC, 0xA3, FIL_, 0xE1, 0xB9,
-               0x83, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xBF,
-               FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x81, FIL_,
-               0x09, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x87, FIL_,
-               0xCC, 0x83, FIL_, 0xC3, 0xB1, FIL_, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0x85, FIL_, 0xCC, 0xB1, FIL_,
-               0xE1, 0xB9, 0x89, FIL_, 0xCC, 0x81, FIL_, 0xC5,
-               0x84, FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x86, FIL_,
-               0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0x8B, FIL_, 0xCC,
-               0x8C, FIL_, 0xC5, 0x88, FIL_, 0xCC, 0x80, FIL_,
-               0xC7, 0xB9, FIL_, 0x10, 0xCC, 0x89, FIL_, 0xE1,
-               0xBB, 0x8F, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0xB3,
-               FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xB2, FIL_, 0xCC,
-               0x87, FIL_, 0xC8, 0xAF, FIL_, 0xCC, 0x8F, FIL_,
-               0xC8, 0x8D, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB,
-               0x8D, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0x8D, FIL_,
-               0xCC, 0x8C, FIL_, 0xC7, 0x92, FIL_, 0xCC, 0x86,
-               FIL_, 0xC5, 0x8F, FIL_, 0xCC, 0x8B, FIL_, 0xC5,
-               0x91, FIL_, 0xCC, 0x9B, FIL_, 0xC6, 0xA1, FIL_,
-               0xCC, 0x91, FIL_, 0xC8, 0x8F, FIL_, 0xCC, 0xA8,
-               FIL_, 0xC7, 0xAB, FIL_, 0xCC, 0x88, FIL_, 0xC3,
-               0xB6, FIL_, 0xCC, 0x83, FIL_, 0xC3, 0xB5, FIL_,
-               0xCC, 0x82, FIL_, 0xC3, 0xB4, FIL_, 0x02, 0xCC,
-               0x87, FIL_, 0xE1, 0xB9, 0x97, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xB9, 0x95, FIL_, 0x08, 0xCC, 0xB1,
-               FIL_, 0xE1, 0xB9, 0x9F, FIL_, 0xCC, 0x87, FIL_,
-               0xE1, 0xB9, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC5,
-               0x95, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x91, FIL_,
-               0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x9B, FIL_, 0xCC,
-               0x8C, FIL_, 0xC5, 0x99, FIL_, 0xCC, 0x91, FIL_,
-               0xC8, 0x93, FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x97,
-               FIL_, 0x07, 0xCC, 0xA6, FIL_, 0xC8, 0x99, FIL_,
-               0xCC, 0x8C, FIL_, 0xC5, 0xA1, FIL_, 0xCC, 0x81,
-               FIL_, 0xC5, 0x9B, FIL_, 0xCC, 0x87, FIL_, 0xE1,
-               0xB9, 0xA1, FIL_, 0xCC, 0x82, FIL_, 0xC5, 0x9D,
-               FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x9F, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xB9, 0xA3, FIL_, 0x08, 0xCC,
-               0x88, FIL_, 0xE1, 0xBA, 0x97, FIL_, 0xCC, 0xAD,
-               FIL_, 0xE1, 0xB9, 0xB1, FIL_, 0xCC, 0xB1, FIL_,
-               0xE1, 0xB9, 0xAF, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xB9, 0xAD, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0xA5,
-               FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0xA3, FIL_, 0xCC,
-               0x87, FIL_, 0xE1, 0xB9, 0xAB, FIL_, 0xCC, 0xA6,
-               FIL_, 0xC8, 0x9B, FIL_, 0x13, 0xCC, 0x81, FIL_,
-               0xC3, 0xBA, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x97,
-               FIL_, 0xCC, 0x83, FIL_, 0xC5, 0xA9, FIL_, 0xCC,
-               0x8F, FIL_, 0xC8, 0x95, FIL_, 0xCC, 0xA8, FIL_,
-               0xC5, 0xB3, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xBB,
-               FIL_, 0xCC, 0x88, FIL_, 0xC3, 0xBC, FIL_, 0xCC,
-               0x80, FIL_, 0xC3, 0xB9, FIL_, 0xCC, 0xA3, FIL_,
-               0xE1, 0xBB, 0xA5, FIL_, 0xCC, 0xA4, FIL_, 0xE1,
-               0xB9, 0xB3, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB,
-               0xA7, FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB9, 0xB5,
-               FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB7, FIL_,
-               0xCC, 0x9B, FIL_, 0xC6, 0xB0, FIL_, 0xCC, 0x84,
-               FIL_, 0xC5, 0xAB, FIL_, 0xCC, 0x8B, FIL_, 0xC5,
-               0xB1, FIL_, 0xCC, 0x86, FIL_, 0xC5, 0xAD, FIL_,
-               0xCC, 0x8C, FIL_, 0xC7, 0x94, FIL_, 0xCC, 0x8A,
-               FIL_, 0xC5, 0xAF, FIL_, 0x02, 0xCC, 0x83, FIL_,
-               0xE1, 0xB9, 0xBD, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xB9, 0xBF, FIL_, 0x07, 0xCC, 0x82, FIL_, 0xC5,
-               0xB5, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0x81,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0x83, FIL_,
-               0xCC, 0x88, FIL_, 0xE1, 0xBA, 0x85, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xBA, 0x89, FIL_, 0xCC, 0x87,
-               FIL_, 0xE1, 0xBA, 0x87, FIL_, 0xCC, 0x8A, FIL_,
-               0xE1, 0xBA, 0x98, FIL_, 0x02, 0xCC, 0x87, FIL_,
-               0xE1, 0xBA, 0x8B, FIL_, 0xCC, 0x88, FIL_, 0xE1,
-               0xBA, 0x8D, FIL_, 0x0A, 0xCC, 0x87, FIL_, 0xE1,
-               0xBA, 0x8F, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB,
-               0xB9, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xB3,
-               FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0xB7, FIL_,
-               0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xB5, FIL_, 0xCC,
-               0x82, FIL_, 0xC5, 0xB7, FIL_, 0xCC, 0x84, FIL_,
-               0xC8, 0xB3, FIL_, 0xCC, 0x8A, FIL_, 0xE1, 0xBA,
-               0x99, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0xBF, FIL_,
-               0xCC, 0x81, FIL_, 0xC3, 0xBD, FIL_, 0x06, 0xCC,
-               0x8C, FIL_, 0xC5, 0xBE, FIL_, 0xCC, 0x87, FIL_,
-               0xC5, 0xBC, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xBA,
-               0x95, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x93,
-               FIL_, 0xCC, 0x81, FIL_, 0xC5, 0xBA, FIL_, 0xCC,
-               0x82, FIL_, 0xE1, 0xBA, 0x91, FIL_, 0x03, 0xCC,
-               0x80, FIL_, 0xE1, 0xBF, 0xAD, FIL_, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBF, 0x81, FIL_, 0xCC, 0x81, FIL_,
-               0xCE, 0x85, FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1,
-               0xBA, 0xA8, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBA,
-               0xAA, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xA4,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xA6, FIL_,
-               0x01, 0xCC, 0x84, FIL_, 0xC7, 0x9E, FIL_, 0x01,
-               0xCC, 0x81, FIL_, 0xC7, 0xBA, FIL_, 0x02, 0xCC,
-               0x84, FIL_, 0xC7, 0xA2, FIL_, 0xCC, 0x81, FIL_,
-               0xC7, 0xBC, FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1,
-               0xB8, 0x88, FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1,
-               0xBA, 0xBE, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB,
-               0x80, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0x84,
-               FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x82, FIL_,
-               0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xAE, FIL_,
-               0x04, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0x96, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x90, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBB, 0x92, FIL_, 0xCC, 0x89,
-               FIL_, 0xE1, 0xBB, 0x94, FIL_, 0x03, 0xCC, 0x84,
-               FIL_, 0xC8, 0xAC, FIL_, 0xCC, 0x81, FIL_, 0xE1,
-               0xB9, 0x8C, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB9,
-               0x8E, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAA,
-               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xC7, 0xBE, FIL_,
-               0x04, 0xCC, 0x80, FIL_, 0xC7, 0x9B, FIL_, 0xCC,
-               0x84, FIL_, 0xC7, 0x95, FIL_, 0xCC, 0x8C, FIL_,
-               0xC7, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC7, 0x97,
-               FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA9,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xA7, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xA5, FIL_, 0xCC,
-               0x83, FIL_, 0xE1, 0xBA, 0xAB, FIL_, 0x01, 0xCC,
-               0x84, FIL_, 0xC7, 0x9F, FIL_, 0x01, 0xCC, 0x81,
-               FIL_, 0xC7, 0xBB, FIL_, 0x02, 0xCC, 0x84, FIL_,
-               0xC7, 0xA3, FIL_, 0xCC, 0x81, FIL_, 0xC7, 0xBD,
-               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x89,
-               FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x83,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xBF, FIL_,
-               0xCC, 0x80, FIL_, 0xE1, 0xBB, 0x81, FIL_, 0xCC,
-               0x83, FIL_, 0xE1, 0xBB, 0x85, FIL_, 0x01, 0xCC,
-               0x81, FIL_, 0xE1, 0xB8, 0xAF, FIL_, 0x04, 0xCC,
-               0x83, FIL_, 0xE1, 0xBB, 0x97, FIL_, 0xCC, 0x89,
-               FIL_, 0xE1, 0xBB, 0x95, FIL_, 0xCC, 0x80, FIL_,
-               0xE1, 0xBB, 0x93, FIL_, 0xCC, 0x81, FIL_, 0xE1,
-               0xBB, 0x91, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1,
-               0xB9, 0x8D, FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xAD,
-               FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB9, 0x8F, FIL_,
-               0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAB, FIL_, 0x01,
-               0xCC, 0x81, FIL_, 0xC7, 0xBF, FIL_, 0x04, 0xCC,
-               0x81, FIL_, 0xC7, 0x98, FIL_, 0xCC, 0x84, FIL_,
-               0xC7, 0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x9A,
-               FIL_, 0xCC, 0x80, FIL_, 0xC7, 0x9C, FIL_, 0x04,
-               0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xB0, FIL_, 0xCC,
-               0x81, FIL_, 0xE1, 0xBA, 0xAE, FIL_, 0xCC, 0x83,
-               FIL_, 0xE1, 0xBA, 0xB4, FIL_, 0xCC, 0x89, FIL_,
-               0xE1, 0xBA, 0xB2, FIL_, 0x04, 0xCC, 0x80, FIL_,
-               0xE1, 0xBA, 0xB1, FIL_, 0xCC, 0x83, FIL_, 0xE1,
-               0xBA, 0xB5, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA,
-               0xAF, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xB3,
-               FIL_, 0x02, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x96,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x94, FIL_,
-               0x02, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x95, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x97, FIL_, 0x02,
-               0xCC, 0x80, FIL_, 0xE1, 0xB9, 0x90, FIL_, 0xCC,
-               0x81, FIL_, 0xE1, 0xB9, 0x92, FIL_, 0x02, 0xCC,
-               0x80, FIL_, 0xE1, 0xB9, 0x91, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xB9, 0x93, FIL_, 0x01, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0xA4, FIL_, 0x01, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0xA5, FIL_, 0x01, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0xA6, FIL_, 0x01, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0xA7, FIL_, 0x01, 0xCC, 0x81,
-               FIL_, 0xE1, 0xB9, 0xB8, FIL_, 0x01, 0xCC, 0x81,
-               FIL_, 0xE1, 0xB9, 0xB9, FIL_, 0x01, 0xCC, 0x88,
-               FIL_, 0xE1, 0xB9, 0xBA, FIL_, 0x01, 0xCC, 0x88,
-               FIL_, 0xE1, 0xB9, 0xBB, FIL_, 0x01, 0xCC, 0x87,
-               FIL_, 0xE1, 0xBA, 0x9B, FIL_, 0x05, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBB, 0x9C, FIL_, 0xCC, 0x81, FIL_,
-               0xE1, 0xBB, 0x9A, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xBB, 0xA2, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB,
-               0xA0, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x9E,
-               FIL_, 0x05, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xA1,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x9B, FIL_,
-               0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xA3, FIL_, 0xCC,
-               0x89, FIL_, 0xE1, 0xBB, 0x9F, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBB, 0x9D, FIL_, 0x05, 0xCC, 0x83,
-               FIL_, 0xE1, 0xBB, 0xAE, FIL_, 0xCC, 0xA3, FIL_,
-               0xE1, 0xBB, 0xB0, FIL_, 0xCC, 0x89, FIL_, 0xE1,
-               0xBB, 0xAC, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB,
-               0xA8, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xAA,
-               FIL_, 0x05, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xB1,
-               FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xAF, FIL_,
-               0xCC, 0x89, FIL_, 0xE1, 0xBB, 0xAD, FIL_, 0xCC,
-               0x81, FIL_, 0xE1, 0xBB, 0xA9, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBB, 0xAB, FIL_, 0x01, 0xCC, 0x8C,
-               FIL_, 0xC7, 0xAE, FIL_, 0x01, 0xCC, 0x84, FIL_,
-               0xC7, 0xAC, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7,
-               0xAD, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA0,
-               FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA1, FIL_,
-               0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9C, FIL_,
-               0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9D, FIL_,
-               0x01, 0xCC, 0x84, FIL_, 0xC8, 0xB0, FIL_, 0x01,
-               0xCC, 0x84, FIL_, 0xC8, 0xB1, FIL_, 0x01, 0xCC,
-               0x8C, FIL_, 0xC7, 0xAF, FIL_, 0x07, 0xCC, 0x93,
-               FIL_, 0xE1, 0xBC, 0x88, FIL_, 0xCC, 0x94, FIL_,
-               0xE1, 0xBC, 0x89, FIL_, 0xCC, 0x81, FIL_, 0xCE,
-               0x86, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xBC,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBE, 0xBA, FIL_,
-               0xCC, 0x84, FIL_, 0xE1, 0xBE, 0xB9, FIL_, 0xCC,
-               0x86, FIL_, 0xE1, 0xBE, 0xB8, FIL_, 0x04, 0xCC,
-               0x81, FIL_, 0xCE, 0x88, FIL_, 0xCC, 0x94, FIL_,
-               0xE1, 0xBC, 0x99, FIL_, 0xCC, 0x93, FIL_, 0xE1,
-               0xBC, 0x98, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF,
-               0x88, FIL_, 0x05, 0xCC, 0x94, FIL_, 0xE1, 0xBC,
-               0xA9, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x8A,
-               FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x89, FIL_, 0xCD,
-               0x85, FIL_, 0xE1, 0xBF, 0x8C, FIL_, 0xCC, 0x93,
-               FIL_, 0xE1, 0xBC, 0xA8, FIL_, 0x07, 0xCC, 0x81,
-               FIL_, 0xCE, 0x8A, FIL_, 0xCC, 0x88, FIL_, 0xCE,
-               0xAA, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF, 0x98,
-               FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xBF, 0x99, FIL_,
-               0xCC, 0x93, FIL_, 0xE1, 0xBC, 0xB8, FIL_, 0xCC,
-               0x94, FIL_, 0xE1, 0xBC, 0xB9, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBF, 0x9A, FIL_, 0x04, 0xCC, 0x94,
-               FIL_, 0xE1, 0xBD, 0x89, FIL_, 0xCC, 0x80, FIL_,
-               0xE1, 0xBF, 0xB8, FIL_, 0xCC, 0x81, FIL_, 0xCE,
-               0x8C, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD, 0x88,
-               FIL_, 0x01, 0xCC, 0x94, FIL_, 0xE1, 0xBF, 0xAC,
-               FIL_, 0x06, 0xCC, 0x81, FIL_, 0xCE, 0x8E, FIL_,
-               0xCC, 0x86, FIL_, 0xE1, 0xBF, 0xA8, FIL_, 0xCC,
-               0x94, FIL_, 0xE1, 0xBD, 0x99, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBF, 0xAA, FIL_, 0xCC, 0x84, FIL_,
-               0xE1, 0xBF, 0xA9, FIL_, 0xCC, 0x88, FIL_, 0xCE,
-               0xAB, FIL_, 0x05, 0xCC, 0x80, FIL_, 0xE1, 0xBF,
-               0xBA, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x8F, FIL_,
-               0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xBC, FIL_, 0xCC,
-               0x94, FIL_, 0xE1, 0xBD, 0xA9, FIL_, 0xCC, 0x93,
-               FIL_, 0xE1, 0xBD, 0xA8, FIL_, 0x01, 0xCD, 0x85,
-               FIL_, 0xE1, 0xBE, 0xB4, FIL_, 0x01, 0xCD, 0x85,
-               FIL_, 0xE1, 0xBF, 0x84, FIL_, 0x08, 0xCC, 0x81,
-               FIL_, 0xCE, 0xAC, FIL_, 0xCC, 0x80, FIL_, 0xE1,
-               0xBD, 0xB0, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC,
-               0x80, FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBC, 0x81,
-               FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBE, 0xB6, FIL_,
-               0xCC, 0x86, FIL_, 0xE1, 0xBE, 0xB0, FIL_, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0xB3, FIL_, 0xCC, 0x84,
-               FIL_, 0xE1, 0xBE, 0xB1, FIL_, 0x04, 0xCC, 0x81,
-               FIL_, 0xCE, 0xAD, FIL_, 0xCC, 0x94, FIL_, 0xE1,
-               0xBC, 0x91, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD,
-               0xB2, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC, 0x90,
-               FIL_, 0x06, 0xCC, 0x81, FIL_, 0xCE, 0xAE, FIL_,
-               0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xB4, FIL_, 0xCD,
-               0x85, FIL_, 0xE1, 0xBF, 0x83, FIL_, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBF, 0x86, FIL_, 0xCC, 0x94, FIL_,
-               0xE1, 0xBC, 0xA1, FIL_, 0xCC, 0x93, FIL_, 0xE1,
-               0xBC, 0xA0, FIL_, 0x08, 0xCD, 0x82, FIL_, 0xE1,
-               0xBF, 0x96, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF,
-               0x90, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC, 0xB0,
-               FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAF, FIL_, 0xCC,
-               0x94, FIL_, 0xE1, 0xBC, 0xB1, FIL_, 0xCC, 0x84,
-               FIL_, 0xE1, 0xBF, 0x91, FIL_, 0xCC, 0x88, FIL_,
-               0xCF, 0x8A, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD,
-               0xB6, FIL_, 0x04, 0xCC, 0x81, FIL_, 0xCF, 0x8C,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xB8, FIL_,
-               0xCC, 0x93, FIL_, 0xE1, 0xBD, 0x80, FIL_, 0xCC,
-               0x94, FIL_, 0xE1, 0xBD, 0x81, FIL_, 0x02, 0xCC,
-               0x93, FIL_, 0xE1, 0xBF, 0xA4, FIL_, 0xCC, 0x94,
-               FIL_, 0xE1, 0xBF, 0xA5, FIL_, 0x08, 0xCC, 0x93,
-               FIL_, 0xE1, 0xBD, 0x90, FIL_, 0xCC, 0x94, FIL_,
-               0xE1, 0xBD, 0x91, FIL_, 0xCC, 0x86, FIL_, 0xE1,
-               0xBF, 0xA0, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF,
-               0xA6, FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xBF, 0xA1,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xBA, FIL_,
-               0xCC, 0x81, FIL_, 0xCF, 0x8D, FIL_, 0xCC, 0x88,
-               FIL_, 0xCF, 0x8B, FIL_, 0x06, 0xCC, 0x94, FIL_,
-               0xE1, 0xBD, 0xA1, FIL_, 0xCD, 0x85, FIL_, 0xE1,
-               0xBF, 0xB3, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD,
-               0xBC, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0xB6,
-               FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD, 0xA0, FIL_,
-               0xCC, 0x81, FIL_, 0xCF, 0x8E, FIL_, 0x03, 0xCD,
-               0x82, FIL_, 0xE1, 0xBF, 0x97, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBF, 0x92, FIL_, 0xCC, 0x81, FIL_,
-               0xCE, 0x90, FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1,
-               0xBF, 0xA2, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xB0,
-               FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0xA7, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB4, FIL_,
-               0x02, 0xCC, 0x88, FIL_, 0xCF, 0x94, FIL_, 0xCC,
-               0x81, FIL_, 0xCF, 0x93, FIL_, 0x01, 0xCC, 0x88,
-               FIL_, 0xD0, 0x87, FIL_, 0x02, 0xCC, 0x86, FIL_,
-               0xD3, 0x90, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x92,
-               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD0, 0x83, FIL_,
-               0x03, 0xCC, 0x86, FIL_, 0xD3, 0x96, FIL_, 0xCC,
-               0x80, FIL_, 0xD0, 0x80, FIL_, 0xCC, 0x88, FIL_,
-               0xD0, 0x81, FIL_, 0x02, 0xCC, 0x88, FIL_, 0xD3,
-               0x9C, FIL_, 0xCC, 0x86, FIL_, 0xD3, 0x81, FIL_,
-               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9E, FIL_, 0x04,
-               0xCC, 0x80, FIL_, 0xD0, 0x8D, FIL_, 0xCC, 0x88,
-               FIL_, 0xD3, 0xA4, FIL_, 0xCC, 0x86, FIL_, 0xD0,
-               0x99, FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xA2, FIL_,
-               0x01, 0xCC, 0x81, FIL_, 0xD0, 0x8C, FIL_, 0x01,
-               0xCC, 0x88, FIL_, 0xD3, 0xA6, FIL_, 0x04, 0xCC,
-               0x86, FIL_, 0xD0, 0x8E, FIL_, 0xCC, 0x8B, FIL_,
-               0xD3, 0xB2, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0xB0,
-               FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xAE, FIL_, 0x01,
-               0xCC, 0x88, FIL_, 0xD3, 0xB4, FIL_, 0x01, 0xCC,
-               0x88, FIL_, 0xD3, 0xB8, FIL_, 0x01, 0xCC, 0x88,
-               FIL_, 0xD3, 0xAC, FIL_, 0x02, 0xCC, 0x86, FIL_,
-               0xD3, 0x91, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x93,
-               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD1, 0x93, FIL_,
-               0x03, 0xCC, 0x80, FIL_, 0xD1, 0x90, FIL_, 0xCC,
-               0x88, FIL_, 0xD1, 0x91, FIL_, 0xCC, 0x86, FIL_,
-               0xD3, 0x97, FIL_, 0x02, 0xCC, 0x88, FIL_, 0xD3,
-               0x9D, FIL_, 0xCC, 0x86, FIL_, 0xD3, 0x82, FIL_,
-               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9F, FIL_, 0x04,
-               0xCC, 0x88, FIL_, 0xD3, 0xA5, FIL_, 0xCC, 0x86,
-               FIL_, 0xD0, 0xB9, FIL_, 0xCC, 0x80, FIL_, 0xD1,
-               0x9D, FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xA3, FIL_,
-               0x01, 0xCC, 0x81, FIL_, 0xD1, 0x9C, FIL_, 0x01,
-               0xCC, 0x88, FIL_, 0xD3, 0xA7, FIL_, 0x04, 0xCC,
-               0x84, FIL_, 0xD3, 0xAF, FIL_, 0xCC, 0x86, FIL_,
-               0xD1, 0x9E, FIL_, 0xCC, 0x8B, FIL_, 0xD3, 0xB3,
-               FIL_, 0xCC, 0x88, FIL_, 0xD3, 0xB1, FIL_, 0x01,
-               0xCC, 0x88, FIL_, 0xD3, 0xB5, FIL_, 0x01, 0xCC,
-               0x88, FIL_, 0xD3, 0xB9, FIL_, 0x01, 0xCC, 0x88,
-               FIL_, 0xD3, 0xAD, FIL_, 0x01, 0xCC, 0x88, FIL_,
-               0xD1, 0x97, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1,
-               0xB6, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1, 0xB7,
-               FIL_, 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9A, FIL_,
-               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9B, FIL_, 0x01,
-               0xCC, 0x88, FIL_, 0xD3, 0xAA, FIL_, 0x01, 0xCC,
-               0x88, FIL_, 0xD3, 0xAB, FIL_, 0x03, 0xD9, 0x94,
-               FIL_, 0xD8, 0xA3, FIL_, 0xD9, 0x93, FIL_, 0xD8,
-               0xA2, FIL_, 0xD9, 0x95, FIL_, 0xD8, 0xA5, FIL_,
-               0x01, 0xD9, 0x94, FIL_, 0xD8, 0xA4, FIL_, 0x01,
-               0xD9, 0x94, FIL_, 0xD8, 0xA6, FIL_, 0x01, 0xD9,
-               0x94, FIL_, 0xDB, 0x82, FIL_, 0x01, 0xD9, 0x94,
-               FIL_, 0xDB, 0x93, FIL_, 0x01, 0xD9, 0x94, FIL_,
-               0xDB, 0x80, FIL_, 0x01, 0xE0, 0xA4, 0xBC, FIL_,
-               0xE0, 0xA4, 0xA9, FIL_, 0x01, 0xE0, 0xA4, 0xBC,
-               FIL_, 0xE0, 0xA4, 0xB1, FIL_, 0x01, 0xE0, 0xA4,
-               0xBC, FIL_, 0xE0, 0xA4, 0xB4, FIL_, 0x02, 0xE0,
-               0xA6, 0xBE, FIL_, 0xE0, 0xA7, 0x8B, FIL_, 0xE0,
-               0xA7, 0x97, FIL_, 0xE0, 0xA7, 0x8C, FIL_, 0x03,
-               0xE0, 0xAD, 0x97, FIL_, 0xE0, 0xAD, 0x8C, FIL_,
-               0xE0, 0xAC, 0xBE, FIL_, 0xE0, 0xAD, 0x8B, FIL_,
-               0xE0, 0xAD, 0x96, FIL_, 0xE0, 0xAD, 0x88, FIL_,
-               0x01, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAE, 0x94,
-               FIL_, 0x02, 0xE0, 0xAE, 0xBE, FIL_, 0xE0, 0xAF,
-               0x8A, FIL_, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAF,
-               0x8C, FIL_, 0x01, 0xE0, 0xAE, 0xBE, FIL_, 0xE0,
-               0xAF, 0x8B, FIL_, 0x01, 0xE0, 0xB1, 0x96, FIL_,
-               0xE0, 0xB1, 0x88, FIL_, 0x01, 0xE0, 0xB3, 0x95,
-               FIL_, 0xE0, 0xB3, 0x80, FIL_, 0x03, 0xE0, 0xB3,
-               0x95, FIL_, 0xE0, 0xB3, 0x87, FIL_, 0xE0, 0xB3,
-               0x82, FIL_, 0xE0, 0xB3, 0x8A, FIL_, 0xE0, 0xB3,
-               0x96, FIL_, 0xE0, 0xB3, 0x88, FIL_, 0x01, 0xE0,
-               0xB3, 0x95, FIL_, 0xE0, 0xB3, 0x8B, FIL_, 0x02,
-               0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8A, FIL_,
-               0xE0, 0xB5, 0x97, FIL_, 0xE0, 0xB5, 0x8C, FIL_,
-               0x01, 0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8B,
-               FIL_, 0x03, 0xE0, 0xB7, 0x8F, FIL_, 0xE0, 0xB7,
-               0x9C, FIL_, 0xE0, 0xB7, 0x8A, FIL_, 0xE0, 0xB7,
-               0x9A, FIL_, 0xE0, 0xB7, 0x9F, FIL_, 0xE0, 0xB7,
-               0x9E, FIL_, 0x01, 0xE0, 0xB7, 0x8A, FIL_, 0xE0,
-               0xB7, 0x9D, FIL_, 0x01, 0xE1, 0x80, 0xAE, FIL_,
-               0xE1, 0x80, 0xA6, FIL_, 0x01, 0xCC, 0x84, FIL_,
-               0xE1, 0xB8, 0xB8, FIL_, 0x01, 0xCC, 0x84, FIL_,
-               0xE1, 0xB8, 0xB9, FIL_, 0x01, 0xCC, 0x84, FIL_,
-               0xE1, 0xB9, 0x9C, FIL_, 0x01, 0xCC, 0x84, FIL_,
-               0xE1, 0xB9, 0x9D, FIL_, 0x01, 0xCC, 0x87, FIL_,
-               0xE1, 0xB9, 0xA8, FIL_, 0x01, 0xCC, 0x87, FIL_,
-               0xE1, 0xB9, 0xA9, FIL_, 0x02, 0xCC, 0x86, FIL_,
-               0xE1, 0xBA, 0xB6, FIL_, 0xCC, 0x82, FIL_, 0xE1,
-               0xBA, 0xAC, FIL_, 0x02, 0xCC, 0x86, FIL_, 0xE1,
-               0xBA, 0xB7, FIL_, 0xCC, 0x82, FIL_, 0xE1, 0xBA,
-               0xAD, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB,
-               0x86, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB,
-               0x87, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB,
-               0x98, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB,
-               0x99, FIL_, 0x04, 0xCC, 0x80, FIL_, 0xE1, 0xBC,
-               0x82, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x84,
-               FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x80, FIL_,
-               0xCD, 0x82, FIL_, 0xE1, 0xBC, 0x86, FIL_, 0x04,
-               0xCD, 0x82, FIL_, 0xE1, 0xBC, 0x87, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBC, 0x83, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xBC, 0x85, FIL_, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x81, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x82, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x83, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x84, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x85, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x86, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x87, FIL_, 0x04, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x88, FIL_, 0xCC, 0x80, FIL_, 0xE1,
-               0xBC, 0x8A, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC,
-               0x8E, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x8C,
-               FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x8D,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x8B, FIL_,
-               0xCD, 0x82, FIL_, 0xE1, 0xBC, 0x8F, FIL_, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x89, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x8A, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x8B, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x8C, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x8D, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x8E, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x8F, FIL_, 0x02, 0xCC,
-               0x80, FIL_, 0xE1, 0xBC, 0x92, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xBC, 0x94, FIL_, 0x02, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBC, 0x93, FIL_, 0xCC, 0x81, FIL_,
-               0xE1, 0xBC, 0x95, FIL_, 0x02, 0xCC, 0x80, FIL_,
-               0xE1, 0xBC, 0x9A, FIL_, 0xCC, 0x81, FIL_, 0xE1,
-               0xBC, 0x9C, FIL_, 0x02, 0xCC, 0x80, FIL_, 0xE1,
-               0xBC, 0x9B, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC,
-               0x9D, FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBC,
-               0xA6, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x90,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xA4, FIL_,
-               0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xA2, FIL_, 0x04,
-               0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xA3, FIL_, 0xCC,
-               0x81, FIL_, 0xE1, 0xBC, 0xA5, FIL_, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBC, 0xA7, FIL_, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x91, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x92, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x93, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x94, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x95, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x96, FIL_, 0x01, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0x97, FIL_, 0x04, 0xCD, 0x82, FIL_,
-               0xE1, 0xBC, 0xAE, FIL_, 0xCC, 0x81, FIL_, 0xE1,
-               0xBC, 0xAC, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE,
-               0x98, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xAA,
-               FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xAF,
-               FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x99, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xAD, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBC, 0xAB, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x9A, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x9B, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x9C, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x9D, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x9E, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0x9F, FIL_, 0x03, 0xCC,
-               0x81, FIL_, 0xE1, 0xBC, 0xB4, FIL_, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBC, 0xB6, FIL_, 0xCC, 0x80, FIL_,
-               0xE1, 0xBC, 0xB2, FIL_, 0x03, 0xCC, 0x81, FIL_,
-               0xE1, 0xBC, 0xB5, FIL_, 0xCD, 0x82, FIL_, 0xE1,
-               0xBC, 0xB7, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC,
-               0xB3, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xBC,
-               0xBC, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xBA,
-               FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xBE, FIL_,
-               0x03, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xBB, FIL_,
-               0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xBF, FIL_, 0xCC,
-               0x81, FIL_, 0xE1, 0xBC, 0xBD, FIL_, 0x02, 0xCC,
-               0x80, FIL_, 0xE1, 0xBD, 0x82, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xBD, 0x84, FIL_, 0x02, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBD, 0x83, FIL_, 0xCC, 0x81, FIL_,
-               0xE1, 0xBD, 0x85, FIL_, 0x02, 0xCC, 0x81, FIL_,
-               0xE1, 0xBD, 0x8C, FIL_, 0xCC, 0x80, FIL_, 0xE1,
-               0xBD, 0x8A, FIL_, 0x02, 0xCC, 0x81, FIL_, 0xE1,
-               0xBD, 0x8D, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD,
-               0x8B, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xBD,
-               0x94, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0x96,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x92, FIL_,
-               0x03, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0x97, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x95, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBD, 0x93, FIL_, 0x03, 0xCC,
-               0x81, FIL_, 0xE1, 0xBD, 0x9D, FIL_, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBD, 0x9F, FIL_, 0xCC, 0x80, FIL_,
-               0xE1, 0xBD, 0x9B, FIL_, 0x04, 0xCC, 0x81, FIL_,
-               0xE1, 0xBD, 0xA4, FIL_, 0xCC, 0x80, FIL_, 0xE1,
-               0xBD, 0xA2, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD,
-               0xA6, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA0,
-               FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xA7,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0xA5, FIL_,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA1, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBD, 0xA3, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0xA2, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0xA3, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0xA4, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0xA5, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0xA6, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0xA7, FIL_, 0x04, 0xCC,
-               0x81, FIL_, 0xE1, 0xBD, 0xAC, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBD, 0xAA, FIL_, 0xCD, 0x82, FIL_,
-               0xE1, 0xBD, 0xAE, FIL_, 0xCD, 0x85, FIL_, 0xE1,
-               0xBE, 0xA8, FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1,
-               0xBD, 0xAD, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE,
-               0xA9, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xAF,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xAB, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAA, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAB, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAC, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAD, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAE, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAF, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xB2, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0x82, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB2, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xB7, FIL_,
-               0x03, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0x8F, FIL_,
-               0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x8D, FIL_, 0xCC,
-               0x81, FIL_, 0xE1, 0xBF, 0x8E, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBF, 0x87, FIL_, 0x01, 0xCD,
-               0x85, FIL_, 0xE1, 0xBF, 0xB7, FIL_, 0x03, 0xCC,
-               0x80, FIL_, 0xE1, 0xBF, 0x9D, FIL_, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBF, 0x9F, FIL_, 0xCC, 0x81, FIL_,
-               0xE1, 0xBF, 0x9E, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x86, 0x9A, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x86, 0x9B, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x86, 0xAE, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x87, 0x8D, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x87, 0x8F, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x87, 0x8E, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x88, 0x84, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x88, 0x89, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x88, 0x8C, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x88, 0xA4, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x88, 0xA6, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0x81, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0x84, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0x87, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0x89, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0xAD, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0xA2, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0xB0, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0xB1, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0xB4, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0xB5, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0xB8, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x89, 0xB9, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8A, 0x80, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8A, 0x81, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8B, 0xA0, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8B, 0xA1, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8A, 0x84, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8A, 0x85, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8A, 0x88, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8A, 0x89, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8B, 0xA2, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8B, 0xA3, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8A, 0xAC, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8A, 0xAD, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8A, 0xAE, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8A, 0xAF, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8B, 0xAA, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8B, 0xAB, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8B, 0xAC, FIL_, 0x01, 0xCC, 0xB8, FIL_,
-               0xE2, 0x8B, 0xAD, FIL_, 0x01, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x82, 0x94, FIL_, 0x01, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x81, 0x8C, FIL_, 0x01, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x81, 0x8E, FIL_, 0x01,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x90, FIL_,
-               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x92,
-               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81,
-               0x94, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x81, 0x96, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x81, 0x98, FIL_, 0x01, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x81, 0x9A, FIL_, 0x01, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x81, 0x9C, FIL_, 0x01, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x81, 0x9E, FIL_, 0x01,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xA0, FIL_,
-               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xA2,
-               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81,
-               0xA5, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x81, 0xA7, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x81, 0xA9, FIL_, 0x02, 0xE3, 0x82, 0x9A,
-               FIL_, 0xE3, 0x81, 0xB1, FIL_, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x81, 0xB0, FIL_, 0x02, 0xE3, 0x82,
-               0x9A, FIL_, 0xE3, 0x81, 0xB4, FIL_, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x81, 0xB3, FIL_, 0x02, 0xE3,
-               0x82, 0x9A, FIL_, 0xE3, 0x81, 0xB7, FIL_, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x81, 0xB6, FIL_, 0x02,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xB9, FIL_,
-               0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xBA, FIL_,
-               0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xBC,
-               FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xBD,
-               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82,
-               0x9E, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x83, 0xB4, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x82, 0xAC, FIL_, 0x01, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x82, 0xAE, FIL_, 0x01, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x82, 0xB0, FIL_, 0x01, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x82, 0xB2, FIL_, 0x01,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xB4, FIL_,
-               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xB6,
-               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82,
-               0xB8, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x82, 0xBA, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x82, 0xBC, FIL_, 0x01, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x82, 0xBE, FIL_, 0x01, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x83, 0x80, FIL_, 0x01, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x83, 0x82, FIL_, 0x01,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x85, FIL_,
-               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x87,
-               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83,
-               0x89, FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x83, 0x90, FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3,
-               0x83, 0x91, FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x83, 0x93, FIL_, 0xE3, 0x82, 0x9A, FIL_,
-               0xE3, 0x83, 0x94, FIL_, 0x02, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x83, 0x96, FIL_, 0xE3, 0x82, 0x9A,
-               FIL_, 0xE3, 0x83, 0x97, FIL_, 0x02, 0xE3, 0x82,
-               0x9A, FIL_, 0xE3, 0x83, 0x9A, FIL_, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x83, 0x99, FIL_, 0x02, 0xE3,
-               0x82, 0x9A, FIL_, 0xE3, 0x83, 0x9D, FIL_, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x83, 0x9C, FIL_, 0x01,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0xB7, FIL_,
-               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0xB8,
-               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83,
-               0xB9, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x83, 0xBA, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x83, 0xBE, FIL_, 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,    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,    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,
-       },
-       {
-               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAE, FIL_,
-               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xA0, FIL_,
-               0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAF, FIL_,
-               0x10, 0xCC, 0xA5, FIL_, 0xE1, 0xB8, 0x80, FIL_,
-               0xCC, 0x87, FIL_, 0xC8, 0xA6, FIL_, 0xCC, 0x83,
-               FIL_, 0xC3, 0x83, FIL_, 0xCC, 0x91, FIL_, 0xC8,
-               0x82, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x80, FIL_,
-               0xCC, 0x8A, FIL_, 0xC3, 0x85, FIL_, 0xCC, 0x88,
-               FIL_, 0xC3, 0x84, FIL_, 0xCC, 0x89, FIL_, 0xE1,
-               0xBA, 0xA2, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA,
-               0xA0, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x8D, FIL_,
-               0xCC, 0x80, FIL_, 0xC3, 0x80, FIL_, 0xCC, 0x81,
-               FIL_, 0xC3, 0x81, FIL_, 0xCC, 0x82, FIL_, 0xC3,
-               0x82, FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x84, FIL_,
-               0xCC, 0x86, FIL_, 0xC4, 0x82, FIL_, 0xCC, 0x84,
-               FIL_, 0xC4, 0x80, FIL_, 0x03, 0xCC, 0xB1, FIL_,
-               0xE1, 0xB8, 0x86, FIL_, 0xCC, 0x87, FIL_, 0xE1,
-               0xB8, 0x82, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
-               0x84, FIL_, 0x05, 0xCC, 0xA7, FIL_, 0xC3, 0x87,
-               FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x8C, FIL_, 0xCC,
-               0x81, FIL_, 0xC4, 0x86, FIL_, 0xCC, 0x82, FIL_,
-               0xC4, 0x88, FIL_, 0xCC, 0x87, FIL_, 0xC4, 0x8A,
-               FIL_, 0x06, 0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0x90,
-               FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x8E, FIL_, 0xCC,
-               0xB1, FIL_, 0xE1, 0xB8, 0x8E, FIL_, 0xCC, 0xAD,
-               FIL_, 0xE1, 0xB8, 0x92, FIL_, 0xCC, 0xA3, FIL_,
-               0xE1, 0xB8, 0x8C, FIL_, 0xCC, 0x87, FIL_, 0xE1,
-               0xB8, 0x8A, FIL_, 0x11, 0xCC, 0x84, FIL_, 0xC4,
-               0x92, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x94, FIL_,
-               0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0xB8, FIL_, 0xCC,
-               0x91, FIL_, 0xC8, 0x86, FIL_, 0xCC, 0x82, FIL_,
-               0xC3, 0x8A, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x84,
-               FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x98, FIL_,
-               0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xBA, FIL_, 0xCC,
-               0xA7, FIL_, 0xC8, 0xA8, FIL_, 0xCC, 0x8C, FIL_,
-               0xC4, 0x9A, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x88,
-               FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x98, FIL_, 0xCC,
-               0x83, FIL_, 0xE1, 0xBA, 0xBC, FIL_, 0xCC, 0x87,
-               FIL_, 0xC4, 0x96, FIL_, 0xCC, 0x81, FIL_, 0xC3,
-               0x89, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x8B, FIL_,
-               0xCC, 0xB0, FIL_, 0xE1, 0xB8, 0x9A, FIL_, 0x01,
-               0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9E, FIL_, 0x07,
-               0xCC, 0x8C, FIL_, 0xC7, 0xA6, FIL_, 0xCC, 0x86,
-               FIL_, 0xC4, 0x9E, FIL_, 0xCC, 0x82, FIL_, 0xC4,
-               0x9C, FIL_, 0xCC, 0xA7, FIL_, 0xC4, 0xA2, FIL_,
-               0xCC, 0x84, FIL_, 0xE1, 0xB8, 0xA0, FIL_, 0xCC,
-               0x81, FIL_, 0xC7, 0xB4, FIL_, 0xCC, 0x87, FIL_,
-               0xC4, 0xA0, FIL_, 0x07, 0xCC, 0x87, FIL_, 0xE1,
-               0xB8, 0xA2, FIL_, 0xCC, 0xA7, FIL_, 0xE1, 0xB8,
-               0xA8, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0xA4, FIL_,
-               0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA6, FIL_, 0xCC,
-               0x8C, FIL_, 0xC8, 0x9E, FIL_, 0xCC, 0xAE, FIL_,
-               0xE1, 0xB8, 0xAA, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xB8, 0xA4, FIL_, 0x0F, 0xCC, 0xB0, FIL_, 0xE1,
-               0xB8, 0xAC, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x8F,
-               FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x8C, FIL_, 0xCC,
-               0x89, FIL_, 0xE1, 0xBB, 0x88, FIL_, 0xCC, 0xA3,
-               FIL_, 0xE1, 0xBB, 0x8A, FIL_, 0xCC, 0x91, FIL_,
-               0xC8, 0x8A, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x8F,
-               FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x8E, FIL_, 0xCC,
-               0x81, FIL_, 0xC3, 0x8D, FIL_, 0xCC, 0x83, FIL_,
-               0xC4, 0xA8, FIL_, 0xCC, 0x87, FIL_, 0xC4, 0xB0,
-               FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x88, FIL_, 0xCC,
-               0xA8, FIL_, 0xC4, 0xAE, FIL_, 0xCC, 0x86, FIL_,
-               0xC4, 0xAC, FIL_, 0xCC, 0x84, FIL_, 0xC4, 0xAA,
-               FIL_, 0x01, 0xCC, 0x82, FIL_, 0xC4, 0xB4, FIL_,
-               0x05, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xB0, FIL_,
-               0xCC, 0x8C, FIL_, 0xC7, 0xA8, FIL_, 0xCC, 0xB1,
-               FIL_, 0xE1, 0xB8, 0xB4, FIL_, 0xCC, 0xA7, FIL_,
-               0xC4, 0xB6, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
-               0xB2, FIL_, 0x06, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
-               0xB6, FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0xBD, FIL_,
-               0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0xBC, FIL_, 0xCC,
-               0xB1, FIL_, 0xE1, 0xB8, 0xBA, FIL_, 0xCC, 0xA7,
-               FIL_, 0xC4, 0xBB, FIL_, 0xCC, 0x81, FIL_, 0xC4,
-               0xB9, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xB8,
-               0xBE, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x80,
-               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x82, FIL_,
-               0x09, 0xCC, 0x83, FIL_, 0xC3, 0x91, FIL_, 0xCC,
-               0x81, FIL_, 0xC5, 0x83, FIL_, 0xCC, 0xA7, FIL_,
-               0xC5, 0x85, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0x87,
-               FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x84, FIL_,
-               0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x86, FIL_, 0xCC,
-               0xB1, FIL_, 0xE1, 0xB9, 0x88, FIL_, 0xCC, 0xAD,
-               FIL_, 0xE1, 0xB9, 0x8A, FIL_, 0xCC, 0x80, FIL_,
-               0xC7, 0xB8, FIL_, 0x10, 0xCC, 0x89, FIL_, 0xE1,
-               0xBB, 0x8E, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0x8C,
-               FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x94, FIL_, 0xCC,
-               0x86, FIL_, 0xC5, 0x8E, FIL_, 0xCC, 0x83, FIL_,
-               0xC3, 0x95, FIL_, 0xCC, 0x8B, FIL_, 0xC5, 0x90,
-               FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x96, FIL_, 0xCC,
-               0x9B, FIL_, 0xC6, 0xA0, FIL_, 0xCC, 0x91, FIL_,
-               0xC8, 0x8E, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x91,
-               FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x8C, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xBB, 0x8C, FIL_, 0xCC, 0x80,
-               FIL_, 0xC3, 0x92, FIL_, 0xCC, 0xA8, FIL_, 0xC7,
-               0xAA, FIL_, 0xCC, 0x87, FIL_, 0xC8, 0xAE, FIL_,
-               0xCC, 0x81, FIL_, 0xC3, 0x93, FIL_, 0x02, 0xCC,
-               0x87, FIL_, 0xE1, 0xB9, 0x96, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xB9, 0x94, FIL_, 0x08, 0xCC, 0xA7,
-               FIL_, 0xC5, 0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC5,
-               0x98, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x92, FIL_,
-               0xCC, 0x8F, FIL_, 0xC8, 0x90, FIL_, 0xCC, 0x81,
-               FIL_, 0xC5, 0x94, FIL_, 0xCC, 0x87, FIL_, 0xE1,
-               0xB9, 0x98, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB9,
-               0x9E, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x9A,
-               FIL_, 0x07, 0xCC, 0xA6, FIL_, 0xC8, 0x98, FIL_,
-               0xCC, 0x81, FIL_, 0xC5, 0x9A, FIL_, 0xCC, 0x82,
-               FIL_, 0xC5, 0x9C, FIL_, 0xCC, 0xA7, FIL_, 0xC5,
-               0x9E, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0xA0, FIL_,
-               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA0, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xB9, 0xA2, FIL_, 0x07, 0xCC,
-               0xA6, FIL_, 0xC8, 0x9A, FIL_, 0xCC, 0x87, FIL_,
-               0xE1, 0xB9, 0xAA, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xB9, 0xAC, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB9,
-               0xAE, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB0,
-               FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0xA2, FIL_, 0xCC,
-               0x8C, FIL_, 0xC5, 0xA4, FIL_, 0x13, 0xCC, 0x8A,
-               FIL_, 0xC5, 0xAE, FIL_, 0xCC, 0x88, FIL_, 0xC3,
-               0x9C, FIL_, 0xCC, 0x8B, FIL_, 0xC5, 0xB0, FIL_,
-               0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB6, FIL_, 0xCC,
-               0xA8, FIL_, 0xC5, 0xB2, FIL_, 0xCC, 0x8C, FIL_,
-               0xC7, 0x93, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x99,
-               FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x94, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xBB, 0xA4, FIL_, 0xCC, 0xA4,
-               FIL_, 0xE1, 0xB9, 0xB2, FIL_, 0xCC, 0x81, FIL_,
-               0xC3, 0x9A, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x9B,
-               FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB9, 0xB4, FIL_,
-               0xCC, 0x83, FIL_, 0xC5, 0xA8, FIL_, 0xCC, 0x89,
-               FIL_, 0xE1, 0xBB, 0xA6, FIL_, 0xCC, 0x84, FIL_,
-               0xC5, 0xAA, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x96,
-               FIL_, 0xCC, 0x86, FIL_, 0xC5, 0xAC, FIL_, 0xCC,
-               0x9B, FIL_, 0xC6, 0xAF, FIL_, 0x02, 0xCC, 0xA3,
-               FIL_, 0xE1, 0xB9, 0xBE, FIL_, 0xCC, 0x83, FIL_,
-               0xE1, 0xB9, 0xBC, FIL_, 0x06, 0xCC, 0x88, FIL_,
-               0xE1, 0xBA, 0x84, FIL_, 0xCC, 0x81, FIL_, 0xE1,
-               0xBA, 0x82, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA,
-               0x80, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x88,
-               FIL_, 0xCC, 0x82, FIL_, 0xC5, 0xB4, FIL_, 0xCC,
-               0x87, FIL_, 0xE1, 0xBA, 0x86, FIL_, 0x02, 0xCC,
-               0x88, FIL_, 0xE1, 0xBA, 0x8C, FIL_, 0xCC, 0x87,
-               FIL_, 0xE1, 0xBA, 0x8A, FIL_, 0x09, 0xCC, 0x89,
-               FIL_, 0xE1, 0xBB, 0xB6, FIL_, 0xCC, 0xA3, FIL_,
-               0xE1, 0xBB, 0xB4, FIL_, 0xCC, 0x80, FIL_, 0xE1,
-               0xBB, 0xB2, FIL_, 0xCC, 0x88, FIL_, 0xC5, 0xB8,
-               FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x9D, FIL_, 0xCC,
-               0x83, FIL_, 0xE1, 0xBB, 0xB8, FIL_, 0xCC, 0x87,
-               FIL_, 0xE1, 0xBA, 0x8E, FIL_, 0xCC, 0x84, FIL_,
-               0xC8, 0xB2, FIL_, 0xCC, 0x82, FIL_, 0xC5, 0xB6,
-               FIL_, 0x06, 0xCC, 0x82, FIL_, 0xE1, 0xBA, 0x90,
-               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x92, FIL_,
-               0xCC, 0xB1, FIL_, 0xE1, 0xBA, 0x94, FIL_, 0xCC,
-               0x8C, FIL_, 0xC5, 0xBD, FIL_, 0xCC, 0x87, FIL_,
-               0xC5, 0xBB, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0xB9,
-               FIL_, 0x10, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0xA1,
-               FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x85, FIL_, 0xCC,
-               0x81, FIL_, 0xC3, 0xA1, FIL_, 0xCC, 0x82, FIL_,
-               0xC3, 0xA2, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA,
-               0xA3, FIL_, 0xCC, 0x83, FIL_, 0xC3, 0xA3, FIL_,
-               0xCC, 0x8C, FIL_, 0xC7, 0x8E, FIL_, 0xCC, 0x8A,
-               FIL_, 0xC3, 0xA5, FIL_, 0xCC, 0x88, FIL_, 0xC3,
-               0xA4, FIL_, 0xCC, 0x87, FIL_, 0xC8, 0xA7, FIL_,
-               0xCC, 0x91, FIL_, 0xC8, 0x83, FIL_, 0xCC, 0xA5,
-               FIL_, 0xE1, 0xB8, 0x81, FIL_, 0xCC, 0x84, FIL_,
-               0xC4, 0x81, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x81,
-               FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x83, FIL_, 0xCC,
-               0x80, FIL_, 0xC3, 0xA0, FIL_, 0x03, 0xCC, 0xA3,
-               FIL_, 0xE1, 0xB8, 0x85, FIL_, 0xCC, 0x87, FIL_,
-               0xE1, 0xB8, 0x83, FIL_, 0xCC, 0xB1, FIL_, 0xE1,
-               0xB8, 0x87, FIL_, 0x05, 0xCC, 0x87, FIL_, 0xC4,
-               0x8B, FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x8D, FIL_,
-               0xCC, 0x82, FIL_, 0xC4, 0x89, FIL_, 0xCC, 0x81,
-               FIL_, 0xC4, 0x87, FIL_, 0xCC, 0xA7, FIL_, 0xC3,
-               0xA7, FIL_, 0x06, 0xCC, 0x87, FIL_, 0xE1, 0xB8,
-               0x8B, FIL_, 0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0x91,
-               FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0x8F, FIL_,
-               0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0x8D, FIL_, 0xCC,
-               0x8C, FIL_, 0xC4, 0x8F, FIL_, 0xCC, 0xAD, FIL_,
-               0xE1, 0xB8, 0x93, FIL_, 0x11, 0xCC, 0x80, FIL_,
-               0xC3, 0xA8, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0xA9,
-               FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xAA, FIL_, 0xCC,
-               0x88, FIL_, 0xC3, 0xAB, FIL_, 0xCC, 0x84, FIL_,
-               0xC4, 0x93, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x95,
-               FIL_, 0xCC, 0x87, FIL_, 0xC4, 0x97, FIL_, 0xCC,
-               0xA8, FIL_, 0xC4, 0x99, FIL_, 0xCC, 0x8C, FIL_,
-               0xC4, 0x9B, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x85,
-               FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x87, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xBA, 0xB9, FIL_, 0xCC, 0xA7,
-               FIL_, 0xC8, 0xA9, FIL_, 0xCC, 0x83, FIL_, 0xE1,
-               0xBA, 0xBD, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA,
-               0xBB, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x99,
-               FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB8, 0x9B, FIL_,
-               0x01, 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9F, FIL_,
-               0x07, 0xCC, 0x86, FIL_, 0xC4, 0x9F, FIL_, 0xCC,
-               0x87, FIL_, 0xC4, 0xA1, FIL_, 0xCC, 0x82, FIL_,
-               0xC4, 0x9D, FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xB8,
-               0xA1, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0xA7, FIL_,
-               0xCC, 0xA7, FIL_, 0xC4, 0xA3, FIL_, 0xCC, 0x81,
-               FIL_, 0xC7, 0xB5, FIL_, 0x08, 0xCC, 0xA7, FIL_,
-               0xE1, 0xB8, 0xA9, FIL_, 0xCC, 0xB1, FIL_, 0xE1,
-               0xBA, 0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC8, 0x9F,
-               FIL_, 0xCC, 0xAE, FIL_, 0xE1, 0xB8, 0xAB, FIL_,
-               0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA7, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xB8, 0xA5, FIL_, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB8, 0xA3, FIL_, 0xCC, 0x82, FIL_,
-               0xC4, 0xA5, FIL_, 0x0E, 0xCC, 0x88, FIL_, 0xC3,
-               0xAF, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x89,
-               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0x8B, FIL_,
-               0xCC, 0x82, FIL_, 0xC3, 0xAE, FIL_, 0xCC, 0x81,
-               FIL_, 0xC3, 0xAD, FIL_, 0xCC, 0x80, FIL_, 0xC3,
-               0xAC, FIL_, 0xCC, 0x83, FIL_, 0xC4, 0xA9, FIL_,
-               0xCC, 0x84, FIL_, 0xC4, 0xAB, FIL_, 0xCC, 0x86,
-               FIL_, 0xC4, 0xAD, FIL_, 0xCC, 0xA8, FIL_, 0xC4,
-               0xAF, FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB8, 0xAD,
-               FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x90, FIL_, 0xCC,
-               0x91, FIL_, 0xC8, 0x8B, FIL_, 0xCC, 0x8F, FIL_,
-               0xC8, 0x89, FIL_, 0x02, 0xCC, 0x8C, FIL_, 0xC7,
-               0xB0, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0xB5, FIL_,
-               0x05, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0xB5, FIL_,
-               0xCC, 0xA7, FIL_, 0xC4, 0xB7, FIL_, 0xCC, 0x8C,
-               FIL_, 0xC7, 0xA9, FIL_, 0xCC, 0x81, FIL_, 0xE1,
-               0xB8, 0xB1, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
-               0xB3, FIL_, 0x06, 0xCC, 0xA3, FIL_, 0xE1, 0xB8,
-               0xB7, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0xBD,
-               FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0xBB, FIL_,
-               0xCC, 0xA7, FIL_, 0xC4, 0xBC, FIL_, 0xCC, 0x81,
-               FIL_, 0xC4, 0xBA, FIL_, 0xCC, 0x8C, FIL_, 0xC4,
-               0xBE, FIL_, 0x03, 0xCC, 0x87, FIL_, 0xE1, 0xB9,
-               0x81, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x83,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xBF, FIL_,
-               0x09, 0xCC, 0x80, FIL_, 0xC7, 0xB9, FIL_, 0xCC,
-               0xAD, FIL_, 0xE1, 0xB9, 0x8B, FIL_, 0xCC, 0x83,
-               FIL_, 0xC3, 0xB1, FIL_, 0xCC, 0x81, FIL_, 0xC5,
-               0x84, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x87,
-               FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB9, 0x89, FIL_,
-               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x85, FIL_, 0xCC,
-               0xA7, FIL_, 0xC5, 0x86, FIL_, 0xCC, 0x8C, FIL_,
-               0xC5, 0x88, FIL_, 0x10, 0xCC, 0xA3, FIL_, 0xE1,
-               0xBB, 0x8D, FIL_, 0xCC, 0x87, FIL_, 0xC8, 0xAF,
-               FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xB2, FIL_, 0xCC,
-               0x91, FIL_, 0xC8, 0x8F, FIL_, 0xCC, 0x89, FIL_,
-               0xE1, 0xBB, 0x8F, FIL_, 0xCC, 0x88, FIL_, 0xC3,
-               0xB6, FIL_, 0xCC, 0x83, FIL_, 0xC3, 0xB5, FIL_,
-               0xCC, 0x81, FIL_, 0xC3, 0xB3, FIL_, 0xCC, 0x8C,
-               FIL_, 0xC7, 0x92, FIL_, 0xCC, 0xA8, FIL_, 0xC7,
-               0xAB, FIL_, 0xCC, 0x9B, FIL_, 0xC6, 0xA1, FIL_,
-               0xCC, 0x84, FIL_, 0xC5, 0x8D, FIL_, 0xCC, 0x86,
-               FIL_, 0xC5, 0x8F, FIL_, 0xCC, 0x8B, FIL_, 0xC5,
-               0x91, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xB4, FIL_,
-               0xCC, 0x8F, FIL_, 0xC8, 0x8D, FIL_, 0x02, 0xCC,
-               0x87, FIL_, 0xE1, 0xB9, 0x97, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xB9, 0x95, FIL_, 0x08, 0xCC, 0x8C,
-               FIL_, 0xC5, 0x99, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xB9, 0x9B, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0x95,
-               FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x97, FIL_, 0xCC,
-               0xB1, FIL_, 0xE1, 0xB9, 0x9F, FIL_, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0x99, FIL_, 0xCC, 0x91, FIL_,
-               0xC8, 0x93, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x91,
-               FIL_, 0x07, 0xCC, 0xA7, FIL_, 0xC5, 0x9F, FIL_,
-               0xCC, 0x82, FIL_, 0xC5, 0x9D, FIL_, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0xA1, FIL_, 0xCC, 0xA6, FIL_,
-               0xC8, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0x9B,
-               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0xA3, FIL_,
-               0xCC, 0x8C, FIL_, 0xC5, 0xA1, FIL_, 0x08, 0xCC,
-               0xA6, FIL_, 0xC8, 0x9B, FIL_, 0xCC, 0xAD, FIL_,
-               0xE1, 0xB9, 0xB1, FIL_, 0xCC, 0xB1, FIL_, 0xE1,
-               0xB9, 0xAF, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9,
-               0xAD, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xAB,
-               FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0xA5, FIL_, 0xCC,
-               0xA7, FIL_, 0xC5, 0xA3, FIL_, 0xCC, 0x88, FIL_,
-               0xE1, 0xBA, 0x97, FIL_, 0x13, 0xCC, 0x8A, FIL_,
-               0xC5, 0xAF, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x95,
-               FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x94, FIL_, 0xCC,
-               0x80, FIL_, 0xC3, 0xB9, FIL_, 0xCC, 0x9B, FIL_,
-               0xC6, 0xB0, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xBB,
-               FIL_, 0xCC, 0x81, FIL_, 0xC3, 0xBA, FIL_, 0xCC,
-               0x88, FIL_, 0xC3, 0xBC, FIL_, 0xCC, 0x83, FIL_,
-               0xC5, 0xA9, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB,
-               0xA7, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0xAB, FIL_,
-               0xCC, 0x86, FIL_, 0xC5, 0xAD, FIL_, 0xCC, 0xAD,
-               FIL_, 0xE1, 0xB9, 0xB7, FIL_, 0xCC, 0x8B, FIL_,
-               0xC5, 0xB1, FIL_, 0xCC, 0xA8, FIL_, 0xC5, 0xB3,
-               FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x97, FIL_, 0xCC,
-               0xA4, FIL_, 0xE1, 0xB9, 0xB3, FIL_, 0xCC, 0xA3,
-               FIL_, 0xE1, 0xBB, 0xA5, FIL_, 0xCC, 0xB0, FIL_,
-               0xE1, 0xB9, 0xB5, FIL_, 0x02, 0xCC, 0x83, FIL_,
-               0xE1, 0xB9, 0xBD, FIL_, 0xCC, 0xA3, FIL_, 0xE1,
-               0xB9, 0xBF, FIL_, 0x07, 0xCC, 0x8A, FIL_, 0xE1,
-               0xBA, 0x98, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xBA,
-               0x87, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0x83,
-               FIL_, 0xCC, 0x82, FIL_, 0xC5, 0xB5, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBA, 0x81, FIL_, 0xCC, 0xA3,
-               FIL_, 0xE1, 0xBA, 0x89, FIL_, 0xCC, 0x88, FIL_,
-               0xE1, 0xBA, 0x85, FIL_, 0x02, 0xCC, 0x87, FIL_,
-               0xE1, 0xBA, 0x8B, FIL_, 0xCC, 0x88, FIL_, 0xE1,
-               0xBA, 0x8D, FIL_, 0x0A, 0xCC, 0x87, FIL_, 0xE1,
-               0xBA, 0x8F, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB,
-               0xB5, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0xB7,
-               FIL_, 0xCC, 0x8A, FIL_, 0xE1, 0xBA, 0x99, FIL_,
-               0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xB3, FIL_, 0xCC,
-               0x83, FIL_, 0xE1, 0xBB, 0xB9, FIL_, 0xCC, 0x88,
-               FIL_, 0xC3, 0xBF, FIL_, 0xCC, 0x81, FIL_, 0xC3,
-               0xBD, FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xB3, FIL_,
-               0xCC, 0x82, FIL_, 0xC5, 0xB7, FIL_, 0x06, 0xCC,
-               0xB1, FIL_, 0xE1, 0xBA, 0x95, FIL_, 0xCC, 0xA3,
-               FIL_, 0xE1, 0xBA, 0x93, FIL_, 0xCC, 0x82, FIL_,
-               0xE1, 0xBA, 0x91, FIL_, 0xCC, 0x81, FIL_, 0xC5,
-               0xBA, FIL_, 0xCC, 0x87, FIL_, 0xC5, 0xBC, FIL_,
-               0xCC, 0x8C, FIL_, 0xC5, 0xBE, FIL_, 0x03, 0xCC,
-               0x80, FIL_, 0xE1, 0xBF, 0xAD, FIL_, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBF, 0x81, FIL_, 0xCC, 0x81, FIL_,
-               0xCE, 0x85, FIL_, 0x04, 0xCC, 0x83, FIL_, 0xE1,
-               0xBA, 0xAA, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA,
-               0xA4, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA8,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xA6, FIL_,
-               0x01, 0xCC, 0x84, FIL_, 0xC7, 0x9E, FIL_, 0x01,
-               0xCC, 0x81, FIL_, 0xC7, 0xBA, FIL_, 0x02, 0xCC,
-               0x84, FIL_, 0xC7, 0xA2, FIL_, 0xCC, 0x81, FIL_,
-               0xC7, 0xBC, FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1,
-               0xB8, 0x88, FIL_, 0x04, 0xCC, 0x83, FIL_, 0xE1,
-               0xBB, 0x84, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB,
-               0x80, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x82,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xBE, FIL_,
-               0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xAE, FIL_,
-               0x04, 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x90, FIL_,
-               0xCC, 0x80, FIL_, 0xE1, 0xBB, 0x92, FIL_, 0xCC,
-               0x89, FIL_, 0xE1, 0xBB, 0x94, FIL_, 0xCC, 0x83,
-               FIL_, 0xE1, 0xBB, 0x96, FIL_, 0x03, 0xCC, 0x84,
-               FIL_, 0xC8, 0xAC, FIL_, 0xCC, 0x88, FIL_, 0xE1,
-               0xB9, 0x8E, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xB9,
-               0x8C, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAA,
-               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xC7, 0xBE, FIL_,
-               0x04, 0xCC, 0x80, FIL_, 0xC7, 0x9B, FIL_, 0xCC,
-               0x84, FIL_, 0xC7, 0x95, FIL_, 0xCC, 0x8C, FIL_,
-               0xC7, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC7, 0x97,
-               FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xA5,
-               FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBA, 0xAB, FIL_,
-               0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA9, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBA, 0xA7, FIL_, 0x01, 0xCC,
-               0x84, FIL_, 0xC7, 0x9F, FIL_, 0x01, 0xCC, 0x81,
-               FIL_, 0xC7, 0xBB, FIL_, 0x02, 0xCC, 0x81, FIL_,
-               0xC7, 0xBD, FIL_, 0xCC, 0x84, FIL_, 0xC7, 0xA3,
-               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x89,
-               FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x83,
-               FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0x85, FIL_,
-               0xCC, 0x80, FIL_, 0xE1, 0xBB, 0x81, FIL_, 0xCC,
-               0x81, FIL_, 0xE1, 0xBA, 0xBF, FIL_, 0x01, 0xCC,
-               0x81, FIL_, 0xE1, 0xB8, 0xAF, FIL_, 0x04, 0xCC,
-               0x80, FIL_, 0xE1, 0xBB, 0x93, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xBB, 0x91, FIL_, 0xCC, 0x83, FIL_,
-               0xE1, 0xBB, 0x97, FIL_, 0xCC, 0x89, FIL_, 0xE1,
-               0xBB, 0x95, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1,
-               0xB9, 0x8D, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB9,
-               0x8F, FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xAD, FIL_,
-               0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAB, FIL_, 0x01,
-               0xCC, 0x81, FIL_, 0xC7, 0xBF, FIL_, 0x04, 0xCC,
-               0x8C, FIL_, 0xC7, 0x9A, FIL_, 0xCC, 0x84, FIL_,
-               0xC7, 0x96, FIL_, 0xCC, 0x80, FIL_, 0xC7, 0x9C,
-               FIL_, 0xCC, 0x81, FIL_, 0xC7, 0x98, FIL_, 0x04,
-               0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xAE, FIL_, 0xCC,
-               0x83, FIL_, 0xE1, 0xBA, 0xB4, FIL_, 0xCC, 0x89,
-               FIL_, 0xE1, 0xBA, 0xB2, FIL_, 0xCC, 0x80, FIL_,
-               0xE1, 0xBA, 0xB0, FIL_, 0x04, 0xCC, 0x83, FIL_,
-               0xE1, 0xBA, 0xB5, FIL_, 0xCC, 0x80, FIL_, 0xE1,
-               0xBA, 0xB1, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA,
-               0xAF, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xB3,
-               FIL_, 0x02, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x96,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x94, FIL_,
-               0x02, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x95, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x97, FIL_, 0x02,
-               0xCC, 0x80, FIL_, 0xE1, 0xB9, 0x90, FIL_, 0xCC,
-               0x81, FIL_, 0xE1, 0xB9, 0x92, FIL_, 0x02, 0xCC,
-               0x81, FIL_, 0xE1, 0xB9, 0x93, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xB9, 0x91, FIL_, 0x01, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0xA4, FIL_, 0x01, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0xA5, FIL_, 0x01, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0xA6, FIL_, 0x01, 0xCC, 0x87,
-               FIL_, 0xE1, 0xB9, 0xA7, FIL_, 0x01, 0xCC, 0x81,
-               FIL_, 0xE1, 0xB9, 0xB8, FIL_, 0x01, 0xCC, 0x81,
-               FIL_, 0xE1, 0xB9, 0xB9, FIL_, 0x01, 0xCC, 0x88,
-               FIL_, 0xE1, 0xB9, 0xBA, FIL_, 0x01, 0xCC, 0x88,
-               FIL_, 0xE1, 0xB9, 0xBB, FIL_, 0x01, 0xCC, 0x87,
-               FIL_, 0xE1, 0xBA, 0x9B, FIL_, 0x05, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBB, 0x9C, FIL_, 0xCC, 0x89, FIL_,
-               0xE1, 0xBB, 0x9E, FIL_, 0xCC, 0x83, FIL_, 0xE1,
-               0xBB, 0xA0, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB,
-               0x9A, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xA2,
-               FIL_, 0x05, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xA1,
-               FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xA3, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x9B, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBB, 0x9D, FIL_, 0xCC, 0x89,
-               FIL_, 0xE1, 0xBB, 0x9F, FIL_, 0x05, 0xCC, 0x81,
-               FIL_, 0xE1, 0xBB, 0xA8, FIL_, 0xCC, 0x80, FIL_,
-               0xE1, 0xBB, 0xAA, FIL_, 0xCC, 0x89, FIL_, 0xE1,
-               0xBB, 0xAC, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB,
-               0xAE, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xB0,
-               FIL_, 0x05, 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xAB,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0xA9, FIL_,
-               0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xAF, FIL_, 0xCC,
-               0xA3, FIL_, 0xE1, 0xBB, 0xB1, FIL_, 0xCC, 0x89,
-               FIL_, 0xE1, 0xBB, 0xAD, FIL_, 0x01, 0xCC, 0x8C,
-               FIL_, 0xC7, 0xAE, FIL_, 0x01, 0xCC, 0x84, FIL_,
-               0xC7, 0xAC, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7,
-               0xAD, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA0,
-               FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA1, FIL_,
-               0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9C, FIL_,
-               0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9D, FIL_,
-               0x01, 0xCC, 0x84, FIL_, 0xC8, 0xB0, FIL_, 0x01,
-               0xCC, 0x84, FIL_, 0xC8, 0xB1, FIL_, 0x01, 0xCC,
-               0x8C, FIL_, 0xC7, 0xAF, FIL_, 0x07, 0xCC, 0x93,
-               FIL_, 0xE1, 0xBC, 0x88, FIL_, 0xCC, 0x81, FIL_,
-               0xCE, 0x86, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBE,
-               0xB8, FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xBE, 0xB9,
-               FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBC, 0x89, FIL_,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xBC, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBE, 0xBA, FIL_, 0x04, 0xCC,
-               0x94, FIL_, 0xE1, 0xBC, 0x99, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBF, 0x88, FIL_, 0xCC, 0x81, FIL_,
-               0xCE, 0x88, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC,
-               0x98, FIL_, 0x05, 0xCD, 0x85, FIL_, 0xE1, 0xBF,
-               0x8C, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x89, FIL_,
-               0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x8A, FIL_, 0xCC,
-               0x93, FIL_, 0xE1, 0xBC, 0xA8, FIL_, 0xCC, 0x94,
-               FIL_, 0xE1, 0xBC, 0xA9, FIL_, 0x07, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBF, 0x9A, FIL_, 0xCC, 0x84, FIL_,
-               0xE1, 0xBF, 0x99, FIL_, 0xCC, 0x93, FIL_, 0xE1,
-               0xBC, 0xB8, FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBC,
-               0xB9, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF, 0x98,
-               FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x8A, FIL_, 0xCC,
-               0x88, FIL_, 0xCE, 0xAA, FIL_, 0x04, 0xCC, 0x81,
-               FIL_, 0xCE, 0x8C, FIL_, 0xCC, 0x94, FIL_, 0xE1,
-               0xBD, 0x89, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD,
-               0x88, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0xB8,
-               FIL_, 0x01, 0xCC, 0x94, FIL_, 0xE1, 0xBF, 0xAC,
-               FIL_, 0x06, 0xCC, 0x94, FIL_, 0xE1, 0xBD, 0x99,
-               FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF, 0xA8, FIL_,
-               0xCC, 0x88, FIL_, 0xCE, 0xAB, FIL_, 0xCC, 0x84,
-               FIL_, 0xE1, 0xBF, 0xA9, FIL_, 0xCC, 0x81, FIL_,
-               0xCE, 0x8E, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF,
-               0xAA, FIL_, 0x05, 0xCC, 0x93, FIL_, 0xE1, 0xBD,
-               0xA8, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xBC,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0xBA, FIL_,
-               0xCC, 0x94, FIL_, 0xE1, 0xBD, 0xA9, FIL_, 0xCC,
-               0x81, FIL_, 0xCE, 0x8F, FIL_, 0x01, 0xCD, 0x85,
-               FIL_, 0xE1, 0xBE, 0xB4, FIL_, 0x01, 0xCD, 0x85,
-               FIL_, 0xE1, 0xBF, 0x84, FIL_, 0x08, 0xCD, 0x85,
-               FIL_, 0xE1, 0xBE, 0xB3, FIL_, 0xCC, 0x84, FIL_,
-               0xE1, 0xBE, 0xB1, FIL_, 0xCC, 0x86, FIL_, 0xE1,
-               0xBE, 0xB0, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD,
-               0xB0, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAC, FIL_,
-               0xCC, 0x94, FIL_, 0xE1, 0xBC, 0x81, FIL_, 0xCC,
-               0x93, FIL_, 0xE1, 0xBC, 0x80, FIL_, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBE, 0xB6, FIL_, 0x04, 0xCC, 0x93,
-               FIL_, 0xE1, 0xBC, 0x90, FIL_, 0xCC, 0x80, FIL_,
-               0xE1, 0xBD, 0xB2, FIL_, 0xCC, 0x94, FIL_, 0xE1,
-               0xBC, 0x91, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAD,
-               FIL_, 0x06, 0xCC, 0x94, FIL_, 0xE1, 0xBC, 0xA1,
-               FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAE, FIL_, 0xCD,
-               0x85, FIL_, 0xE1, 0xBF, 0x83, FIL_, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBF, 0x86, FIL_, 0xCC, 0x93, FIL_,
-               0xE1, 0xBC, 0xA0, FIL_, 0xCC, 0x80, FIL_, 0xE1,
-               0xBD, 0xB4, FIL_, 0x08, 0xCC, 0x88, FIL_, 0xCF,
-               0x8A, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAF, FIL_,
-               0xCC, 0x93, FIL_, 0xE1, 0xBC, 0xB0, FIL_, 0xCC,
-               0x94, FIL_, 0xE1, 0xBC, 0xB1, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBD, 0xB6, FIL_, 0xCC, 0x86, FIL_,
-               0xE1, 0xBF, 0x90, FIL_, 0xCC, 0x84, FIL_, 0xE1,
-               0xBF, 0x91, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF,
-               0x96, FIL_, 0x04, 0xCC, 0x93, FIL_, 0xE1, 0xBD,
-               0x80, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xB8,
-               FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBD, 0x81, FIL_,
-               0xCC, 0x81, FIL_, 0xCF, 0x8C, FIL_, 0x02, 0xCC,
-               0x93, FIL_, 0xE1, 0xBF, 0xA4, FIL_, 0xCC, 0x94,
-               FIL_, 0xE1, 0xBF, 0xA5, FIL_, 0x08, 0xCC, 0x81,
-               FIL_, 0xCF, 0x8D, FIL_, 0xCC, 0x94, FIL_, 0xE1,
-               0xBD, 0x91, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF,
-               0xA6, FIL_, 0xCC, 0x88, FIL_, 0xCF, 0x8B, FIL_,
-               0xCC, 0x84, FIL_, 0xE1, 0xBF, 0xA1, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBD, 0xBA, FIL_, 0xCC, 0x93,
-               FIL_, 0xE1, 0xBD, 0x90, FIL_, 0xCC, 0x86, FIL_,
-               0xE1, 0xBF, 0xA0, FIL_, 0x06, 0xCC, 0x80, FIL_,
-               0xE1, 0xBD, 0xBC, FIL_, 0xCC, 0x94, FIL_, 0xE1,
-               0xBD, 0xA1, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD,
-               0xA0, FIL_, 0xCC, 0x81, FIL_, 0xCF, 0x8E, FIL_,
-               0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB3, FIL_, 0xCD,
-               0x82, FIL_, 0xE1, 0xBF, 0xB6, FIL_, 0x03, 0xCC,
-               0x80, FIL_, 0xE1, 0xBF, 0x92, FIL_, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBF, 0x97, FIL_, 0xCC, 0x81, FIL_,
-               0xCE, 0x90, FIL_, 0x03, 0xCD, 0x82, FIL_, 0xE1,
-               0xBF, 0xA7, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF,
-               0xA2, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xB0, FIL_,
-               0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB4, FIL_,
-               0x02, 0xCC, 0x88, FIL_, 0xCF, 0x94, FIL_, 0xCC,
-               0x81, FIL_, 0xCF, 0x93, FIL_, 0x01, 0xCC, 0x88,
-               FIL_, 0xD0, 0x87, FIL_, 0x02, 0xCC, 0x88, FIL_,
-               0xD3, 0x92, FIL_, 0xCC, 0x86, FIL_, 0xD3, 0x90,
-               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD0, 0x83, FIL_,
-               0x03, 0xCC, 0x88, FIL_, 0xD0, 0x81, FIL_, 0xCC,
-               0x80, FIL_, 0xD0, 0x80, FIL_, 0xCC, 0x86, FIL_,
-               0xD3, 0x96, FIL_, 0x02, 0xCC, 0x86, FIL_, 0xD3,
-               0x81, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x9C, FIL_,
-               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9E, FIL_, 0x04,
-               0xCC, 0x84, FIL_, 0xD3, 0xA2, FIL_, 0xCC, 0x88,
-               FIL_, 0xD3, 0xA4, FIL_, 0xCC, 0x86, FIL_, 0xD0,
-               0x99, FIL_, 0xCC, 0x80, FIL_, 0xD0, 0x8D, FIL_,
-               0x01, 0xCC, 0x81, FIL_, 0xD0, 0x8C, FIL_, 0x01,
-               0xCC, 0x88, FIL_, 0xD3, 0xA6, FIL_, 0x04, 0xCC,
-               0x8B, FIL_, 0xD3, 0xB2, FIL_, 0xCC, 0x88, FIL_,
-               0xD3, 0xB0, FIL_, 0xCC, 0x86, FIL_, 0xD0, 0x8E,
-               FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xAE, FIL_, 0x01,
-               0xCC, 0x88, FIL_, 0xD3, 0xB4, FIL_, 0x01, 0xCC,
-               0x88, FIL_, 0xD3, 0xB8, FIL_, 0x01, 0xCC, 0x88,
-               FIL_, 0xD3, 0xAC, FIL_, 0x02, 0xCC, 0x86, FIL_,
-               0xD3, 0x91, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x93,
-               FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD1, 0x93, FIL_,
-               0x03, 0xCC, 0x80, FIL_, 0xD1, 0x90, FIL_, 0xCC,
-               0x86, FIL_, 0xD3, 0x97, FIL_, 0xCC, 0x88, FIL_,
-               0xD1, 0x91, FIL_, 0x02, 0xCC, 0x86, FIL_, 0xD3,
-               0x82, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x9D, FIL_,
-               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9F, FIL_, 0x04,
-               0xCC, 0x86, FIL_, 0xD0, 0xB9, FIL_, 0xCC, 0x88,
-               FIL_, 0xD3, 0xA5, FIL_, 0xCC, 0x84, FIL_, 0xD3,
-               0xA3, FIL_, 0xCC, 0x80, FIL_, 0xD1, 0x9D, FIL_,
-               0x01, 0xCC, 0x81, FIL_, 0xD1, 0x9C, FIL_, 0x01,
-               0xCC, 0x88, FIL_, 0xD3, 0xA7, FIL_, 0x04, 0xCC,
-               0x8B, FIL_, 0xD3, 0xB3, FIL_, 0xCC, 0x84, FIL_,
-               0xD3, 0xAF, FIL_, 0xCC, 0x86, FIL_, 0xD1, 0x9E,
-               FIL_, 0xCC, 0x88, FIL_, 0xD3, 0xB1, FIL_, 0x01,
-               0xCC, 0x88, FIL_, 0xD3, 0xB5, FIL_, 0x01, 0xCC,
-               0x88, FIL_, 0xD3, 0xB9, FIL_, 0x01, 0xCC, 0x88,
-               FIL_, 0xD3, 0xAD, FIL_, 0x01, 0xCC, 0x88, FIL_,
-               0xD1, 0x97, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1,
-               0xB6, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1, 0xB7,
-               FIL_, 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9A, FIL_,
-               0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9B, FIL_, 0x01,
-               0xCC, 0x88, FIL_, 0xD3, 0xAA, FIL_, 0x01, 0xCC,
-               0x88, FIL_, 0xD3, 0xAB, FIL_, 0x03, 0xD9, 0x94,
-               FIL_, 0xD8, 0xA3, FIL_, 0xD9, 0x95, FIL_, 0xD8,
-               0xA5, FIL_, 0xD9, 0x93, FIL_, 0xD8, 0xA2, FIL_,
-               0x01, 0xD9, 0x94, FIL_, 0xD8, 0xA4, FIL_, 0x01,
-               0xD9, 0x94, FIL_, 0xD8, 0xA6, FIL_, 0x01, 0xD9,
-               0x94, FIL_, 0xDB, 0x82, FIL_, 0x01, 0xD9, 0x94,
-               FIL_, 0xDB, 0x93, FIL_, 0x01, 0xD9, 0x94, FIL_,
-               0xDB, 0x80, FIL_, 0x01, 0xE0, 0xA4, 0xBC, FIL_,
-               0xE0, 0xA4, 0xA9, FIL_, 0x01, 0xE0, 0xA4, 0xBC,
-               FIL_, 0xE0, 0xA4, 0xB1, FIL_, 0x01, 0xE0, 0xA4,
-               0xBC, FIL_, 0xE0, 0xA4, 0xB4, FIL_, 0x02, 0xE0,
-               0xA6, 0xBE, FIL_, 0xE0, 0xA7, 0x8B, FIL_, 0xE0,
-               0xA7, 0x97, FIL_, 0xE0, 0xA7, 0x8C, FIL_, 0x03,
-               0xE0, 0xAD, 0x96, FIL_, 0xE0, 0xAD, 0x88, FIL_,
-               0xE0, 0xAC, 0xBE, FIL_, 0xE0, 0xAD, 0x8B, FIL_,
-               0xE0, 0xAD, 0x97, FIL_, 0xE0, 0xAD, 0x8C, FIL_,
-               0x01, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAE, 0x94,
-               FIL_, 0x02, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAF,
-               0x8C, FIL_, 0xE0, 0xAE, 0xBE, FIL_, 0xE0, 0xAF,
-               0x8A, FIL_, 0x01, 0xE0, 0xAE, 0xBE, FIL_, 0xE0,
-               0xAF, 0x8B, FIL_, 0x01, 0xE0, 0xB1, 0x96, FIL_,
-               0xE0, 0xB1, 0x88, FIL_, 0x01, 0xE0, 0xB3, 0x95,
-               FIL_, 0xE0, 0xB3, 0x80, FIL_, 0x03, 0xE0, 0xB3,
-               0x82, FIL_, 0xE0, 0xB3, 0x8A, FIL_, 0xE0, 0xB3,
-               0x96, FIL_, 0xE0, 0xB3, 0x88, FIL_, 0xE0, 0xB3,
-               0x95, FIL_, 0xE0, 0xB3, 0x87, FIL_, 0x01, 0xE0,
-               0xB3, 0x95, FIL_, 0xE0, 0xB3, 0x8B, FIL_, 0x02,
-               0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8A, FIL_,
-               0xE0, 0xB5, 0x97, FIL_, 0xE0, 0xB5, 0x8C, FIL_,
-               0x01, 0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8B,
-               FIL_, 0x03, 0xE0, 0xB7, 0x9F, FIL_, 0xE0, 0xB7,
-               0x9E, FIL_, 0xE0, 0xB7, 0x8A, FIL_, 0xE0, 0xB7,
-               0x9A, FIL_, 0xE0, 0xB7, 0x8F, FIL_, 0xE0, 0xB7,
-               0x9C, FIL_, 0x01, 0xE0, 0xB7, 0x8A, FIL_, 0xE0,
-               0xB7, 0x9D, FIL_, 0x01, 0xE1, 0x80, 0xAE, FIL_,
-               0xE1, 0x80, 0xA6, FIL_, 0x01, 0xE1, 0xAC, 0xB5,
-               FIL_, 0xE1, 0xAC, 0x86, FIL_, 0x01, 0xE1, 0xAC,
-               0xB5, FIL_, 0xE1, 0xAC, 0x88, FIL_, 0x01, 0xE1,
-               0xAC, 0xB5, FIL_, 0xE1, 0xAC, 0x8A, FIL_, 0x01,
-               0xE1, 0xAC, 0xB5, FIL_, 0xE1, 0xAC, 0x8C, FIL_,
-               0x01, 0xE1, 0xAC, 0xB5, FIL_, 0xE1, 0xAC, 0x8E,
-               FIL_, 0x01, 0xE1, 0xAC, 0xB5, FIL_, 0xE1, 0xAC,
-               0x92, FIL_, 0x01, 0xE1, 0xAC, 0xB5, FIL_, 0xE1,
-               0xAC, 0xBB, FIL_, 0x01, 0xE1, 0xAC, 0xB5, FIL_,
-               0xE1, 0xAC, 0xBD, FIL_, 0x01, 0xE1, 0xAC, 0xB5,
-               FIL_, 0xE1, 0xAD, 0x80, FIL_, 0x01, 0xE1, 0xAC,
-               0xB5, FIL_, 0xE1, 0xAD, 0x81, FIL_, 0x01, 0xE1,
-               0xAC, 0xB5, FIL_, 0xE1, 0xAD, 0x83, FIL_, 0x01,
-               0xCC, 0x84, FIL_, 0xE1, 0xB8, 0xB8, FIL_, 0x01,
-               0xCC, 0x84, FIL_, 0xE1, 0xB8, 0xB9, FIL_, 0x01,
-               0xCC, 0x84, FIL_, 0xE1, 0xB9, 0x9C, FIL_, 0x01,
-               0xCC, 0x84, FIL_, 0xE1, 0xB9, 0x9D, FIL_, 0x01,
-               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA8, FIL_, 0x01,
-               0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA9, FIL_, 0x02,
-               0xCC, 0x86, FIL_, 0xE1, 0xBA, 0xB6, FIL_, 0xCC,
-               0x82, FIL_, 0xE1, 0xBA, 0xAC, FIL_, 0x02, 0xCC,
-               0x82, FIL_, 0xE1, 0xBA, 0xAD, FIL_, 0xCC, 0x86,
-               FIL_, 0xE1, 0xBA, 0xB7, FIL_, 0x01, 0xCC, 0x82,
-               FIL_, 0xE1, 0xBB, 0x86, FIL_, 0x01, 0xCC, 0x82,
-               FIL_, 0xE1, 0xBB, 0x87, FIL_, 0x01, 0xCC, 0x82,
-               FIL_, 0xE1, 0xBB, 0x98, FIL_, 0x01, 0xCC, 0x82,
-               FIL_, 0xE1, 0xBB, 0x99, FIL_, 0x04, 0xCD, 0x85,
-               FIL_, 0xE1, 0xBE, 0x80, FIL_, 0xCD, 0x82, FIL_,
-               0xE1, 0xBC, 0x86, FIL_, 0xCC, 0x80, FIL_, 0xE1,
-               0xBC, 0x82, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC,
-               0x84, FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBC,
-               0x87, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x85,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x83, FIL_,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x81, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x82, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x83, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x84, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x85, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x86, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x87, FIL_, 0x04,
-               0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x8C, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBC, 0x8A, FIL_, 0xCD, 0x85,
-               FIL_, 0xE1, 0xBE, 0x88, FIL_, 0xCD, 0x82, FIL_,
-               0xE1, 0xBC, 0x8E, FIL_, 0x04, 0xCC, 0x80, FIL_,
-               0xE1, 0xBC, 0x8B, FIL_, 0xCD, 0x82, FIL_, 0xE1,
-               0xBC, 0x8F, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC,
-               0x8D, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x89,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8A,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8B,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8C,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8D,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8E,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8F,
-               FIL_, 0x02, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x92,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x94, FIL_,
-               0x02, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x93, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x95, FIL_, 0x02,
-               0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x9A, FIL_, 0xCC,
-               0x81, FIL_, 0xE1, 0xBC, 0x9C, FIL_, 0x02, 0xCC,
-               0x80, FIL_, 0xE1, 0xBC, 0x9B, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xBC, 0x9D, FIL_, 0x04, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBC, 0xA2, FIL_, 0xCC, 0x81, FIL_,
-               0xE1, 0xBC, 0xA4, FIL_, 0xCD, 0x82, FIL_, 0xE1,
-               0xBC, 0xA6, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE,
-               0x90, FIL_, 0x04, 0xCD, 0x85, FIL_, 0xE1, 0xBE,
-               0x91, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xA5,
-               FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xA7, FIL_,
-               0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xA3, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x92, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x93, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x94, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x95, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x96, FIL_, 0x01,
-               0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x97, FIL_, 0x04,
-               0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xAC, FIL_, 0xCC,
-               0x80, FIL_, 0xE1, 0xBC, 0xAA, FIL_, 0xCD, 0x85,
-               FIL_, 0xE1, 0xBE, 0x98, FIL_, 0xCD, 0x82, FIL_,
-               0xE1, 0xBC, 0xAE, FIL_, 0x04, 0xCD, 0x82, FIL_,
-               0xE1, 0xBC, 0xAF, FIL_, 0xCD, 0x85, FIL_, 0xE1,
-               0xBE, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC,
-               0xAD, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xAB,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9A,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9B,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9C,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9D,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9E,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9F,
-               FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xB4,
-               FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xB2, FIL_,
-               0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xB6, FIL_, 0x03,
-               0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xB3, FIL_, 0xCD,
-               0x82, FIL_, 0xE1, 0xBC, 0xB7, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xBC, 0xB5, FIL_, 0x03, 0xCC, 0x81,
-               FIL_, 0xE1, 0xBC, 0xBC, FIL_, 0xCC, 0x80, FIL_,
-               0xE1, 0xBC, 0xBA, FIL_, 0xCD, 0x82, FIL_, 0xE1,
-               0xBC, 0xBE, FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1,
-               0xBC, 0xBB, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC,
-               0xBF, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xBD,
-               FIL_, 0x02, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x82,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x84, FIL_,
-               0x02, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x85, FIL_,
-               0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x83, FIL_, 0x02,
-               0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x8A, FIL_, 0xCC,
-               0x81, FIL_, 0xE1, 0xBD, 0x8C, FIL_, 0x02, 0xCC,
-               0x80, FIL_, 0xE1, 0xBD, 0x8B, FIL_, 0xCC, 0x81,
-               FIL_, 0xE1, 0xBD, 0x8D, FIL_, 0x03, 0xCD, 0x82,
-               FIL_, 0xE1, 0xBD, 0x96, FIL_, 0xCC, 0x80, FIL_,
-               0xE1, 0xBD, 0x92, FIL_, 0xCC, 0x81, FIL_, 0xE1,
-               0xBD, 0x94, FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1,
-               0xBD, 0x93, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD,
-               0x97, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x95,
-               FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x9B,
-               FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0x9F, FIL_,
-               0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x9D, FIL_, 0x04,
-               0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xA6, FIL_, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0xA0, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBD, 0xA2, FIL_, 0xCC, 0x81, FIL_,
-               0xE1, 0xBD, 0xA4, FIL_, 0x04, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0xA1, FIL_, 0xCD, 0x82, FIL_, 0xE1,
-               0xBD, 0xA7, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD,
-               0xA5, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xA3,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA2,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA3,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA4,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA5,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA6,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA7,
-               FIL_, 0x04, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xAA,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0xAC, FIL_,
-               0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xAE, FIL_, 0xCD,
-               0x85, FIL_, 0xE1, 0xBE, 0xA8, FIL_, 0x04, 0xCD,
-               0x82, FIL_, 0xE1, 0xBD, 0xAF, FIL_, 0xCC, 0x80,
-               FIL_, 0xE1, 0xBD, 0xAB, FIL_, 0xCD, 0x85, FIL_,
-               0xE1, 0xBE, 0xA9, FIL_, 0xCC, 0x81, FIL_, 0xE1,
-               0xBD, 0xAD, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
-               0xBE, 0xAA, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
-               0xBE, 0xAB, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
-               0xBE, 0xAC, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
-               0xBE, 0xAD, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
-               0xBE, 0xAE, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
-               0xBE, 0xAF, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
-               0xBE, 0xB2, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
-               0xBF, 0x82, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
-               0xBF, 0xB2, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1,
-               0xBE, 0xB7, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1,
-               0xBF, 0x8E, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF,
-               0x8D, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0x8F,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0x87,
-               FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB7,
-               FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x9D,
-               FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBF, 0x9E, FIL_,
-               0xCD, 0x82, FIL_, 0xE1, 0xBF, 0x9F, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x86, 0x9A, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x86, 0x9B, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x86, 0xAE, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x87, 0x8D, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x87, 0x8F, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x87, 0x8E, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x88, 0x84, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x88, 0x89, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x88, 0x8C, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x88, 0xA4, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x88, 0xA6, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x81, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x84, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x87, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x89, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAD, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xA2, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB0, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB1, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB4, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB5, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB8, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB9, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x80, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x81, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA0, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA1, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x84, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x85, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x88, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x89, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA2, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA3, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAC, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAD, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAE, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAF, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAA, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAB, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAC, FIL_, 0x01,
-               0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAD, FIL_, 0x01,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0x94, FIL_,
-               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x8C,
-               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81,
-               0x8E, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x81, 0x90, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x81, 0x92, FIL_, 0x01, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x81, 0x94, FIL_, 0x01, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x81, 0x96, FIL_, 0x01, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x81, 0x98, FIL_, 0x01,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x9A, FIL_,
-               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x9C,
-               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81,
-               0x9E, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x81, 0xA0, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x81, 0xA2, FIL_, 0x01, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x81, 0xA5, FIL_, 0x01, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x81, 0xA7, FIL_, 0x01, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x81, 0xA9, FIL_, 0x02,
-               0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xB1, FIL_,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xB0, FIL_,
-               0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xB3,
-               FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xB4,
-               FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81,
-               0xB6, FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81,
-               0xB7, FIL_, 0x02, 0xE3, 0x82, 0x9A, FIL_, 0xE3,
-               0x81, 0xBA, FIL_, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x81, 0xB9, FIL_, 0x02, 0xE3, 0x82, 0x9A, FIL_,
-               0xE3, 0x81, 0xBD, FIL_, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x81, 0xBC, FIL_, 0x01, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x82, 0x9E, FIL_, 0x01, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x83, 0xB4, FIL_, 0x01, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x82, 0xAC, FIL_, 0x01,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xAE, FIL_,
-               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xB0,
-               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82,
-               0xB2, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x82, 0xB4, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x82, 0xB6, FIL_, 0x01, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x82, 0xB8, FIL_, 0x01, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x82, 0xBA, FIL_, 0x01, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x82, 0xBC, FIL_, 0x01,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xBE, FIL_,
-               0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x80,
-               FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83,
-               0x82, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x83, 0x85, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x83, 0x87, FIL_, 0x01, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x83, 0x89, FIL_, 0x02, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x83, 0x90, FIL_, 0xE3, 0x82,
-               0x9A, FIL_, 0xE3, 0x83, 0x91, FIL_, 0x02, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x83, 0x93, FIL_, 0xE3,
-               0x82, 0x9A, FIL_, 0xE3, 0x83, 0x94, FIL_, 0x02,
-               0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x83, 0x97, FIL_,
-               0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x96, FIL_,
-               0x02, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x83, 0x9A,
-               FIL_, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x99,
-               FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83,
-               0x9C, FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x83,
-               0x9D, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3,
-               0x83, 0xB7, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_,
-               0xE3, 0x83, 0xB8, FIL_, 0x01, 0xE3, 0x82, 0x99,
-               FIL_, 0xE3, 0x83, 0xB9, FIL_, 0x01, 0xE3, 0x82,
-               0x99, FIL_, 0xE3, 0x83, 0xBA, FIL_, 0x01, 0xE3,
-               0x82, 0x99, FIL_, 0xE3, 0x83, 0xBE, FIL_,
-       },
-};
-
-static const uchar_t u8_decomp_b2_tbl[2][2][256] = {
-       {
-               {
-                       0,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       1,  2,  3,  4,  N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, 5,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, 6,  N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, 7,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-
-       },
-       {
-               {
-                       0,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       1,  2,  3,  4,  N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, 5,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, 6,  N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, 7,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-
-       },
-
-};
-
-static const u8_displacement_t u8_decomp_b3_tbl[2][8][256] = {
-       {
-               {       /* Third byte table 0. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 0, 0 },
-                       { 1, 35 }, { 2, 247 }, { 3, 474 },
-                       { 4, 693 }, { 5, 709 }, { 6, 951 },
-                       { N_, 0 }, { 7, 1139 }, { 8, 1152 },
-                       { N_, 0 }, { 9, 1177 }, { 10, 1199 },
-                       { 11, 1295 }, { 12, 1360 }, { 13, 1405 },
-                       { N_, 0 }, { 14, 1450 }, { N_, 0 },
-                       { N_, 0 }, { 15, 1620 }, { N_, 0 },
-                       { 16, 1624 }, { 17, 1649 }, { N_, 0 },
-                       { 18, 1665 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 1. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 19, 1680 },
-                       { 20, 1701 }, { N_, 0 }, { 21, 1757 },
-                       { 22, 1792 }, { 23, 1806 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 24, 1834 },
-                       { 25, 1869 }, { 26, 1876 }, { N_, 0 },
-                       { 27, 1897 }, { N_, 0 }, { 28, 1904 },
-                       { N_, 0 }, { 29, 1942 }, { N_, 0 },
-                       { 30, 1963 }, { 31, 1994 }, { N_, 0 },
-                       { 32, 2000 }, { 33, 2006 }, { 34, 2018 },
-                       { 35, 2021 }, { 36, 2109 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 2. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 37, 2158 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 0x8000, 2165 }, { 0x8001, 2445 },
-                       { 0x8002, 2741 }, { 0x8003, 3029 }, { 0x8004, 3337 },
-                       { 0x8005, 3725 }, { 0x8006, 4053 }, { 0x8007, 4536 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 3. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 38, 4895 },
-                       { 39, 4964 }, { 40, 4999 }, { N_, 0 },
-                       { 41, 5018 }, { 42, 5098 }, { 43, 5230 },
-                       { 44, 5248 }, { 45, 5266 }, { 46, 5326 },
-                       { 47, 5410 }, { 48, 5470 }, { 49, 5518 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 50, 5526 }, { 51, 5596 },
-                       { 52, 5767 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 53, 5810 }, { 54, 5822 }, { N_, 0 },
-                       { 55, 5830 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 56, 5836 }, { 57, 5839 }, { 58, 5842 },
-                       { 59, 6034 }, { 60, 6226 }, { 61, 6418 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 4. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 62, 6484 },
-                       { 63, 6497 }, { 64, 6672 }, { 65, 6770 },
-                       { 66, 6923 }, { 67, 6968 }, { 68, 7160 },
-                       { N_, 0 }, { 0x8008, 7247 }, { 69, 7597 },
-                       { 70, 7773 }, { 71, 7950 }, { 0x8009, 8142 },
-                       { 0x800A, 8919 }, { 72, 9351 }, { 73, 9522 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 5. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 0x800B, 9743 },
-                       { 0x800C, 9999 }, { 0x800D, 10255 }, { 0x800E, 10511 },
-                       { 74, 10767 }, { 75, 10967 }, { N_, 0 },
-                       { N_, 0 }, { 76, 11139 }, { 77, 11303 },
-                       { 78, 11468 }, { 79, 11576 }, { 0x800F, 11740 },
-                       { 0x8010, 12006 }, { 0x8011, 12280 }, { 0x8012, 12546 },
-                       { 80, 12812 }, { 0x8013, 13060 }, { 0x8014, 13348 },
-                       { 81, 13720 }, { 82, 13898 }, { 83, 13933 },
-                       { 84, 14045 }, { 85, 14197 }, { 86, 14347 },
-                       { 87, 14410 }, { 88, 14540 }, { 89, 14729 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 6. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 90, 14829 }, { 91, 14912 },
-                       { 92, 14969 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 93, 14982 }, { 94, 15046 }, { 95, 15109 },
-                       { 96, 15163 }, { 97, 15225 }, { 98, 15282 },
-                       { 99, 15341 }, { 100, 15405 }, { 101, 15469 },
-                       { 102, 15533 }, { 103, 15597 }, { 104, 15681 },
-                       { 105, 15812 }, { 106, 15942 }, { 107, 16072 },
-                       { 108, 16202 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 7. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 0x8015, 16273 }, { 0x8016, 16536 },
-                       { 0x8017, 16799 }, { 0x8018, 17064 }, { 0x8019, 17329 },
-                       { 0x801A, 17601 }, { 0x801B, 17878 }, { 0x801C, 18147 },
-                       { 109, 18419 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-       },
-       {
-               {       /* Third byte table 0. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 0, 0 },
-                       { 1, 35 }, { 2, 247 }, { 3, 474 },
-                       { 4, 693 }, { 5, 709 }, { 6, 951 },
-                       { N_, 0 }, { 7, 1139 }, { 8, 1152 },
-                       { N_, 0 }, { 9, 1177 }, { 10, 1199 },
-                       { 11, 1295 }, { 12, 1362 }, { 13, 1407 },
-                       { N_, 0 }, { 14, 1452 }, { N_, 0 },
-                       { N_, 0 }, { 15, 1622 }, { N_, 0 },
-                       { 16, 1626 }, { 17, 1651 }, { N_, 0 },
-                       { 18, 1667 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 1. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 19, 1682 },
-                       { 20, 1703 }, { N_, 0 }, { 21, 1759 },
-                       { 22, 1794 }, { 23, 1808 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 24, 1836 },
-                       { 25, 1871 }, { 26, 1878 }, { N_, 0 },
-                       { 27, 1899 }, { N_, 0 }, { 28, 1906 },
-                       { N_, 0 }, { 29, 1944 }, { N_, 0 },
-                       { 30, 1965 }, { 31, 1996 }, { N_, 0 },
-                       { 32, 2002 }, { 33, 2008 }, { 34, 2020 },
-                       { 35, 2023 }, { 36, 2111 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 2. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 37, 2160 },
-                       { N_, 0 }, { N_, 0 }, { 38, 2167 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 39, 2170 }, { 40, 2226 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 41, 2247 }, { 42, 2268 }, { 43, 2340 },
-                       { N_, 0 }, { 0x8000, 2414 }, { 0x8001, 2694 },
-                       { 0x8002, 2990 }, { 0x8003, 3278 }, { 0x8004, 3586 },
-                       { 0x8005, 3974 }, { 0x8006, 4302 }, { 0x8007, 4785 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 3. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 44, 5144 },
-                       { 45, 5213 }, { 46, 5248 }, { N_, 0 },
-                       { 47, 5273 }, { 48, 5358 }, { 49, 5490 },
-                       { 50, 5508 }, { 51, 5526 }, { 52, 5586 },
-                       { 53, 5670 }, { 54, 5730 }, { 55, 5778 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 56, 5786 }, { 57, 5856 },
-                       { 58, 6027 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 59, 6070 }, { 60, 6082 }, { N_, 0 },
-                       { 61, 6090 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 62, 6096 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 63, 6099 }, { 64, 6102 }, { 65, 6105 },
-                       { 66, 6297 }, { 67, 6489 }, { 68, 6681 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 4. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 69, 6747 },
-                       { 70, 6760 }, { 71, 6935 }, { 72, 7033 },
-                       { 73, 7186 }, { 74, 7231 }, { 75, 7423 },
-                       { N_, 0 }, { 0x8008, 7510 }, { 76, 7891 },
-                       { 77, 8103 }, { 78, 8280 }, { 0x8009, 8482 },
-                       { 0x800A, 9259 }, { 79, 9701 }, { 80, 9872 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 5. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 0x800B, 10106 },
-                       { 0x800C, 10362 }, { 0x800D, 10618 }, { 0x800E, 10874 },
-                       { 81, 11130 }, { 82, 11330 }, { 0x800F, 11566 },
-                       { 83, 11822 }, { 84, 11932 }, { 85, 12096 },
-                       { 86, 12261 }, { 87, 12369 }, { 0x8010, 12533 },
-                       { 0x8011, 12799 }, { 0x8012, 13073 }, { 0x8013, 13339 },
-                       { 88, 13605 }, { 0x8014, 13853 }, { 0x8015, 14141 },
-                       { 89, 14513 }, { 90, 14691 }, { 91, 14746 },
-                       { 92, 14860 }, { 93, 15012 }, { 94, 15162 },
-                       { 95, 15225 }, { 96, 15355 }, { 97, 15544 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 6. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 98, 15644 }, { 99, 15727 },
-                       { 100, 15784 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 101, 15797 }, { 102, 15861 }, { 103, 15924 },
-                       { 104, 15978 }, { 105, 16041 }, { 106, 16098 },
-                       { 107, 16157 }, { 108, 16221 }, { 109, 16285 },
-                       { 110, 16349 }, { 111, 16413 }, { 112, 16501 },
-                       { 113, 16632 }, { 114, 16762 }, { 115, 16892 },
-                       { 116, 17022 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-               {       /* Third byte table 7. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 0x8016, 17097 }, { 0x8017, 17360 },
-                       { 0x8018, 17623 }, { 0x8019, 17888 }, { 0x801A, 18153 },
-                       { 0x801B, 18425 }, { 0x801C, 18702 }, { 0x801D, 18971 },
-                       { 117, 19243 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 },
-               },
-       },
-};
-
-static const uchar_t u8_decomp_b4_tbl[2][118][257] = {
-       {
-               {       /* Fourth byte table 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,   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,   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,   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,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   1,   1,   1,   1,   1,   1,
-                       1,   4,   4,   5,   5,   5,   5,   5,
-                       8,   8,   8,   9,   10,  13,  15,  15,
-                       15,  18,  19,  20,  20,  25,  30,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,
-               },
-               {       /* Fourth byte table 1. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  24,
-                       28,  32,  36,  40,  44,  48,  52,  56,
-                       60,  60,  64,  68,  72,  76,  80,  84,
-                       84,  84,  88,  92,  96,  100, 104, 104,
-                       104, 108, 112, 116, 120, 124, 128, 128,
-                       132, 136, 140, 144, 148, 152, 156, 160,
-                       164, 164, 168, 172, 176, 180, 184, 188,
-                       188, 188, 192, 196, 200, 204, 208, 208,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212,
-               },
-               {       /* Fourth byte table 2. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  64,  64,  68,  72,  76,  80,  84,
-                       88,  92,  96,  100, 104, 108, 112, 116,
-                       120, 124, 128, 132, 136, 140, 144, 144,
-                       144, 148, 152, 156, 160, 164, 168, 172,
-                       176, 180, 180, 182, 184, 188, 192, 196,
-                       200, 200, 204, 208, 212, 216, 220, 224,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227,
-               },
-               {       /* Fourth byte table 3. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   3,   7,   11,  15,  19,
-                       23,  27,  30,  30,  30,  34,  38,  42,
-                       46,  50,  54,  54,  54,  58,  62,  66,
-                       70,  74,  78,  82,  86,  90,  94,  98,
-                       102, 106, 110, 114, 118, 122, 126, 126,
-                       126, 130, 134, 138, 142, 146, 150, 154,
-                       158, 162, 166, 170, 174, 178, 182, 186,
-                       190, 194, 198, 202, 206, 210, 214, 218,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219,
-               },
-               {       /* Fourth byte table 4. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       12,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,
-               },
-               {       /* Fourth byte table 5. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   4,   8,   12,
-                       14,  16,  18,  20,  22,  24,  28,  32,
-                       36,  40,  44,  48,  52,  56,  62,  68,
-                       74,  80,  86,  92,  98,  104, 104, 110,
-                       116, 122, 128, 133, 138, 138, 138, 142,
-                       146, 150, 154, 158, 162, 168, 174, 179,
-                       184, 188, 190, 192, 194, 198, 202, 202,
-                       202, 206, 210, 216, 222, 227, 232, 237,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242,
-               },
-               {       /* Fourth byte table 6. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  68,  72,  76,  80,  84,  88,  92,
-                       96,  100, 104, 108, 112, 112, 112, 116,
-                       120, 120, 120, 120, 120, 120, 120, 124,
-                       128, 132, 136, 142, 148, 154, 160, 164,
-                       168, 174, 180, 184, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188,
-               },
-               {       /* Fourth byte table 7. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   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,   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,   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,   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,
-                       0,   1,   3,   4,   5,   7,   9,   11,
-                       12,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,
-               },
-               {       /* Fourth byte table 8. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  18,
-                       18,  20,  21,  22,  23,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,
-               },
-               {       /* Fourth byte table 9. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   6,   9,   14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  17,  17,  17,
-                       17,  17,  17,  20,  20,  20,  20,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,
-               },
-               {       /* Fourth byte table 10. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   3,   14,  19,
-                       22,  27,  32,  37,  37,  42,  42,  47,
-                       52,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  64,  69,  74,  79,  84,
-                       89,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 11. */
-                       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,   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,   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,   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,   5,   10,  15,  20,  25,
-                       25,  27,  29,  31,  41,  51,  53,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  57,  59,  61,  61,  63,  65,  65,
-                       65,  65,  65,  65,  65,  65,  65,  65,
-                       65,  65,  65,  65,  65,  65,  65,  65,
-                       65,  65,  65,  65,  65,  65,  65,  65,
-                       65,  65,  65,  65,  65,  65,  65,  65,
-                       65,  65,  65,  65,  65,  65,  65,  65,
-                       65,  65,  65,  65,  65,  65,  65,  65,
-                       65,  65,  65,  65,  65,  65,  65,  65,
-                       65,  65,  65,  65,  65,  65,  65,  65,
-                       65,  65,  65,  65,  65,  65,  65,  65,
-                       65,
-               },
-               {       /* Fourth byte table 12. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   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,   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,   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,   5,   10,  10,  15,  15,  15,  15,
-                       20,  20,  20,  20,  20,  25,  30,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  40,  40,  40,  40,  40,  40,
-                       40,  40,  40,  40,  40,  40,  40,  40,
-                       40,  40,  40,  40,  40,  40,  40,  40,
-                       40,  40,  40,  40,  40,  40,  40,  40,
-                       40,  40,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,
-               },
-               {       /* Fourth byte table 13. */
-                       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,   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,   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,   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,   5,   10,  10,  15,  15,  15,  15,
-                       20,  20,  20,  20,  20,  25,  30,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  40,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,
-               },
-               {       /* Fourth byte table 14. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   5,   10,  10,  10,  10,  10,
-                       10,  10,  10,  10,  10,  10,  10,  10,
-                       10,  15,  20,  25,  30,  30,  30,  35,
-                       40,  40,  40,  45,  50,  55,  60,  65,
-                       70,  70,  70,  75,  80,  85,  90,  95,
-                       100, 100, 100, 105, 110, 115, 120, 125,
-                       130, 135, 140, 145, 150, 155, 160, 160,
-                       160, 165, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170,
-               },
-               {       /* Fourth byte table 15. */
-                       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,   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,   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,   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,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,
-               },
-               {       /* Fourth byte table 16. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   5,   10,  15,  20,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,
-               },
-               {       /* Fourth byte table 17. */
-                       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,   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,   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,   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,   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,   4,   8,
-                       12,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,
-               },
-               {       /* Fourth byte table 18. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   5,   5,   10,  10,  10,  10,  10,
-                       10,  10,  10,  10,  10,  10,  10,  10,
-                       10,  10,  10,  10,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,
-               },
-               {       /* Fourth byte table 19. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   7,   7,   7,   7,   7,   7,
-                       7,   7,   14,  14,  14,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 20. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   7,   14,  21,  28,  35,  42,  49,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,
-               },
-               {       /* Fourth byte table 21. */
-                       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,   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,   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,   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,   7,   14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  21,  28,  28,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,
-               },
-               {       /* Fourth byte table 22. */
-                       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,   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,   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,   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,   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,   7,   7,   7,   14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,
-               },
-               {       /* Fourth byte table 23. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   7,   14,  21,  21,  21,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,
-               },
-               {       /* Fourth byte table 24. */
-                       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,   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,   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,   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,   7,   7,   7,   14,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  28,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,
-               },
-               {       /* Fourth byte table 25. */
-                       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,   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,   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,   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,   0,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,
-               },
-               {       /* Fourth byte table 26. */
-                       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,   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,   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,   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,   7,   14,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 27. */
-                       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,   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,   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,   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,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,
-               },
-               {       /* Fourth byte table 28. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   7,   7,   7,   7,   7,   7,   7,
-                       14,  21,  21,  28,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,
-               },
-               {       /* Fourth byte table 29. */
-                       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,   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,   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,   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,   7,   14,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 30. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   7,   7,   14,  24,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,
-               },
-               {       /* Fourth byte table 31. */
-                       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,   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,   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,   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,   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,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,
-               },
-               {       /* Fourth byte table 32. */
-                       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,   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,   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,   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,   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,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,
-               },
-               {       /* Fourth byte table 33. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   6,   12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,
-               },
-               {       /* Fourth byte table 34. */
-                       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,   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,   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,   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,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 35. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   14,  14,
-                       14,  14,  14,  21,  21,  21,  21,  21,
-                       28,  28,  28,  28,  28,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  49,  49,  56,  63,
-                       72,  79,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,
-               },
-               {       /* Fourth byte table 36. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  21,  21,
-                       21,  21,  21,  28,  28,  28,  28,  28,
-                       35,  35,  35,  35,  35,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,
-               },
-               {       /* Fourth byte table 37. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,
-               },
-               {       /* Fourth byte table 38. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   6,   12,  13,  14,  15,  16,  17,
-                       18,  19,  20,  21,  21,  21,  21,  21,
-                       21,  21,  24,  24,  24,  24,  24,  24,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  28,  30,  33,
-                       33,  33,  33,  33,  33,  33,  33,  33,
-                       34,  34,  34,  34,  40,  49,  49,  55,
-                       64,  64,  64,  64,  64,  66,  66,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,
-               },
-               {       /* Fourth byte table 39. */
-                       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,   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,   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,   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,
-                       2,   4,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  20,  21,  21,  21,  22,  23,  24,
-                       25,  26,  27,  28,  31,  32,  33,  34,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,
-               },
-               {       /* Fourth byte table 40. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  14,  15,  16,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  17,  17,  17,  17,  17,  17,  17,
-                       17,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,
-               },
-               {       /* Fourth byte table 41. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   7,   10,  10,  13,  16,
-                       18,  18,  21,  22,  23,  24,  25,  26,
-                       28,  29,  30,  31,  32,  32,  33,  35,
-                       35,  35,  36,  37,  38,  39,  40,  40,
-                       40,  42,  45,  47,  47,  48,  48,  51,
-                       51,  52,  52,  54,  58,  59,  60,  60,
-                       61,  62,  63,  63,  64,  65,  67,  69,
-                       71,  73,  74,  74,  74,  74,  76,  78,
-                       80,  80,  80,  80,  80,  80,  80,  80,
-                       80,  80,  80,  80,  80,  80,  80,  80,
-                       80,  80,  80,  80,  80,  80,  80,  80,
-                       80,  80,  80,  80,  80,  80,  80,  80,
-                       80,  80,  80,  80,  80,  80,  80,  80,
-                       80,  80,  80,  80,  80,  80,  80,  80,
-                       80,  80,  80,  80,  80,  80,  80,  80,
-                       80,  80,  80,  80,  80,  80,  80,  80,
-                       80,
-               },
-               {       /* Fourth byte table 42. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   3,   3,   3,   4,   5,
-                       6,   7,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   13,  18,  23,  28,
-                       33,  38,  43,  48,  53,  58,  63,  68,
-                       72,  73,  75,  78,  80,  81,  83,  86,
-                       90,  92,  93,  95,  98,  99,  100, 101,
-                       102, 103, 105, 108, 110, 111, 113, 116,
-                       120, 122, 123, 125, 128, 129, 130, 131,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132,
-               },
-               {       /* Fourth byte table 43. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   6,   12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,
-               },
-               {       /* Fourth byte table 44. */
-                       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,   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,   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,   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,   6,   12,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,
-               },
-               {       /* Fourth byte table 45. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   6,   6,   6,
-                       6,   6,   12,  12,  12,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  24,  24,  30,
-                       30,  30,  30,  30,  30,  36,  45,  45,
-                       51,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,
-               },
-               {       /* Fourth byte table 46. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   6,   6,   6,   12,  12,  12,
-                       18,  18,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  28,  28,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  40,  44,
-                       48,  54,  60,  60,  60,  66,  72,  72,
-                       72,  78,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,
-               },
-               {       /* Fourth byte table 47. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   6,   12,  12,  12,  18,  24,  24,
-                       24,  30,  36,  36,  36,  36,  36,  36,
-                       36,  36,  36,  36,  36,  36,  36,  36,
-                       36,  36,  36,  36,  36,  36,  36,  36,
-                       36,  36,  36,  36,  36,  36,  36,  36,
-                       36,  36,  36,  36,  36,  42,  48,  54,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,
-               },
-               {       /* Fourth byte table 48. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   6,   12,  18,  24,  24,  24,  24,
-                       24,  24,  24,  30,  36,  42,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,
-               },
-               {       /* Fourth byte table 49. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   4,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,
-               },
-               {       /* Fourth byte table 50. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   11,  13,  15,  17,  19,  21,
-                       23,  25,  27,  29,  31,  34,  37,  40,
-                       43,  46,  49,  52,  55,  58,  62,  66,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,
-               },
-               {       /* Fourth byte table 51. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       48,  50,  53,  56,  59,  62,  65,  68,
-                       71,  74,  77,  80,  83,  86,  89,  92,
-                       95,  98,  101, 104, 107, 110, 113, 116,
-                       119, 122, 125, 128, 131, 134, 137, 140,
-                       143, 146, 149, 152, 155, 158, 161, 162,
-                       163, 164, 165, 166, 167, 168, 169, 170,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171,
-               },
-               {       /* Fourth byte table 52. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,
-               },
-               {       /* Fourth byte table 53. */
-                       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,   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,   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,   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,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,
-               },
-               {       /* Fourth byte table 54. */
-                       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,   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,   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,   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,   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,   3,   5,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,
-               },
-               {       /* Fourth byte table 55. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,
-               },
-               {       /* Fourth byte table 56. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 57. */
-                       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,   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,   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,   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,   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,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 58. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 150, 153, 156, 159, 162, 165,
-                       168, 171, 174, 177, 180, 183, 186, 189,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192,
-               },
-               {       /* Fourth byte table 59. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 150, 153, 156, 159, 162, 165,
-                       168, 171, 174, 177, 180, 183, 186, 189,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192,
-               },
-               {       /* Fourth byte table 60. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 150, 153, 156, 159, 162, 165,
-                       168, 171, 174, 177, 180, 183, 186, 189,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192,
-               },
-               {       /* Fourth byte table 61. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,
-               },
-               {       /* Fourth byte table 62. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   4,
-                       4,   7,   10,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,
-               },
-               {       /* Fourth byte table 63. */
-                       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,   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,   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,   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,   7,   7,   14,
-                       14,  21,  21,  28,  28,  35,  35,  42,
-                       42,  49,  49,  56,  56,  63,  63,  70,
-                       70,  77,  77,  84,  84,  84,  91,  91,
-                       98,  98,  105, 105, 105, 105, 105, 105,
-                       105, 112, 119, 119, 126, 133, 133, 140,
-                       147, 147, 154, 161, 161, 168, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175,
-               },
-               {       /* Fourth byte table 64. */
-                       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,   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,   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,   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,   0,   7,   7,   7,
-                       7,   7,   7,   7,   11,  15,  15,  22,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  35,  35,  42,
-                       42,  49,  49,  56,  56,  63,  63,  70,
-                       70,  77,  77,  84,  84,  91,  91,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,
-               },
-               {       /* Fourth byte table 65. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   7,   7,   14,  14,  14,  21,  21,
-                       28,  28,  35,  35,  35,  35,  35,  35,
-                       35,  42,  49,  49,  56,  63,  63,  70,
-                       77,  77,  84,  91,  91,  98,  105, 105,
-                       105, 105, 105, 105, 105, 105, 105, 105,
-                       105, 105, 105, 105, 105, 105, 105, 105,
-                       105, 105, 105, 105, 105, 112, 112, 112,
-                       119, 126, 133, 140, 140, 140, 140, 147,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153,
-               },
-               {       /* Fourth byte table 66. */
-                       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,   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,   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,   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,   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,   3,   6,   9,   12,  15,  18,
-                       21,  24,  27,  30,  33,  36,  39,  42,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,
-               },
-               {       /* Fourth byte table 67. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 150, 153, 156, 159, 162, 165,
-                       168, 171, 174, 177, 180, 183, 186, 189,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192,
-               },
-               {       /* Fourth byte table 68. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       45,  45,  45,  48,  51,  54,  57,  60,
-                       63,  66,  69,  72,  75,  78,  81,  84,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,
-               },
-               {       /* Fourth byte table 69. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   5,   10,  15,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  22,  24,  26,  28,  30,  32,
-                       34,  36,  38,  40,  42,  44,  46,  48,
-                       50,  53,  56,  59,  62,  65,  68,  71,
-                       74,  77,  80,  83,  86,  89,  92,  98,
-                       104, 110, 116, 122, 128, 134, 140, 146,
-                       152, 158, 164, 170, 176, 176, 176, 176,
-                       176, 176, 176, 176, 176, 176, 176, 176,
-                       176, 176, 176, 176, 176, 176, 176, 176,
-                       176, 176, 176, 176, 176, 176, 176, 176,
-                       176, 176, 176, 176, 176, 176, 176, 176,
-                       176, 176, 176, 176, 176, 176, 176, 176,
-                       176, 176, 176, 176, 176, 176, 176, 176,
-                       176, 176, 176, 176, 176, 176, 176, 176,
-                       176, 176, 176, 176, 176, 176, 176, 176,
-                       176,
-               },
-               {       /* Fourth byte table 70. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 149, 151, 153, 155, 157, 159,
-                       161, 163, 165, 167, 169, 171, 173, 175,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177,
-               },
-               {       /* Fourth byte table 71. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  41,  46,  51,  51,  51,  51,
-                       51,  54,  57,  60,  63,  66,  69,  72,
-                       75,  78,  81,  84,  87,  90,  93,  96,
-                       99,  102, 105, 108, 111, 114, 117, 120,
-                       123, 126, 129, 132, 135, 138, 141, 144,
-                       147, 150, 153, 156, 159, 162, 165, 168,
-                       171, 174, 177, 180, 183, 186, 189, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192,
-               },
-               {       /* Fourth byte table 72. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   7,   9,   11,  13,  15,
-                       17,  20,  24,  26,  28,  31,  34,  36,
-                       38,  40,  43,  46,  49,  52,  55,  57,
-                       59,  61,  63,  65,  68,  70,  72,  74,
-                       77,  80,  82,  85,  88,  91,  93,  96,
-                       101, 107, 109, 112, 115, 118, 121, 128,
-                       136, 138, 140, 143, 145, 147, 149, 152,
-                       154, 156, 158, 160, 162, 165, 167, 169,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171,
-               },
-               {       /* Fourth byte table 73. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   10,  12,  14,  16,  22,
-                       25,  27,  29,  31,  33,  35,  37,  39,
-                       41,  43,  45,  48,  50,  52,  55,  58,
-                       60,  64,  67,  69,  71,  73,  75,  75,
-                       75,  79,  83,  87,  91,  95,  99,  103,
-                       107, 111, 116, 121, 126, 131, 136, 141,
-                       146, 151, 156, 161, 166, 171, 176, 181,
-                       186, 191, 196, 201, 206, 211, 216, 221,
-                       221, 221, 221, 221, 221, 221, 221, 221,
-                       221, 221, 221, 221, 221, 221, 221, 221,
-                       221, 221, 221, 221, 221, 221, 221, 221,
-                       221, 221, 221, 221, 221, 221, 221, 221,
-                       221, 221, 221, 221, 221, 221, 221, 221,
-                       221, 221, 221, 221, 221, 221, 221, 221,
-                       221, 221, 221, 221, 221, 221, 221, 221,
-                       221, 221, 221, 221, 221, 221, 221, 221,
-                       221,
-               },
-               {       /* Fourth byte table 74. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  56,
-                       56,  60,  60,  64,  64,  64,  68,  72,
-                       76,  80,  84,  88,  92,  96,  100, 104,
-                       104, 108, 108, 112, 112, 112, 116, 120,
-                       120, 120, 120, 124, 128, 132, 136, 136,
-                       136, 140, 144, 148, 152, 156, 160, 164,
-                       168, 172, 176, 180, 184, 188, 192, 196,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200,
-               },
-               {       /* Fourth byte table 75. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  68,  72,  76,  80,  84,  88,  92,
-                       96,  100, 104, 108, 112, 116, 120, 124,
-                       128, 132, 136, 140, 144, 148, 152, 156,
-                       160, 164, 168, 172, 172, 172, 172, 172,
-                       172, 172, 172, 172, 172, 172, 172, 172,
-                       172, 172, 172, 172, 172, 172, 172, 172,
-                       172, 172, 172, 172, 172, 172, 172, 172,
-                       172, 172, 172, 172, 172, 172, 172, 172,
-                       172, 172, 172, 172, 172, 172, 172, 172,
-                       172, 172, 172, 172, 172, 172, 172, 172,
-                       172, 172, 172, 172, 172, 172, 172, 172,
-                       172, 172, 172, 172, 172, 172, 172, 172,
-                       172, 172, 172, 172, 172, 172, 172, 172,
-                       172, 172, 172, 172, 172, 172, 172, 172,
-                       172,
-               },
-               {       /* Fourth byte table 76. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   9,   12,  14,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  20,  24,  28,  32,
-                       36,  36,  36,  36,  36,  36,  41,  41,
-                       46,  48,  50,  52,  54,  56,  58,  60,
-                       62,  64,  65,  70,  75,  82,  89,  94,
-                       99,  104, 109, 114, 119, 124, 129, 134,
-                       134, 139, 144, 149, 154, 159, 159, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164,
-               },
-               {       /* Fourth byte table 77. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   5,   10,  10,  15,  20,  20,  25,
-                       30,  35,  40,  45,  50,  55,  60,  65,
-                       69,  71,  73,  75,  77,  79,  81,  83,
-                       85,  87,  89,  91,  93,  95,  97,  99,
-                       101, 103, 105, 107, 109, 111, 113, 115,
-                       117, 119, 121, 123, 125, 127, 129, 131,
-                       133, 135, 137, 139, 141, 143, 145, 147,
-                       149, 151, 153, 155, 157, 159, 161, 163,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165,
-               },
-               {       /* Fourth byte table 78. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       48,  50,  52,  54,  56,  58,  60,  62,
-                       64,  66,  68,  70,  72,  76,  80,  82,
-                       84,  86,  88,  90,  92,  94,  96,  98,
-                       100, 104, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108,
-               },
-               {       /* Fourth byte table 79. */
-                       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,   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,   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,   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,   2,   4,   6,   8,
-                       10,  12,  14,  16,  18,  20,  24,  26,
-                       28,  30,  32,  34,  36,  38,  40,  42,
-                       44,  46,  48,  54,  60,  66,  72,  78,
-                       84,  90,  96,  102, 108, 114, 120, 126,
-                       132, 138, 144, 150, 156, 158, 160, 162,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164,
-               },
-               {       /* Fourth byte table 80. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  68,  72,  76,  80,  84,  88,  92,
-                       96,  100, 104, 108, 112, 116, 120, 124,
-                       128, 132, 136, 140, 144, 148, 152, 156,
-                       160, 164, 168, 172, 176, 180, 184, 188,
-                       192, 196, 200, 204, 208, 212, 216, 220,
-                       224, 228, 232, 236, 240, 244, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248,
-               },
-               {       /* Fourth byte table 81. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   6,   12,  18,  24,  30,  36,  42,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  54,  60,  68,  76,  84,  92,  100,
-                       108, 116, 122, 155, 170, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178,
-               },
-               {       /* Fourth byte table 82. */
-                       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,   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,   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,   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,   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,   2,   5,   8,   9,   10,  11,  12,
-                       13,  14,  17,  20,  23,  26,  29,  32,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,
-               },
-               {       /* Fourth byte table 83. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  15,  15,
-                       15,  15,  18,  21,  24,  27,  28,  29,
-                       30,  31,  34,  35,  35,  36,  37,  38,
-                       39,  42,  43,  44,  45,  46,  49,  52,
-                       53,  54,  55,  56,  57,  58,  59,  60,
-                       60,  61,  62,  63,  64,  64,  64,  64,
-                       64,  67,  71,  74,  74,  77,  77,  80,
-                       84,  87,  91,  94,  98,  101, 105, 108,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112,
-               },
-               {       /* Fourth byte table 84. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   6,   10,  14,  18,  22,  26,
-                       30,  34,  38,  42,  46,  50,  52,  54,
-                       56,  58,  60,  62,  64,  66,  68,  70,
-                       72,  74,  76,  78,  80,  82,  84,  86,
-                       88,  90,  92,  94,  96,  98,  100, 102,
-                       104, 106, 108, 110, 112, 114, 116, 118,
-                       120, 122, 124, 126, 128, 130, 132, 134,
-                       136, 138, 140, 142, 144, 146, 148, 150,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152,
-               },
-               {       /* Fourth byte table 85. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       48,  50,  52,  54,  56,  58,  60,  62,
-                       64,  66,  68,  70,  72,  74,  76,  78,
-                       80,  82,  84,  86,  88,  90,  92,  94,
-                       96,  98,  100, 102, 104, 106, 112, 118,
-                       124, 130, 136, 142, 146, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150,
-               },
-               {       /* Fourth byte table 86. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   1,   2,   3,   4,   5,   6,
-                       7,   8,   9,   10,  11,  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,  40,  41,  42,  43,  44,  45,  46,
-                       47,  48,  49,  50,  51,  52,  53,  54,
-                       55,  56,  57,  58,  59,  60,  61,  62,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,
-               },
-               {       /* Fourth byte table 87. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  12,  13,  14,  15,
-                       16,  17,  18,  19,  20,  21,  22,  23,
-                       24,  25,  26,  27,  28,  29,  30,  31,
-                       34,  37,  40,  43,  46,  49,  52,  55,
-                       58,  61,  64,  67,  70,  73,  76,  79,
-                       82,  85,  88,  91,  94,  97,  100, 103,
-                       106, 109, 112, 115, 118, 121, 124, 127,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130,
-               },
-               {       /* Fourth byte table 88. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 150, 153, 156, 159, 162, 165,
-                       168, 171, 174, 177, 180, 183, 186, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189,
-               },
-               {       /* Fourth byte table 89. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   3,   6,   9,   12,  15,
-                       18,  18,  18,  21,  24,  27,  30,  33,
-                       36,  36,  36,  39,  42,  45,  48,  51,
-                       54,  54,  54,  57,  60,  63,  63,  63,
-                       63,  65,  67,  69,  72,  74,  76,  79,
-                       79,  82,  85,  88,  91,  94,  97,  100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100,
-               },
-               {       /* Fourth byte table 90. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   9,
-                       18,  31,  44,  57,  70,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,
-               },
-               {       /* Fourth byte table 91. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   9,   18,  31,  44,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,
-               },
-               {       /* Fourth byte table 92. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,
-               },
-               {       /* Fourth byte table 93. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  51,  52,  53,  54,  55,
-                       56,  57,  58,  59,  60,  61,  62,  63,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 94. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  12,  13,  14,  15,
-                       16,  17,  18,  19,  20,  21,  21,  22,
-                       23,  24,  25,  26,  27,  28,  29,  30,
-                       31,  32,  33,  34,  35,  36,  37,  38,
-                       39,  40,  41,  42,  43,  44,  45,  46,
-                       47,  48,  49,  50,  51,  52,  53,  54,
-                       55,  56,  57,  58,  59,  60,  61,  62,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,
-               },
-               {       /* Fourth byte table 95. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  12,  13,  14,  15,
-                       16,  17,  18,  19,  20,  21,  22,  23,
-                       24,  25,  26,  27,  28,  29,  29,  30,
-                       31,  31,  31,  32,  32,  32,  33,  34,
-                       34,  34,  35,  36,  37,  38,  38,  39,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  50,  51,  51,  52,  53,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,
-               },
-               {       /* Fourth byte table 96. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   1,   2,   3,   3,   4,   5,
-                       6,   7,   8,   9,   10,  11,  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,  40,  41,  42,  43,  44,  45,
-                       46,  47,  48,  49,  50,  51,  52,  53,
-                       54,  55,  56,  57,  58,  59,  60,  61,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,
-               },
-               {       /* Fourth byte table 97. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   6,
-                       7,   8,   9,   10,  10,  10,  11,  12,
-                       13,  14,  15,  16,  17,  18,  18,  19,
-                       20,  21,  22,  23,  24,  25,  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,  53,  53,  54,  55,  56,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,
-               },
-               {       /* Fourth byte table 98. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   5,   6,
-                       6,   6,   6,   7,   8,   9,   10,  11,
-                       12,  13,  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,  40,  41,  42,
-                       43,  44,  45,  46,  47,  48,  49,  50,
-                       51,  52,  53,  54,  55,  56,  57,  58,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,
-               },
-               {       /* Fourth byte table 99. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  51,  52,  53,  54,  55,
-                       56,  57,  58,  59,  60,  61,  62,  63,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 100. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  51,  52,  53,  54,  55,
-                       56,  57,  58,  59,  60,  61,  62,  63,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 101. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  51,  52,  53,  54,  55,
-                       56,  57,  58,  59,  60,  61,  62,  63,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 102. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  51,  52,  53,  54,  55,
-                       56,  57,  58,  59,  60,  61,  62,  63,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 103. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,  36,  36,  36,
-                       36,  38,  40,  42,  44,  46,  48,  50,
-                       52,  54,  56,  58,  60,  62,  64,  66,
-                       68,  70,  72,  74,  76,  78,  80,  82,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,
-               },
-               {       /* Fourth byte table 104. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   5,   7,   9,   11,  13,  15,
-                       17,  19,  21,  23,  25,  27,  29,  31,
-                       33,  35,  37,  39,  41,  43,  45,  47,
-                       49,  51,  53,  55,  58,  60,  62,  64,
-                       66,  68,  70,  72,  74,  76,  78,  80,
-                       82,  84,  86,  88,  90,  92,  94,  96,
-                       98,  100, 102, 104, 106, 108, 110, 112,
-                       114, 116, 118, 120, 123, 125, 127, 129,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131,
-               },
-               {       /* Fourth byte table 105. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  45,  47,
-                       49,  51,  53,  55,  57,  59,  61,  63,
-                       65,  67,  69,  71,  73,  75,  77,  79,
-                       81,  83,  85,  87,  89,  91,  93,  95,
-                       97,  99,  101, 103, 105, 107, 110, 112,
-                       114, 116, 118, 120, 122, 124, 126, 128,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130,
-               },
-               {       /* Fourth byte table 106. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       33,  35,  37,  39,  41,  43,  45,  47,
-                       49,  51,  53,  55,  57,  59,  61,  63,
-                       65,  67,  69,  71,  73,  75,  77,  79,
-                       81,  83,  85,  87,  89,  91,  93,  95,
-                       98,  100, 102, 104, 106, 108, 110, 112,
-                       114, 116, 118, 120, 122, 124, 126, 128,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130,
-               },
-               {       /* Fourth byte table 107. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  21,  23,  25,  27,  29,  31,
-                       33,  35,  37,  39,  41,  43,  45,  47,
-                       49,  51,  53,  55,  57,  59,  61,  63,
-                       65,  67,  69,  71,  73,  75,  77,  79,
-                       81,  83,  86,  88,  90,  92,  94,  96,
-                       98,  100, 102, 104, 106, 108, 110, 112,
-                       114, 116, 118, 120, 122, 124, 126, 128,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130,
-               },
-               {       /* Fourth byte table 108. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   9,   11,  13,  15,
-                       17,  19,  21,  21,  21,  21,  21,  22,
-                       23,  24,  25,  26,  27,  28,  29,  30,
-                       31,  32,  33,  34,  35,  36,  37,  38,
-                       39,  40,  41,  42,  43,  44,  45,  46,
-                       47,  48,  49,  50,  51,  52,  53,  54,
-                       55,  56,  57,  58,  59,  60,  61,  62,
-                       63,  64,  65,  66,  67,  68,  69,  70,
-                       71,  71,  71,  71,  71,  71,  71,  71,
-                       71,  71,  71,  71,  71,  71,  71,  71,
-                       71,  71,  71,  71,  71,  71,  71,  71,
-                       71,  71,  71,  71,  71,  71,  71,  71,
-                       71,  71,  71,  71,  71,  71,  71,  71,
-                       71,  71,  71,  71,  71,  71,  71,  71,
-                       71,  71,  71,  71,  71,  71,  71,  71,
-                       71,  71,  71,  71,  71,  71,  71,  71,
-                       71,
-               },
-               {       /* Fourth byte table 109. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   9,   13,  17,  21,  25,  29,
-                       33,  37,  42,  46,  50,  54,  58,  62,
-                       66,  71,  75,  80,  85,  90,  94,  98,
-                       102, 106, 110, 114, 118, 122, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127,
-               },
-               {       /* Fourth byte table 110. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 111. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 112. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 113. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 114. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 115. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 116. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 117. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-       },
-       {
-               {       /* Fourth byte table 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,   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,   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,   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,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   1,   1,   1,   1,   1,   1,
-                       1,   4,   4,   5,   5,   5,   5,   5,
-                       8,   8,   8,   9,   10,  13,  15,  15,
-                       15,  18,  19,  20,  20,  25,  30,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,
-               },
-               {       /* Fourth byte table 1. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  24,
-                       28,  32,  36,  40,  44,  48,  52,  56,
-                       60,  60,  64,  68,  72,  76,  80,  84,
-                       84,  84,  88,  92,  96,  100, 104, 104,
-                       104, 108, 112, 116, 120, 124, 128, 128,
-                       132, 136, 140, 144, 148, 152, 156, 160,
-                       164, 164, 168, 172, 176, 180, 184, 188,
-                       188, 188, 192, 196, 200, 204, 208, 208,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212,
-               },
-               {       /* Fourth byte table 2. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  64,  64,  68,  72,  76,  80,  84,
-                       88,  92,  96,  100, 104, 108, 112, 116,
-                       120, 124, 128, 132, 136, 140, 144, 144,
-                       144, 148, 152, 156, 160, 164, 168, 172,
-                       176, 180, 180, 182, 184, 188, 192, 196,
-                       200, 200, 204, 208, 212, 216, 220, 224,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227, 227, 227, 227, 227, 227, 227, 227,
-                       227,
-               },
-               {       /* Fourth byte table 3. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   3,   7,   11,  15,  19,
-                       23,  27,  30,  30,  30,  34,  38,  42,
-                       46,  50,  54,  54,  54,  58,  62,  66,
-                       70,  74,  78,  82,  86,  90,  94,  98,
-                       102, 106, 110, 114, 118, 122, 126, 126,
-                       126, 130, 134, 138, 142, 146, 150, 154,
-                       158, 162, 166, 170, 174, 178, 182, 186,
-                       190, 194, 198, 202, 206, 210, 214, 218,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219, 219, 219, 219, 219, 219, 219, 219,
-                       219,
-               },
-               {       /* Fourth byte table 4. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       12,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,
-               },
-               {       /* Fourth byte table 5. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   4,   8,   12,
-                       14,  16,  18,  20,  22,  24,  28,  32,
-                       36,  40,  44,  48,  52,  56,  62,  68,
-                       74,  80,  86,  92,  98,  104, 104, 110,
-                       116, 122, 128, 133, 138, 138, 138, 142,
-                       146, 150, 154, 158, 162, 168, 174, 179,
-                       184, 188, 190, 192, 194, 198, 202, 202,
-                       202, 206, 210, 216, 222, 227, 232, 237,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242, 242, 242, 242, 242, 242, 242, 242,
-                       242,
-               },
-               {       /* Fourth byte table 6. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  68,  72,  76,  80,  84,  88,  92,
-                       96,  100, 104, 108, 112, 112, 112, 116,
-                       120, 120, 120, 120, 120, 120, 120, 124,
-                       128, 132, 136, 142, 148, 154, 160, 164,
-                       168, 174, 180, 184, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188, 188, 188, 188, 188, 188, 188, 188,
-                       188,
-               },
-               {       /* Fourth byte table 7. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   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,   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,   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,   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,
-                       0,   1,   3,   4,   5,   7,   9,   11,
-                       12,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,
-               },
-               {       /* Fourth byte table 8. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  18,
-                       18,  20,  21,  22,  23,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,
-               },
-               {       /* Fourth byte table 9. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   6,   9,   14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  17,  17,  17,
-                       17,  17,  17,  20,  20,  20,  20,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,
-               },
-               {       /* Fourth byte table 10. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   3,   14,  19,
-                       22,  27,  32,  37,  37,  42,  42,  47,
-                       52,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  64,  69,  74,  79,  84,
-                       89,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 11. */
-                       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,   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,   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,   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,   5,   10,  15,  20,  25,
-                       25,  27,  29,  31,  41,  51,  53,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  57,  59,  61,  61,  63,  65,  65,
-                       65,  65,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,  67,  67,  67,  67,  67,  67,  67,
-                       67,
-               },
-               {       /* Fourth byte table 12. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   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,   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,   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,   5,   10,  10,  15,  15,  15,  15,
-                       20,  20,  20,  20,  20,  25,  30,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  40,  40,  40,  40,  40,  40,
-                       40,  40,  40,  40,  40,  40,  40,  40,
-                       40,  40,  40,  40,  40,  40,  40,  40,
-                       40,  40,  40,  40,  40,  40,  40,  40,
-                       40,  40,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,
-               },
-               {       /* Fourth byte table 13. */
-                       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,   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,   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,   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,   5,   10,  10,  15,  15,  15,  15,
-                       20,  20,  20,  20,  20,  25,  30,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  40,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,
-               },
-               {       /* Fourth byte table 14. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   5,   10,  10,  10,  10,  10,
-                       10,  10,  10,  10,  10,  10,  10,  10,
-                       10,  15,  20,  25,  30,  30,  30,  35,
-                       40,  40,  40,  45,  50,  55,  60,  65,
-                       70,  70,  70,  75,  80,  85,  90,  95,
-                       100, 100, 100, 105, 110, 115, 120, 125,
-                       130, 135, 140, 145, 150, 155, 160, 160,
-                       160, 165, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170, 170, 170, 170, 170, 170, 170, 170,
-                       170,
-               },
-               {       /* Fourth byte table 15. */
-                       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,   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,   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,   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,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,   4,   4,   4,   4,   4,   4,   4,
-                       4,
-               },
-               {       /* Fourth byte table 16. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   5,   10,  15,  20,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,
-               },
-               {       /* Fourth byte table 17. */
-                       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,   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,   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,   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,   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,   4,   8,
-                       12,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,
-               },
-               {       /* Fourth byte table 18. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   5,   5,   10,  10,  10,  10,  10,
-                       10,  10,  10,  10,  10,  10,  10,  10,
-                       10,  10,  10,  10,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,
-               },
-               {       /* Fourth byte table 19. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   7,   7,   7,   7,   7,   7,
-                       7,   7,   14,  14,  14,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 20. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   7,   14,  21,  28,  35,  42,  49,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,
-               },
-               {       /* Fourth byte table 21. */
-                       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,   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,   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,   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,   7,   14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  21,  28,  28,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,
-               },
-               {       /* Fourth byte table 22. */
-                       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,   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,   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,   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,   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,   7,   7,   7,   14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,
-               },
-               {       /* Fourth byte table 23. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   7,   14,  21,  21,  21,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,
-               },
-               {       /* Fourth byte table 24. */
-                       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,   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,   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,   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,   7,   7,   7,   14,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  28,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,
-               },
-               {       /* Fourth byte table 25. */
-                       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,   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,   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,   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,   0,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,
-               },
-               {       /* Fourth byte table 26. */
-                       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,   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,   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,   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,   7,   14,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 27. */
-                       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,   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,   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,   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,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,
-               },
-               {       /* Fourth byte table 28. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   7,   7,   7,   7,   7,   7,   7,
-                       14,  21,  21,  28,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,
-               },
-               {       /* Fourth byte table 29. */
-                       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,   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,   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,   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,   7,   14,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 30. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   7,   7,   14,  24,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,  31,  31,  31,  31,  31,  31,  31,
-                       31,
-               },
-               {       /* Fourth byte table 31. */
-                       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,   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,   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,   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,   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,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,
-               },
-               {       /* Fourth byte table 32. */
-                       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,   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,   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,   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,   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,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,
-               },
-               {       /* Fourth byte table 33. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   6,   12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,
-               },
-               {       /* Fourth byte table 34. */
-                       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,   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,   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,   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,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 35. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   14,  14,
-                       14,  14,  14,  21,  21,  21,  21,  21,
-                       28,  28,  28,  28,  28,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  49,  49,  56,  63,
-                       72,  79,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,
-               },
-               {       /* Fourth byte table 36. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  21,  21,
-                       21,  21,  21,  28,  28,  28,  28,  28,
-                       35,  35,  35,  35,  35,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,  49,  49,  49,  49,  49,  49,  49,
-                       49,
-               },
-               {       /* Fourth byte table 37. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,   7,   7,   7,   7,   7,   7,   7,
-                       7,
-               },
-               {       /* Fourth byte table 38. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   0,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 39. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   7,
-                       7,   14,  14,  21,  21,  28,  28,  35,
-                       35,  35,  35,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  49,  49,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,
-               },
-               {       /* Fourth byte table 40. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   7,   14,  14,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 41. */
-                       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,   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,   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,   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,   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,   1,   3,   4,
-                       4,   5,   6,   8,   9,   10,  11,  12,
-                       13,  14,  15,  16,  16,  17,  19,  20,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 42. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   6,   8,   11,
-                       12,  13,  14,  16,  18,  20,  21,  21,
-                       22,  23,  25,  26,  28,  31,  34,  35,
-                       36,  37,  40,  42,  43,  46,  48,  50,
-                       52,  54,  56,  57,  58,  59,  60,  62,
-                       64,  66,  68,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,
-               },
-               {       /* Fourth byte table 43. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   2,   3,   5,   7,
-                       9,   10,  12,  14,  16,  18,  20,  22,
-                       25,  27,  29,  32,  34,  36,  38,  40,
-                       42,  44,  46,  48,  50,  52,  54,  56,
-                       58,  61,  63,  65,  66,  68,  70,  72,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,
-               },
-               {       /* Fourth byte table 44. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   6,   12,  13,  14,  15,  16,  17,
-                       18,  19,  20,  21,  21,  21,  21,  21,
-                       21,  21,  24,  24,  24,  24,  24,  24,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  28,  30,  33,
-                       33,  33,  33,  33,  33,  33,  33,  33,
-                       34,  34,  34,  34,  40,  49,  49,  55,
-                       64,  64,  64,  64,  64,  66,  66,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,  69,  69,  69,  69,  69,  69,  69,
-                       69,
-               },
-               {       /* Fourth byte table 45. */
-                       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,   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,   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,   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,
-                       2,   4,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  19,  19,
-                       19,  20,  21,  21,  21,  22,  23,  24,
-                       25,  26,  27,  28,  31,  32,  33,  34,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,  35,  35,  35,  35,  35,  35,  35,
-                       35,
-               },
-               {       /* Fourth byte table 46. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  14,  15,  16,  17,
-                       17,  18,  19,  20,  21,  23,  23,  23,
-                       23,  23,  23,  23,  23,  23,  23,  23,
-                       23,  23,  23,  23,  23,  23,  23,  23,
-                       23,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,  25,  25,  25,  25,  25,  25,  25,
-                       25,
-               },
-               {       /* Fourth byte table 47. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   7,   10,  10,  13,  16,
-                       18,  18,  21,  22,  23,  24,  25,  26,
-                       28,  29,  30,  31,  32,  32,  33,  35,
-                       35,  35,  36,  37,  38,  39,  40,  40,
-                       40,  42,  45,  47,  47,  48,  48,  51,
-                       51,  52,  52,  54,  58,  59,  60,  60,
-                       61,  62,  63,  63,  64,  65,  67,  69,
-                       71,  73,  74,  74,  77,  79,  81,  83,
-                       85,  85,  85,  85,  85,  85,  85,  85,
-                       85,  85,  85,  85,  85,  85,  85,  85,
-                       85,  85,  85,  85,  85,  85,  85,  85,
-                       85,  85,  85,  85,  85,  85,  85,  85,
-                       85,  85,  85,  85,  85,  85,  85,  85,
-                       85,  85,  85,  85,  85,  85,  85,  85,
-                       85,  85,  85,  85,  85,  85,  85,  85,
-                       85,  85,  85,  85,  85,  85,  85,  85,
-                       85,
-               },
-               {       /* Fourth byte table 48. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   3,   3,   3,   4,   5,
-                       6,   7,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   13,  18,  23,  28,
-                       33,  38,  43,  48,  53,  58,  63,  68,
-                       72,  73,  75,  78,  80,  81,  83,  86,
-                       90,  92,  93,  95,  98,  99,  100, 101,
-                       102, 103, 105, 108, 110, 111, 113, 116,
-                       120, 122, 123, 125, 128, 129, 130, 131,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132, 132, 132, 132, 132, 132, 132, 132,
-                       132,
-               },
-               {       /* Fourth byte table 49. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   6,   12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,
-               },
-               {       /* Fourth byte table 50. */
-                       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,   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,   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,   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,   6,   12,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,
-               },
-               {       /* Fourth byte table 51. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   6,   6,   6,
-                       6,   6,   12,  12,  12,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  24,  24,  30,
-                       30,  30,  30,  30,  30,  36,  45,  45,
-                       51,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,
-               },
-               {       /* Fourth byte table 52. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   6,   6,   6,   12,  12,  12,
-                       18,  18,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  28,  28,  34,  34,  34,  34,  34,
-                       34,  34,  34,  34,  34,  34,  40,  44,
-                       48,  54,  60,  60,  60,  66,  72,  72,
-                       72,  78,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,
-               },
-               {       /* Fourth byte table 53. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   6,   12,  12,  12,  18,  24,  24,
-                       24,  30,  36,  36,  36,  36,  36,  36,
-                       36,  36,  36,  36,  36,  36,  36,  36,
-                       36,  36,  36,  36,  36,  36,  36,  36,
-                       36,  36,  36,  36,  36,  36,  36,  36,
-                       36,  36,  36,  36,  36,  42,  48,  54,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,
-               },
-               {       /* Fourth byte table 54. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   6,   12,  18,  24,  24,  24,  24,
-                       24,  24,  24,  30,  36,  42,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,
-               },
-               {       /* Fourth byte table 55. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   4,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,
-               },
-               {       /* Fourth byte table 56. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   11,  13,  15,  17,  19,  21,
-                       23,  25,  27,  29,  31,  34,  37,  40,
-                       43,  46,  49,  52,  55,  58,  62,  66,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,
-               },
-               {       /* Fourth byte table 57. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       48,  50,  53,  56,  59,  62,  65,  68,
-                       71,  74,  77,  80,  83,  86,  89,  92,
-                       95,  98,  101, 104, 107, 110, 113, 116,
-                       119, 122, 125, 128, 131, 134, 137, 140,
-                       143, 146, 149, 152, 155, 158, 161, 162,
-                       163, 164, 165, 166, 167, 168, 169, 170,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171,
-               },
-               {       /* Fourth byte table 58. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,  43,  43,  43,  43,  43,  43,  43,
-                       43,
-               },
-               {       /* Fourth byte table 59. */
-                       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,   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,   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,   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,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,
-               },
-               {       /* Fourth byte table 60. */
-                       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,   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,   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,   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,   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,   3,   5,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,
-               },
-               {       /* Fourth byte table 61. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,   6,   6,   6,   6,   6,   6,   6,
-                       6,
-               },
-               {       /* Fourth byte table 62. */
-                       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,   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,   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,   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,   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,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 63. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 64. */
-                       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,   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,   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,   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,   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,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 65. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 150, 153, 156, 159, 162, 165,
-                       168, 171, 174, 177, 180, 183, 186, 189,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192,
-               },
-               {       /* Fourth byte table 66. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 150, 153, 156, 159, 162, 165,
-                       168, 171, 174, 177, 180, 183, 186, 189,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192,
-               },
-               {       /* Fourth byte table 67. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 150, 153, 156, 159, 162, 165,
-                       168, 171, 174, 177, 180, 183, 186, 189,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192,
-               },
-               {       /* Fourth byte table 68. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,
-               },
-               {       /* Fourth byte table 69. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   1,
-                       1,   1,   1,   1,   1,   1,   1,   4,
-                       4,   7,   10,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,
-               },
-               {       /* Fourth byte table 70. */
-                       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,   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,   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,   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,   7,   7,   14,
-                       14,  21,  21,  28,  28,  35,  35,  42,
-                       42,  49,  49,  56,  56,  63,  63,  70,
-                       70,  77,  77,  84,  84,  84,  91,  91,
-                       98,  98,  105, 105, 105, 105, 105, 105,
-                       105, 112, 119, 119, 126, 133, 133, 140,
-                       147, 147, 154, 161, 161, 168, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175, 175, 175, 175, 175, 175, 175, 175,
-                       175,
-               },
-               {       /* Fourth byte table 71. */
-                       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,   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,   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,   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,   0,   7,   7,   7,
-                       7,   7,   7,   7,   11,  15,  15,  22,
-                       28,  28,  28,  28,  28,  28,  28,  28,
-                       28,  28,  28,  28,  28,  35,  35,  42,
-                       42,  49,  49,  56,  56,  63,  63,  70,
-                       70,  77,  77,  84,  84,  91,  91,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,  98,  98,  98,  98,  98,  98,  98,
-                       98,
-               },
-               {       /* Fourth byte table 72. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   7,   7,   14,  14,  14,  21,  21,
-                       28,  28,  35,  35,  35,  35,  35,  35,
-                       35,  42,  49,  49,  56,  63,  63,  70,
-                       77,  77,  84,  91,  91,  98,  105, 105,
-                       105, 105, 105, 105, 105, 105, 105, 105,
-                       105, 105, 105, 105, 105, 105, 105, 105,
-                       105, 105, 105, 105, 105, 112, 112, 112,
-                       119, 126, 133, 140, 140, 140, 140, 147,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153, 153, 153, 153, 153, 153, 153, 153,
-                       153,
-               },
-               {       /* Fourth byte table 73. */
-                       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,   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,   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,   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,   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,   3,   6,   9,   12,  15,  18,
-                       21,  24,  27,  30,  33,  36,  39,  42,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,  45,  45,  45,  45,  45,  45,  45,
-                       45,
-               },
-               {       /* Fourth byte table 74. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 150, 153, 156, 159, 162, 165,
-                       168, 171, 174, 177, 180, 183, 186, 189,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192, 192, 192, 192, 192, 192, 192, 192,
-                       192,
-               },
-               {       /* Fourth byte table 75. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       45,  45,  45,  48,  51,  54,  57,  60,
-                       63,  66,  69,  72,  75,  78,  81,  84,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,
-               },
-               {       /* Fourth byte table 76. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   5,   10,  15,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  23,  25,  27,  29,  31,  33,  35,
-                       37,  39,  41,  43,  45,  47,  49,  51,
-                       53,  56,  59,  62,  65,  68,  71,  74,
-                       77,  80,  83,  86,  89,  92,  95,  101,
-                       107, 113, 119, 125, 131, 137, 143, 149,
-                       155, 161, 167, 173, 179, 194, 206, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212, 212, 212, 212, 212, 212, 212, 212,
-                       212,
-               },
-               {       /* Fourth byte table 77. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 149, 151, 153, 155, 157, 159,
-                       161, 163, 165, 167, 169, 171, 173, 175,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177, 177, 177, 177, 177, 177, 177, 177,
-                       177,
-               },
-               {       /* Fourth byte table 78. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  41,  46,  51,  53,  56,  58,
-                       61,  64,  67,  70,  73,  76,  79,  82,
-                       85,  88,  91,  94,  97,  100, 103, 106,
-                       109, 112, 115, 118, 121, 124, 127, 130,
-                       133, 136, 139, 142, 145, 148, 151, 154,
-                       157, 160, 163, 166, 169, 172, 175, 178,
-                       181, 184, 187, 190, 193, 196, 199, 202,
-                       202, 202, 202, 202, 202, 202, 202, 202,
-                       202, 202, 202, 202, 202, 202, 202, 202,
-                       202, 202, 202, 202, 202, 202, 202, 202,
-                       202, 202, 202, 202, 202, 202, 202, 202,
-                       202, 202, 202, 202, 202, 202, 202, 202,
-                       202, 202, 202, 202, 202, 202, 202, 202,
-                       202, 202, 202, 202, 202, 202, 202, 202,
-                       202, 202, 202, 202, 202, 202, 202, 202,
-                       202,
-               },
-               {       /* Fourth byte table 79. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   7,   9,   11,  13,  15,
-                       17,  20,  24,  26,  28,  31,  34,  36,
-                       38,  40,  43,  46,  49,  52,  55,  57,
-                       59,  61,  63,  65,  68,  70,  72,  74,
-                       77,  80,  82,  85,  88,  91,  93,  96,
-                       101, 107, 109, 112, 115, 118, 121, 128,
-                       136, 138, 140, 143, 145, 147, 149, 152,
-                       154, 156, 158, 160, 162, 165, 167, 169,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171, 171, 171, 171, 171, 171, 171, 171,
-                       171,
-               },
-               {       /* Fourth byte table 80. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   10,  12,  14,  16,  22,
-                       25,  27,  29,  31,  33,  35,  37,  39,
-                       41,  43,  45,  48,  50,  52,  55,  58,
-                       60,  64,  67,  69,  71,  73,  75,  80,
-                       85,  89,  93,  97,  101, 105, 109, 113,
-                       117, 121, 126, 131, 136, 141, 146, 151,
-                       156, 161, 166, 171, 176, 181, 186, 191,
-                       196, 201, 206, 211, 216, 221, 226, 231,
-                       234, 234, 234, 234, 234, 234, 234, 234,
-                       234, 234, 234, 234, 234, 234, 234, 234,
-                       234, 234, 234, 234, 234, 234, 234, 234,
-                       234, 234, 234, 234, 234, 234, 234, 234,
-                       234, 234, 234, 234, 234, 234, 234, 234,
-                       234, 234, 234, 234, 234, 234, 234, 234,
-                       234, 234, 234, 234, 234, 234, 234, 234,
-                       234, 234, 234, 234, 234, 234, 234, 234,
-                       234,
-               },
-               {       /* Fourth byte table 81. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  56,
-                       56,  60,  60,  64,  64,  64,  68,  72,
-                       76,  80,  84,  88,  92,  96,  100, 104,
-                       104, 108, 108, 112, 112, 112, 116, 120,
-                       120, 120, 120, 124, 128, 132, 136, 136,
-                       136, 140, 144, 148, 152, 156, 160, 164,
-                       168, 172, 176, 180, 184, 188, 192, 196,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200, 200, 200, 200, 200, 200, 200, 200,
-                       200,
-               },
-               {       /* Fourth byte table 82. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  68,  72,  76,  80,  84,  88,  92,
-                       96,  100, 104, 108, 112, 116, 120, 124,
-                       128, 132, 136, 140, 144, 148, 152, 156,
-                       160, 164, 168, 172, 172, 172, 172, 172,
-                       172, 176, 180, 184, 188, 192, 196, 200,
-                       204, 208, 212, 216, 220, 224, 228, 232,
-                       236, 236, 236, 236, 236, 236, 236, 236,
-                       236, 236, 236, 236, 236, 236, 236, 236,
-                       236, 236, 236, 236, 236, 236, 236, 236,
-                       236, 236, 236, 236, 236, 236, 236, 236,
-                       236, 236, 236, 236, 236, 236, 236, 236,
-                       236, 236, 236, 236, 236, 236, 236, 236,
-                       236, 236, 236, 236, 236, 236, 236, 236,
-                       236, 236, 236, 236, 236, 236, 236, 236,
-                       236,
-               },
-               {       /* Fourth byte table 83. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       65,  70,  75,  79,  83,  87,  92,  97,
-                       102, 106, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110, 110, 110, 110, 110, 110, 110, 110,
-                       110,
-               },
-               {       /* Fourth byte table 84. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   9,   12,  14,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  20,  24,  28,  32,
-                       36,  36,  36,  36,  36,  36,  41,  41,
-                       46,  48,  50,  52,  54,  56,  58,  60,
-                       62,  64,  65,  70,  75,  82,  89,  94,
-                       99,  104, 109, 114, 119, 124, 129, 134,
-                       134, 139, 144, 149, 154, 159, 159, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164,
-               },
-               {       /* Fourth byte table 85. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   5,   10,  10,  15,  20,  20,  25,
-                       30,  35,  40,  45,  50,  55,  60,  65,
-                       69,  71,  73,  75,  77,  79,  81,  83,
-                       85,  87,  89,  91,  93,  95,  97,  99,
-                       101, 103, 105, 107, 109, 111, 113, 115,
-                       117, 119, 121, 123, 125, 127, 129, 131,
-                       133, 135, 137, 139, 141, 143, 145, 147,
-                       149, 151, 153, 155, 157, 159, 161, 163,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165, 165, 165, 165, 165, 165, 165, 165,
-                       165,
-               },
-               {       /* Fourth byte table 86. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       48,  50,  52,  54,  56,  58,  60,  62,
-                       64,  66,  68,  70,  72,  76,  80,  82,
-                       84,  86,  88,  90,  92,  94,  96,  98,
-                       100, 104, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108, 108, 108, 108, 108, 108, 108, 108,
-                       108,
-               },
-               {       /* Fourth byte table 87. */
-                       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,   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,   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,   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,   2,   4,   6,   8,
-                       10,  12,  14,  16,  18,  20,  24,  26,
-                       28,  30,  32,  34,  36,  38,  40,  42,
-                       44,  46,  48,  54,  60,  66,  72,  78,
-                       84,  90,  96,  102, 108, 114, 120, 126,
-                       132, 138, 144, 150, 156, 158, 160, 162,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164, 164, 164, 164, 164, 164, 164, 164,
-                       164,
-               },
-               {       /* Fourth byte table 88. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  68,  72,  76,  80,  84,  88,  92,
-                       96,  100, 104, 108, 112, 116, 120, 124,
-                       128, 132, 136, 140, 144, 148, 152, 156,
-                       160, 164, 168, 172, 176, 180, 184, 188,
-                       192, 196, 200, 204, 208, 212, 216, 220,
-                       224, 228, 232, 236, 240, 244, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248, 248, 248, 248, 248, 248, 248, 248,
-                       248,
-               },
-               {       /* Fourth byte table 89. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   6,   12,  18,  24,  30,  36,  42,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  54,  60,  68,  76,  84,  92,  100,
-                       108, 116, 122, 155, 170, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178, 178, 178, 178, 178, 178, 178, 178,
-                       178,
-               },
-               {       /* Fourth byte table 90. */
-                       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,   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,   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,   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,   1,   4,   7,   8,   9,   10,  11,
-                       14,  17,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  22,  25,  28,  29,  30,  31,  32,
-                       33,  34,  37,  40,  43,  46,  49,  52,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,  55,  55,  55,  55,  55,  55,  55,
-                       55,
-               },
-               {       /* Fourth byte table 91. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  15,  15,
-                       16,  17,  20,  23,  26,  29,  30,  31,
-                       32,  33,  36,  37,  37,  38,  39,  40,
-                       41,  44,  45,  46,  47,  48,  51,  54,
-                       55,  56,  57,  58,  59,  60,  61,  62,
-                       62,  63,  64,  65,  66,  66,  66,  66,
-                       66,  69,  73,  76,  76,  79,  79,  82,
-                       86,  89,  93,  96,  100, 103, 107, 110,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114,
-               },
-               {       /* Fourth byte table 92. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   6,   10,  14,  18,  22,  26,
-                       30,  34,  38,  42,  46,  50,  52,  54,
-                       56,  58,  60,  62,  64,  66,  68,  70,
-                       72,  74,  76,  78,  80,  82,  84,  86,
-                       88,  90,  92,  94,  96,  98,  100, 102,
-                       104, 106, 108, 110, 112, 114, 116, 118,
-                       120, 122, 124, 126, 128, 130, 132, 134,
-                       136, 138, 140, 142, 144, 146, 148, 150,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152,
-               },
-               {       /* Fourth byte table 93. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       48,  50,  52,  54,  56,  58,  60,  62,
-                       64,  66,  68,  70,  72,  74,  76,  78,
-                       80,  82,  84,  86,  88,  90,  92,  94,
-                       96,  98,  100, 102, 104, 106, 112, 118,
-                       124, 130, 136, 142, 146, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150, 150, 150, 150, 150, 150, 150, 150,
-                       150,
-               },
-               {       /* Fourth byte table 94. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   1,   2,   3,   4,   5,   6,
-                       7,   8,   9,   10,  11,  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,  40,  41,  42,  43,  44,  45,  46,
-                       47,  48,  49,  50,  51,  52,  53,  54,
-                       55,  56,  57,  58,  59,  60,  61,  62,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,
-               },
-               {       /* Fourth byte table 95. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  12,  13,  14,  15,
-                       16,  17,  18,  19,  20,  21,  22,  23,
-                       24,  25,  26,  27,  28,  29,  30,  31,
-                       34,  37,  40,  43,  46,  49,  52,  55,
-                       58,  61,  64,  67,  70,  73,  76,  79,
-                       82,  85,  88,  91,  94,  97,  100, 103,
-                       106, 109, 112, 115, 118, 121, 124, 127,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130,
-               },
-               {       /* Fourth byte table 96. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       144, 147, 150, 153, 156, 159, 162, 165,
-                       168, 171, 174, 177, 180, 183, 186, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189, 189, 189, 189, 189, 189, 189, 189,
-                       189,
-               },
-               {       /* Fourth byte table 97. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   3,   6,   9,   12,  15,
-                       18,  18,  18,  21,  24,  27,  30,  33,
-                       36,  36,  36,  39,  42,  45,  48,  51,
-                       54,  54,  54,  57,  60,  63,  63,  63,
-                       63,  65,  67,  69,  72,  74,  76,  79,
-                       79,  82,  85,  88,  91,  94,  97,  100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100, 100, 100, 100, 100, 100, 100, 100,
-                       100,
-               },
-               {       /* Fourth byte table 98. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   9,
-                       18,  31,  44,  57,  70,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,
-               },
-               {       /* Fourth byte table 99. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   9,   18,  31,  44,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,
-               },
-               {       /* Fourth byte table 100. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,  13,  13,  13,  13,  13,  13,  13,
-                       13,
-               },
-               {       /* Fourth byte table 101. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  51,  52,  53,  54,  55,
-                       56,  57,  58,  59,  60,  61,  62,  63,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 102. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  12,  13,  14,  15,
-                       16,  17,  18,  19,  20,  21,  21,  22,
-                       23,  24,  25,  26,  27,  28,  29,  30,
-                       31,  32,  33,  34,  35,  36,  37,  38,
-                       39,  40,  41,  42,  43,  44,  45,  46,
-                       47,  48,  49,  50,  51,  52,  53,  54,
-                       55,  56,  57,  58,  59,  60,  61,  62,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,
-               },
-               {       /* Fourth byte table 103. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  12,  13,  14,  15,
-                       16,  17,  18,  19,  20,  21,  22,  23,
-                       24,  25,  26,  27,  28,  29,  29,  30,
-                       31,  31,  31,  32,  32,  32,  33,  34,
-                       34,  34,  35,  36,  37,  38,  38,  39,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  50,  51,  51,  52,  53,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,
-               },
-               {       /* Fourth byte table 104. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   4,   5,   6,
-                       7,   8,   9,   10,  11,  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,  40,  41,  42,  43,  44,  45,  46,
-                       47,  48,  49,  50,  51,  52,  53,  54,
-                       55,  56,  57,  58,  59,  60,  61,  62,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,
-               },
-               {       /* Fourth byte table 105. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   6,
-                       7,   8,   9,   10,  10,  10,  11,  12,
-                       13,  14,  15,  16,  17,  18,  18,  19,
-                       20,  21,  22,  23,  24,  25,  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,  53,  53,  54,  55,  56,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,
-               },
-               {       /* Fourth byte table 106. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   5,   6,
-                       6,   6,   6,   7,   8,   9,   10,  11,
-                       12,  13,  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,  40,  41,  42,
-                       43,  44,  45,  46,  47,  48,  49,  50,
-                       51,  52,  53,  54,  55,  56,  57,  58,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,  59,  59,  59,  59,  59,  59,  59,
-                       59,
-               },
-               {       /* Fourth byte table 107. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  51,  52,  53,  54,  55,
-                       56,  57,  58,  59,  60,  61,  62,  63,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 108. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  51,  52,  53,  54,  55,
-                       56,  57,  58,  59,  60,  61,  62,  63,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 109. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  51,  52,  53,  54,  55,
-                       56,  57,  58,  59,  60,  61,  62,  63,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 110. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,
-                       40,  41,  42,  43,  44,  45,  46,  47,
-                       48,  49,  50,  51,  52,  53,  54,  55,
-                       56,  57,  58,  59,  60,  61,  62,  63,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 111. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   1,   2,   3,   4,   5,   6,   7,
-                       8,   9,   10,  11,  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,  38,  40,  40,
-                       40,  42,  44,  46,  48,  50,  52,  54,
-                       56,  58,  60,  62,  64,  66,  68,  70,
-                       72,  74,  76,  78,  80,  82,  84,  86,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,  88,  88,  88,  88,  88,  88,  88,
-                       88,
-               },
-               {       /* Fourth byte table 112. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   5,   7,   9,   11,  13,  15,
-                       17,  19,  21,  23,  25,  27,  29,  31,
-                       33,  35,  37,  39,  41,  43,  45,  47,
-                       49,  51,  53,  55,  58,  60,  62,  64,
-                       66,  68,  70,  72,  74,  76,  78,  80,
-                       82,  84,  86,  88,  90,  92,  94,  96,
-                       98,  100, 102, 104, 106, 108, 110, 112,
-                       114, 116, 118, 120, 123, 125, 127, 129,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131, 131, 131, 131, 131, 131, 131, 131,
-                       131,
-               },
-               {       /* Fourth byte table 113. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  45,  47,
-                       49,  51,  53,  55,  57,  59,  61,  63,
-                       65,  67,  69,  71,  73,  75,  77,  79,
-                       81,  83,  85,  87,  89,  91,  93,  95,
-                       97,  99,  101, 103, 105, 107, 110, 112,
-                       114, 116, 118, 120, 122, 124, 126, 128,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130,
-               },
-               {       /* Fourth byte table 114. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       33,  35,  37,  39,  41,  43,  45,  47,
-                       49,  51,  53,  55,  57,  59,  61,  63,
-                       65,  67,  69,  71,  73,  75,  77,  79,
-                       81,  83,  85,  87,  89,  91,  93,  95,
-                       98,  100, 102, 104, 106, 108, 110, 112,
-                       114, 116, 118, 120, 122, 124, 126, 128,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130,
-               },
-               {       /* Fourth byte table 115. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  21,  23,  25,  27,  29,  31,
-                       33,  35,  37,  39,  41,  43,  45,  47,
-                       49,  51,  53,  55,  57,  59,  61,  63,
-                       65,  67,  69,  71,  73,  75,  77,  79,
-                       81,  83,  86,  88,  90,  92,  94,  96,
-                       98,  100, 102, 104, 106, 108, 110, 112,
-                       114, 116, 118, 120, 122, 124, 126, 128,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130, 130, 130, 130, 130, 130, 130, 130,
-                       130,
-               },
-               {       /* Fourth byte table 116. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   9,   11,  13,  15,
-                       17,  19,  21,  23,  25,  25,  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,  53,  54,  55,  56,  57,  58,
-                       59,  60,  61,  62,  63,  64,  65,  66,
-                       67,  68,  69,  70,  71,  72,  73,  74,
-                       75,  75,  75,  75,  75,  75,  75,  75,
-                       75,  75,  75,  75,  75,  75,  75,  75,
-                       75,  75,  75,  75,  75,  75,  75,  75,
-                       75,  75,  75,  75,  75,  75,  75,  75,
-                       75,  75,  75,  75,  75,  75,  75,  75,
-                       75,  75,  75,  75,  75,  75,  75,  75,
-                       75,  75,  75,  75,  75,  75,  75,  75,
-                       75,  75,  75,  75,  75,  75,  75,  75,
-                       75,
-               },
-               {       /* Fourth byte table 117. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   9,   13,  17,  21,  25,  29,
-                       33,  37,  42,  46,  50,  54,  58,  62,
-                       66,  71,  75,  80,  85,  90,  94,  98,
-                       102, 106, 110, 114, 118, 122, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127, 127, 127, 127, 127, 127, 127, 127,
-                       127,
-               },
-       },
-};
-
-static const uint16_t u8_decomp_b4_16bit_tbl[2][30][257] = {
-       {
-               {       /* Fourth byte 16-bit table 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,    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,    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,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   38,   44,   48,   52,   56,   60,   64,
-                       68,   72,   76,   80,   84,   90,   96,   102,
-                       108,  112,  116,  120,  124,  130,  136,  140,
-                       144,  148,  152,  156,  160,  164,  168,  172,
-                       176,  180,  184,  188,  192,  196,  200,  206,
-                       212,  216,  220,  224,  228,  232,  236,  240,
-                       244,  250,  256,  260,  264,  268,  272,  276,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,
-               },
-               {       /* Fourth byte 16-bit table 1. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   54,   60,   66,
-                       72,   78,   84,   90,   96,   100,  104,  108,
-                       112,  116,  120,  124,  128,  134,  140,  144,
-                       148,  152,  156,  160,  164,  170,  176,  182,
-                       188,  194,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  262,  268,  274,  280,  284,  288,  292,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,
-               },
-               {       /* Fourth byte 16-bit table 2. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  107,  116,  116,  116,  116,
-                       116,  120,  124,  128,  132,  138,  144,  150,
-                       156,  162,  168,  174,  180,  186,  192,  198,
-                       204,  210,  216,  222,  228,  234,  240,  246,
-                       252,  256,  260,  264,  268,  272,  276,  282,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,
-               },
-               {       /* Fourth byte 16-bit table 3. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    6,    12,   18,   24,   30,   36,   42,
-                       48,   52,   56,   60,   64,   68,   72,   76,
-                       80,   86,   92,   98,   104,  110,  116,  122,
-                       128,  134,  140,  146,  152,  158,  164,  170,
-                       176,  182,  188,  194,  200,  204,  208,  212,
-                       216,  222,  228,  234,  240,  246,  252,  258,
-                       264,  270,  276,  280,  284,  288,  292,  296,
-                       300,  304,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,
-               },
-               {       /* Fourth byte 16-bit table 4. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    5,    10,   17,   24,   31,   38,   45,
-                       52,   57,   62,   69,   76,   83,   90,   97,
-                       104,  109,  114,  121,  128,  135,  142,  142,
-                       142,  147,  152,  159,  166,  173,  180,  180,
-                       180,  185,  190,  197,  204,  211,  218,  225,
-                       232,  237,  242,  249,  256,  263,  270,  277,
-                       284,  289,  294,  301,  308,  315,  322,  329,
-                       336,  341,  346,  353,  360,  367,  374,  381,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,
-               },
-               {       /* Fourth byte 16-bit table 5. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    5,    10,   17,   24,   31,   38,   38,
-                       38,   43,   48,   55,   62,   69,   76,   76,
-                       76,   81,   86,   93,   100,  107,  114,  121,
-                       128,  128,  133,  133,  140,  140,  147,  147,
-                       154,  159,  164,  171,  178,  185,  192,  199,
-                       206,  211,  216,  223,  230,  237,  244,  251,
-                       258,  263,  268,  273,  278,  283,  288,  293,
-                       298,  303,  308,  313,  318,  323,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,
-               },
-               {       /* Fourth byte 16-bit table 6. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    7,    14,   23,   32,   41,   50,   59,
-                       68,   75,   82,   91,   100,  109,  118,  127,
-                       136,  143,  150,  159,  168,  177,  186,  195,
-                       204,  211,  218,  227,  236,  245,  254,  263,
-                       272,  279,  286,  295,  304,  313,  322,  331,
-                       340,  347,  354,  363,  372,  381,  390,  399,
-                       408,  413,  418,  425,  430,  437,  437,  442,
-                       449,  454,  459,  464,  469,  474,  477,  480,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,
-               },
-               {       /* Fourth byte 16-bit table 7. */
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    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,    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,    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,    3,    14,   21,   26,   33,   33,   38,
-                       45,   50,   55,   60,   65,   70,   82,   94,
-                       106,  111,  116,  123,  130,  130,  130,  135,
-                       142,  147,  152,  157,  162,  162,  174,  186,
-                       198,  203,  208,  215,  222,  227,  232,  237,
-                       244,  249,  254,  259,  264,  269,  280,  291,
-                       293,  293,  293,  300,  305,  312,  312,  317,
-                       324,  329,  334,  339,  344,  349,  356,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,
-               },
-               {       /* Fourth byte 16-bit table 8. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    5,    10,   15,   20,   25,   30,   35,
-                       40,   45,   50,   55,   60,   65,   70,   78,
-                       86,   94,   102,  110,  118,  126,  134,  142,
-                       150,  158,  166,  174,  182,  190,  190,  190,
-                       190,  195,  200,  205,  210,  215,  220,  225,
-                       230,  235,  240,  245,  250,  255,  260,  265,
-                       270,  275,  280,  285,  290,  295,  300,  305,
-                       310,  315,  320,  325,  330,  335,  340,  345,
-                       350,  350,  350,  350,  350,  350,  350,  350,
-                       350,  350,  350,  350,  350,  350,  350,  350,
-                       350,  350,  350,  350,  350,  350,  350,  350,
-                       350,  350,  350,  350,  350,  350,  350,  350,
-                       350,  350,  350,  350,  350,  350,  350,  350,
-                       350,  350,  350,  350,  350,  350,  350,  350,
-                       350,  350,  350,  350,  350,  350,  350,  350,
-                       350,  350,  350,  350,  350,  350,  350,  350,
-                       350,
-               },
-               {       /* Fourth byte 16-bit table 9. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    15,   27,   42,   51,   66,   75,   84,
-                       102,  114,  123,  132,  141,  153,  165,  177,
-                       189,  201,  213,  225,  243,  249,  267,  285,
-                       300,  312,  330,  348,  360,  369,  378,  390,
-                       402,  417,  432,  441,  450,  462,  471,  480,
-                       486,  492,  501,  510,  528,  540,  555,  573,
-                       585,  594,  603,  621,  633,  651,  660,  675,
-                       684,  696,  705,  717,  732,  744,  759,  771,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,
-               },
-               {       /* Fourth byte 16-bit table 10. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    15,   24,   33,   45,   54,   63,   72,
-                       87,   99,   105,  123,  132,  147,  159,  171,
-                       180,  189,  201,  207,  219,  234,  240,  258,
-                       267,  271,  275,  279,  283,  287,  291,  295,
-                       299,  303,  307,  312,  317,  322,  327,  332,
-                       337,  342,  347,  352,  357,  362,  367,  372,
-                       377,  382,  385,  387,  389,  392,  394,  396,
-                       396,  396,  396,  396,  402,  408,  414,  420,
-                       432,  432,  432,  432,  432,  432,  432,  432,
-                       432,  432,  432,  432,  432,  432,  432,  432,
-                       432,  432,  432,  432,  432,  432,  432,  432,
-                       432,  432,  432,  432,  432,  432,  432,  432,
-                       432,  432,  432,  432,  432,  432,  432,  432,
-                       432,  432,  432,  432,  432,  432,  432,  432,
-                       432,  432,  432,  432,  432,  432,  432,  432,
-                       432,  432,  432,  432,  432,  432,  432,  432,
-                       432,
-               },
-               {       /* Fourth byte 16-bit table 11. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       128,  132,  136,  140,  144,  148,  152,  156,
-                       160,  164,  168,  172,  176,  180,  184,  188,
-                       192,  196,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,
-               },
-               {       /* Fourth byte 16-bit table 12. */
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    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,    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,    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,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       128,  132,  136,  140,  144,  148,  152,  156,
-                       160,  164,  168,  172,  176,  180,  184,  188,
-                       192,  196,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,
-               },
-               {       /* Fourth byte 16-bit table 13. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       128,  132,  136,  140,  144,  148,  152,  156,
-                       160,  164,  168,  172,  176,  180,  184,  188,
-                       192,  196,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,
-               },
-               {       /* Fourth byte 16-bit table 14. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       128,  132,  136,  140,  144,  148,  152,  156,
-                       160,  164,  168,  172,  176,  180,  184,  188,
-                       192,  196,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,
-               },
-               {       /* Fourth byte 16-bit table 15. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    6,    12,   18,   24,   30,   34,   38,
-                       42,   46,   50,   54,   58,   62,   66,   70,
-                       74,   78,   82,   86,   90,   94,   98,   102,
-                       106,  110,  114,  118,  122,  126,  130,  134,
-                       138,  142,  146,  150,  154,  158,  162,  166,
-                       170,  174,  178,  182,  186,  190,  194,  198,
-                       202,  206,  210,  214,  218,  222,  226,  230,
-                       234,  238,  242,  246,  250,  254,  258,  262,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,
-               },
-               {       /* Fourth byte 16-bit table 16. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  125,
-                       130,  135,  140,  145,  150,  156,  162,  168,
-                       174,  180,  186,  190,  194,  198,  202,  206,
-                       210,  214,  218,  222,  226,  230,  234,  238,
-                       242,  246,  250,  254,  258,  262,  266,  270,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,
-               },
-               {       /* Fourth byte 16-bit table 17. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       98,   104,  110,  116,  122,  126,  130,  134,
-                       138,  142,  146,  150,  154,  158,  162,  166,
-                       170,  174,  178,  182,  186,  190,  194,  198,
-                       202,  206,  210,  214,  218,  222,  226,  230,
-                       234,  238,  242,  246,  250,  254,  258,  262,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,
-               },
-               {       /* Fourth byte 16-bit table 18. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       130,  136,  140,  144,  148,  152,  156,  160,
-                       164,  168,  172,  176,  180,  184,  188,  192,
-                       196,  200,  204,  210,  216,  222,  226,  230,
-                       234,  238,  242,  246,  250,  254,  258,  262,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,
-               },
-               {       /* Fourth byte 16-bit table 19. */
-                       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,    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,    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,    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,    6,    12,   18,   24,   30,   36,   42,
-                       48,   54,   60,   66,   72,   78,   84,   90,
-                       96,   102,  108,  114,  120,  126,  132,  138,
-                       144,  150,  156,  162,  168,  174,  180,  186,
-                       192,  198,  204,  210,  216,  222,  228,  234,
-                       240,  246,  252,  258,  264,  270,  276,  282,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,
-               },
-               {       /* Fourth byte 16-bit table 20. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    6,    12,   18,   24,   30,   36,   42,
-                       48,   54,   60,   66,   72,   78,   84,   90,
-                       96,   96,   96,   102,  108,  114,  120,  126,
-                       132,  138,  144,  150,  156,  162,  168,  174,
-                       180,  186,  192,  198,  204,  210,  216,  222,
-                       228,  234,  240,  246,  252,  258,  264,  270,
-                       276,  282,  288,  294,  300,  306,  312,  318,
-                       324,  330,  336,  342,  348,  354,  360,  366,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,
-               },
-               {       /* Fourth byte 16-bit table 21. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   17,   21,   25,   29,
-                       33,   37,   41,   45,   49,   53,   58,   62,
-                       66,   70,   74,   79,   83,   87,   91,   96,
-                       100,  104,  108,  112,  116,  121,  125,  129,
-                       133,  137,  141,  145,  149,  153,  157,  161,
-                       165,  169,  173,  177,  181,  185,  189,  193,
-                       197,  201,  205,  209,  213,  218,  222,  226,
-                       230,  235,  239,  243,  247,  251,  255,  259,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,
-               },
-               {       /* Fourth byte 16-bit table 22. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  105,  109,  113,  117,  121,  125,
-                       129,  134,  139,  143,  147,  151,  155,  159,
-                       163,  167,  171,  175,  179,  184,  188,  192,
-                       196,  200,  205,  209,  213,  217,  221,  225,
-                       229,  233,  237,  241,  246,  250,  255,  259,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,
-               },
-               {       /* Fourth byte 16-bit table 23. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   41,   45,   49,   53,   57,   61,
-                       66,   70,   75,   80,   84,   88,   92,   96,
-                       101,  106,  110,  114,  118,  122,  126,  130,
-                       134,  138,  142,  146,  150,  155,  159,  163,
-                       167,  171,  175,  179,  183,  187,  191,  195,
-                       199,  203,  207,  211,  215,  219,  223,  227,
-                       231,  236,  240,  244,  248,  252,  256,  261,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,
-               },
-               {       /* Fourth byte 16-bit table 24. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   45,   49,   53,   57,   61,
-                       65,   69,   73,   77,   81,   85,   89,   93,
-                       97,   101,  105,  109,  113,  117,  122,  126,
-                       130,  134,  138,  142,  147,  151,  155,  159,
-                       163,  167,  171,  175,  179,  184,  188,  192,
-                       196,  201,  205,  209,  213,  217,  221,  225,
-                       230,  235,  240,  244,  249,  253,  257,  261,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,
-               },
-               {       /* Fourth byte 16-bit table 25. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   29,
-                       33,   37,   41,   45,   49,   53,   58,   62,
-                       66,   71,   76,   80,   84,   88,   92,   96,
-                       100,  104,  108,  112,  117,  121,  126,  130,
-                       135,  139,  143,  147,  152,  156,  160,  165,
-                       170,  174,  178,  182,  186,  190,  194,  198,
-                       202,  206,  210,  214,  218,  222,  227,  231,
-                       236,  240,  245,  249,  254,  259,  264,  268,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,
-               },
-               {       /* Fourth byte 16-bit table 26. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    9,    14,   19,   24,   28,   32,
-                       36,   40,   44,   48,   52,   56,   61,   65,
-                       69,   73,   77,   82,   86,   91,   96,   100,
-                       104,  108,  112,  116,  120,  125,  130,  135,
-                       139,  143,  148,  152,  156,  160,  165,  169,
-                       173,  177,  181,  185,  190,  194,  198,  202,
-                       206,  210,  214,  219,  224,  228,  233,  237,
-                       242,  246,  250,  254,  259,  264,  268,  273,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,
-               },
-               {       /* Fourth byte 16-bit table 27. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    5,    9,    13,   17,   21,   25,   29,
-                       34,   39,   44,   49,   53,   57,   61,   65,
-                       69,   73,   77,   81,   85,   89,   93,   97,
-                       102,  106,  110,  114,  118,  122,  126,  130,
-                       134,  138,  142,  146,  150,  155,  160,  165,
-                       169,  173,  177,  181,  186,  190,  195,  199,
-                       203,  208,  213,  217,  221,  225,  229,  233,
-                       237,  241,  245,  249,  253,  257,  261,  265,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,
-               },
-               {       /* Fourth byte 16-bit table 28. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   25,   29,
-                       33,   37,   41,   45,   50,   55,   59,   63,
-                       67,   71,   75,   79,   84,   88,   92,   96,
-                       100,  105,  110,  114,  118,  122,  127,  131,
-                       135,  140,  145,  149,  153,  157,  162,  166,
-                       170,  174,  178,  182,  186,  190,  195,  199,
-                       203,  207,  212,  216,  220,  224,  228,  233,
-                       238,  242,  246,  250,  255,  259,  264,  268,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,
-               },
-               {       /* Fourth byte 16-bit table 29. */
-                       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,    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,    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,    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,    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,    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,    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,
-               },
-       },
-       {
-               {       /* Fourth byte 16-bit table 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,    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,    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,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   38,   44,   48,   52,   56,   60,   64,
-                       68,   72,   76,   80,   84,   90,   96,   102,
-                       108,  112,  116,  120,  124,  130,  136,  140,
-                       144,  148,  152,  156,  160,  164,  168,  172,
-                       176,  180,  184,  188,  192,  196,  200,  206,
-                       212,  216,  220,  224,  228,  232,  236,  240,
-                       244,  250,  256,  260,  264,  268,  272,  276,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,  280,  280,  280,  280,  280,  280,  280,
-                       280,
-               },
-               {       /* Fourth byte 16-bit table 1. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   54,   60,   66,
-                       72,   78,   84,   90,   96,   100,  104,  108,
-                       112,  116,  120,  124,  128,  134,  140,  144,
-                       148,  152,  156,  160,  164,  170,  176,  182,
-                       188,  194,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  262,  268,  274,  280,  284,  288,  292,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,  296,  296,  296,  296,  296,  296,  296,
-                       296,
-               },
-               {       /* Fourth byte 16-bit table 2. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  107,  116,  116,  116,  116,
-                       116,  120,  124,  128,  132,  138,  144,  150,
-                       156,  162,  168,  174,  180,  186,  192,  198,
-                       204,  210,  216,  222,  228,  234,  240,  246,
-                       252,  256,  260,  264,  268,  272,  276,  282,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,
-               },
-               {       /* Fourth byte 16-bit table 3. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    6,    12,   18,   24,   30,   36,   42,
-                       48,   52,   56,   60,   64,   68,   72,   76,
-                       80,   86,   92,   98,   104,  110,  116,  122,
-                       128,  134,  140,  146,  152,  158,  164,  170,
-                       176,  182,  188,  194,  200,  204,  208,  212,
-                       216,  222,  228,  234,  240,  246,  252,  258,
-                       264,  270,  276,  280,  284,  288,  292,  296,
-                       300,  304,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,  308,  308,  308,  308,  308,  308,  308,
-                       308,
-               },
-               {       /* Fourth byte 16-bit table 4. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    5,    10,   17,   24,   31,   38,   45,
-                       52,   57,   62,   69,   76,   83,   90,   97,
-                       104,  109,  114,  121,  128,  135,  142,  142,
-                       142,  147,  152,  159,  166,  173,  180,  180,
-                       180,  185,  190,  197,  204,  211,  218,  225,
-                       232,  237,  242,  249,  256,  263,  270,  277,
-                       284,  289,  294,  301,  308,  315,  322,  329,
-                       336,  341,  346,  353,  360,  367,  374,  381,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,  388,  388,  388,  388,  388,  388,  388,
-                       388,
-               },
-               {       /* Fourth byte 16-bit table 5. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    5,    10,   17,   24,   31,   38,   38,
-                       38,   43,   48,   55,   62,   69,   76,   76,
-                       76,   81,   86,   93,   100,  107,  114,  121,
-                       128,  128,  133,  133,  140,  140,  147,  147,
-                       154,  159,  164,  171,  178,  185,  192,  199,
-                       206,  211,  216,  223,  230,  237,  244,  251,
-                       258,  263,  268,  273,  278,  283,  288,  293,
-                       298,  303,  308,  313,  318,  323,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,  328,  328,  328,  328,  328,  328,  328,
-                       328,
-               },
-               {       /* Fourth byte 16-bit table 6. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    7,    14,   23,   32,   41,   50,   59,
-                       68,   75,   82,   91,   100,  109,  118,  127,
-                       136,  143,  150,  159,  168,  177,  186,  195,
-                       204,  211,  218,  227,  236,  245,  254,  263,
-                       272,  279,  286,  295,  304,  313,  322,  331,
-                       340,  347,  354,  363,  372,  381,  390,  399,
-                       408,  413,  418,  425,  430,  437,  437,  442,
-                       449,  454,  459,  464,  469,  474,  477,  480,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,  483,  483,  483,  483,  483,  483,  483,
-                       483,
-               },
-               {       /* Fourth byte 16-bit table 7. */
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    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,    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,    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,    3,    14,   21,   26,   33,   33,   38,
-                       45,   50,   55,   60,   65,   70,   82,   94,
-                       106,  111,  116,  123,  130,  130,  130,  135,
-                       142,  147,  152,  157,  162,  162,  174,  186,
-                       198,  203,  208,  215,  222,  227,  232,  237,
-                       244,  249,  254,  259,  264,  269,  280,  291,
-                       293,  293,  293,  300,  305,  312,  312,  317,
-                       324,  329,  334,  339,  344,  349,  356,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,  359,  359,  359,  359,  359,  359,  359,
-                       359,
-               },
-               {       /* Fourth byte 16-bit table 8. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    5,    10,   15,   20,   25,   30,   35,
-                       40,   45,   50,   55,   60,   65,   70,   78,
-                       86,   94,   102,  110,  118,  126,  134,  142,
-                       150,  158,  166,  174,  182,  190,  207,  221,
-                       221,  226,  231,  236,  241,  246,  251,  256,
-                       261,  266,  271,  276,  281,  286,  291,  296,
-                       301,  306,  311,  316,  321,  326,  331,  336,
-                       341,  346,  351,  356,  361,  366,  371,  376,
-                       381,  381,  381,  381,  381,  381,  381,  381,
-                       381,  381,  381,  381,  381,  381,  381,  381,
-                       381,  381,  381,  381,  381,  381,  381,  381,
-                       381,  381,  381,  381,  381,  381,  381,  381,
-                       381,  381,  381,  381,  381,  381,  381,  381,
-                       381,  381,  381,  381,  381,  381,  381,  381,
-                       381,  381,  381,  381,  381,  381,  381,  381,
-                       381,  381,  381,  381,  381,  381,  381,  381,
-                       381,
-               },
-               {       /* Fourth byte 16-bit table 9. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    15,   27,   42,   51,   66,   75,   84,
-                       102,  114,  123,  132,  141,  153,  165,  177,
-                       189,  201,  213,  225,  243,  249,  267,  285,
-                       300,  312,  330,  348,  360,  369,  378,  390,
-                       402,  417,  432,  441,  450,  462,  471,  480,
-                       486,  492,  501,  510,  528,  540,  555,  573,
-                       585,  594,  603,  621,  633,  651,  660,  675,
-                       684,  696,  705,  717,  732,  744,  759,  771,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,  777,  777,  777,  777,  777,  777,  777,
-                       777,
-               },
-               {       /* Fourth byte 16-bit table 10. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    15,   24,   33,   45,   54,   63,   72,
-                       87,   99,   105,  123,  132,  147,  159,  171,
-                       180,  189,  201,  207,  219,  234,  240,  258,
-                       267,  271,  275,  279,  283,  287,  291,  295,
-                       299,  303,  307,  312,  317,  322,  327,  332,
-                       337,  342,  347,  352,  357,  362,  367,  372,
-                       377,  382,  385,  387,  389,  392,  394,  396,
-                       398,  401,  404,  406,  412,  418,  424,  430,
-                       442,  442,  442,  442,  442,  442,  442,  442,
-                       442,  442,  442,  442,  442,  442,  442,  442,
-                       442,  442,  442,  442,  442,  442,  442,  442,
-                       442,  442,  442,  442,  442,  442,  442,  442,
-                       442,  442,  442,  442,  442,  442,  442,  442,
-                       442,  442,  442,  442,  442,  442,  442,  442,
-                       442,  442,  442,  442,  442,  442,  442,  442,
-                       442,  442,  442,  442,  442,  442,  442,  442,
-                       442,
-               },
-               {       /* Fourth byte 16-bit table 11. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       128,  132,  136,  140,  144,  148,  152,  156,
-                       160,  164,  168,  172,  176,  180,  184,  188,
-                       192,  196,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,
-               },
-               {       /* Fourth byte 16-bit table 12. */
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    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,    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,    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,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       128,  132,  136,  140,  144,  148,  152,  156,
-                       160,  164,  168,  172,  176,  180,  184,  188,
-                       192,  196,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,
-               },
-               {       /* Fourth byte 16-bit table 13. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       128,  132,  136,  140,  144,  148,  152,  156,
-                       160,  164,  168,  172,  176,  180,  184,  188,
-                       192,  196,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,
-               },
-               {       /* Fourth byte 16-bit table 14. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       128,  132,  136,  140,  144,  148,  152,  156,
-                       160,  164,  168,  172,  176,  180,  184,  188,
-                       192,  196,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,
-               },
-               {       /* Fourth byte 16-bit table 15. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       128,  132,  136,  140,  144,  148,  152,  156,
-                       160,  164,  168,  172,  176,  180,  184,  188,
-                       192,  196,  200,  204,  208,  212,  216,  220,
-                       224,  228,  232,  236,  240,  244,  248,  252,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,  256,  256,  256,  256,  256,  256,  256,
-                       256,
-               },
-               {       /* Fourth byte 16-bit table 16. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    6,    12,   18,   24,   30,   34,   38,
-                       42,   46,   50,   54,   58,   62,   66,   70,
-                       74,   78,   82,   86,   90,   94,   98,   102,
-                       106,  110,  114,  118,  122,  126,  130,  134,
-                       138,  142,  146,  150,  154,  158,  162,  166,
-                       170,  174,  178,  182,  186,  190,  194,  198,
-                       202,  206,  210,  214,  218,  222,  226,  230,
-                       234,  238,  242,  246,  250,  254,  258,  262,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,
-               },
-               {       /* Fourth byte 16-bit table 17. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  125,
-                       130,  135,  140,  145,  150,  156,  162,  168,
-                       174,  180,  186,  190,  194,  198,  202,  206,
-                       210,  214,  218,  222,  226,  230,  234,  238,
-                       242,  246,  250,  254,  258,  262,  266,  270,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,  274,  274,  274,  274,  274,  274,  274,
-                       274,
-               },
-               {       /* Fourth byte 16-bit table 18. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       98,   104,  110,  116,  122,  126,  130,  134,
-                       138,  142,  146,  150,  154,  158,  162,  166,
-                       170,  174,  178,  182,  186,  190,  194,  198,
-                       202,  206,  210,  214,  218,  222,  226,  230,
-                       234,  238,  242,  246,  250,  254,  258,  262,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,
-               },
-               {       /* Fourth byte 16-bit table 19. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  104,  108,  112,  116,  120,  124,
-                       130,  136,  140,  144,  148,  152,  156,  160,
-                       164,  168,  172,  176,  180,  184,  188,  192,
-                       196,  200,  204,  210,  216,  222,  226,  230,
-                       234,  238,  242,  246,  250,  254,  258,  262,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,  266,  266,  266,  266,  266,  266,  266,
-                       266,
-               },
-               {       /* Fourth byte 16-bit table 20. */
-                       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,    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,    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,    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,    6,    12,   18,   24,   30,   36,   42,
-                       48,   54,   60,   66,   72,   78,   84,   90,
-                       96,   102,  108,  114,  120,  126,  132,  138,
-                       144,  150,  156,  162,  168,  174,  180,  186,
-                       192,  198,  204,  210,  216,  222,  228,  234,
-                       240,  246,  252,  258,  264,  270,  276,  282,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,  288,  288,  288,  288,  288,  288,  288,
-                       288,
-               },
-               {       /* Fourth byte 16-bit table 21. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    6,    12,   18,   24,   30,   36,   42,
-                       48,   54,   60,   66,   72,   78,   84,   90,
-                       96,   96,   96,   102,  108,  114,  120,  126,
-                       132,  138,  144,  150,  156,  162,  168,  174,
-                       180,  186,  192,  198,  204,  210,  216,  222,
-                       228,  234,  240,  246,  252,  258,  264,  270,
-                       276,  282,  288,  294,  300,  306,  312,  318,
-                       324,  330,  336,  342,  348,  354,  360,  366,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,  372,  372,  372,  372,  372,  372,  372,
-                       372,
-               },
-               {       /* Fourth byte 16-bit table 22. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   17,   21,   25,   29,
-                       33,   37,   41,   45,   49,   53,   58,   62,
-                       66,   70,   74,   79,   83,   87,   91,   96,
-                       100,  104,  108,  112,  116,  121,  125,  129,
-                       133,  137,  141,  145,  149,  153,  157,  161,
-                       165,  169,  173,  177,  181,  185,  189,  193,
-                       197,  201,  205,  209,  213,  218,  222,  226,
-                       230,  235,  239,  243,  247,  251,  255,  259,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,
-               },
-               {       /* Fourth byte 16-bit table 23. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   44,   48,   52,   56,   60,
-                       64,   68,   72,   76,   80,   84,   88,   92,
-                       96,   100,  105,  109,  113,  117,  121,  125,
-                       129,  134,  139,  143,  147,  151,  155,  159,
-                       163,  167,  171,  175,  179,  184,  188,  192,
-                       196,  200,  205,  209,  213,  217,  221,  225,
-                       229,  233,  237,  241,  246,  250,  255,  259,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,  263,  263,  263,  263,  263,  263,  263,
-                       263,
-               },
-               {       /* Fourth byte 16-bit table 24. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   41,   45,   49,   53,   57,   61,
-                       66,   70,   75,   80,   84,   88,   92,   96,
-                       101,  106,  110,  114,  118,  122,  126,  130,
-                       134,  138,  142,  146,  150,  155,  159,  163,
-                       167,  171,  175,  179,  183,  187,  191,  195,
-                       199,  203,  207,  211,  215,  219,  223,  227,
-                       231,  236,  240,  244,  248,  252,  256,  261,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,
-               },
-               {       /* Fourth byte 16-bit table 25. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   28,
-                       32,   36,   40,   45,   49,   53,   57,   61,
-                       65,   69,   73,   77,   81,   85,   89,   93,
-                       97,   101,  105,  109,  113,  117,  122,  126,
-                       130,  134,  138,  142,  147,  151,  155,  159,
-                       163,  167,  171,  175,  179,  184,  188,  192,
-                       196,  201,  205,  209,  213,  217,  221,  225,
-                       230,  235,  240,  244,  249,  253,  257,  261,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,  265,  265,  265,  265,  265,  265,  265,
-                       265,
-               },
-               {       /* Fourth byte 16-bit table 26. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   24,   29,
-                       33,   37,   41,   45,   49,   53,   58,   62,
-                       66,   71,   76,   80,   84,   88,   92,   96,
-                       100,  104,  108,  112,  117,  121,  126,  130,
-                       135,  139,  143,  147,  152,  156,  160,  165,
-                       170,  174,  178,  182,  186,  190,  194,  198,
-                       202,  206,  210,  214,  218,  222,  227,  231,
-                       236,  240,  245,  249,  254,  259,  264,  268,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,
-               },
-               {       /* Fourth byte 16-bit table 27. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    9,    14,   19,   24,   28,   32,
-                       36,   40,   44,   48,   52,   56,   61,   65,
-                       69,   73,   77,   82,   86,   91,   96,   100,
-                       104,  108,  112,  116,  120,  125,  130,  135,
-                       139,  143,  148,  152,  156,  160,  165,  169,
-                       173,  177,  181,  185,  190,  194,  198,  202,
-                       206,  210,  214,  219,  224,  228,  233,  237,
-                       242,  246,  250,  254,  259,  264,  268,  273,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,  277,  277,  277,  277,  277,  277,  277,
-                       277,
-               },
-               {       /* Fourth byte 16-bit table 28. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    5,    9,    13,   17,   21,   25,   29,
-                       34,   39,   44,   49,   53,   57,   61,   65,
-                       69,   73,   77,   81,   85,   89,   93,   97,
-                       102,  106,  110,  114,  118,  122,  126,  130,
-                       134,  138,  142,  146,  150,  155,  160,  165,
-                       169,  173,  177,  181,  186,  190,  195,  199,
-                       203,  208,  213,  217,  221,  225,  229,  233,
-                       237,  241,  245,  249,  253,  257,  261,  265,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,  269,  269,  269,  269,  269,  269,  269,
-                       269,
-               },
-               {       /* Fourth byte 16-bit table 29. */
-                       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,    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,    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,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    0,    0,    0,    0,    0,    0,    0,
-                       0,    4,    8,    12,   16,   20,   25,   29,
-                       33,   37,   41,   45,   50,   55,   59,   63,
-                       67,   71,   75,   79,   84,   88,   92,   96,
-                       100,  105,  110,  114,  118,  122,  127,  131,
-                       135,  140,  145,  149,  153,  157,  162,  166,
-                       170,  174,  178,  182,  186,  190,  195,  199,
-                       203,  207,  212,  216,  220,  224,  228,  233,
-                       238,  242,  246,  250,  255,  259,  264,  268,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,  272,  272,  272,  272,  272,  272,  272,
-                       272,
-               },
-       },
-};
-
-static const uchar_t u8_decomp_final_tbl[2][19370] = {
-       {
-               0x20, 0x20, 0xCC, 0x88, 0x61, 0x20, 0xCC, 0x84,
-               0x32, 0x33, 0x20, 0xCC, 0x81, 0xCE, 0xBC, 0x20,
-               0xCC, 0xA7, 0x31, 0x6F, 0x31, 0xE2, 0x81, 0x84,
-               0x34, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x33, 0xE2,
-               0x81, 0x84, 0x34, 0xF6, 0x41, 0xCC, 0x80, 0xF6,
-               0x41, 0xCC, 0x81, 0xF6, 0x41, 0xCC, 0x82, 0xF6,
-               0x41, 0xCC, 0x83, 0xF6, 0x41, 0xCC, 0x88, 0xF6,
-               0x41, 0xCC, 0x8A, 0xF6, 0x43, 0xCC, 0xA7, 0xF6,
-               0x45, 0xCC, 0x80, 0xF6, 0x45, 0xCC, 0x81, 0xF6,
-               0x45, 0xCC, 0x82, 0xF6, 0x45, 0xCC, 0x88, 0xF6,
-               0x49, 0xCC, 0x80, 0xF6, 0x49, 0xCC, 0x81, 0xF6,
-               0x49, 0xCC, 0x82, 0xF6, 0x49, 0xCC, 0x88, 0xF6,
-               0x4E, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x80, 0xF6,
-               0x4F, 0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xF6,
-               0x4F, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x88, 0xF6,
-               0x55, 0xCC, 0x80, 0xF6, 0x55, 0xCC, 0x81, 0xF6,
-               0x55, 0xCC, 0x82, 0xF6, 0x55, 0xCC, 0x88, 0xF6,
-               0x59, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x80, 0xF6,
-               0x61, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x82, 0xF6,
-               0x61, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x88, 0xF6,
-               0x61, 0xCC, 0x8A, 0xF6, 0x63, 0xCC, 0xA7, 0xF6,
-               0x65, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x81, 0xF6,
-               0x65, 0xCC, 0x82, 0xF6, 0x65, 0xCC, 0x88, 0xF6,
-               0x69, 0xCC, 0x80, 0xF6, 0x69, 0xCC, 0x81, 0xF6,
-               0x69, 0xCC, 0x82, 0xF6, 0x69, 0xCC, 0x88, 0xF6,
-               0x6E, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x80, 0xF6,
-               0x6F, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82, 0xF6,
-               0x6F, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x88, 0xF6,
-               0x75, 0xCC, 0x80, 0xF6, 0x75, 0xCC, 0x81, 0xF6,
-               0x75, 0xCC, 0x82, 0xF6, 0x75, 0xCC, 0x88, 0xF6,
-               0x79, 0xCC, 0x81, 0xF6, 0x79, 0xCC, 0x88, 0xF6,
-               0x41, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x84, 0xF6,
-               0x41, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0x86, 0xF6,
-               0x41, 0xCC, 0xA8, 0xF6, 0x61, 0xCC, 0xA8, 0xF6,
-               0x43, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0x81, 0xF6,
-               0x43, 0xCC, 0x82, 0xF6, 0x63, 0xCC, 0x82, 0xF6,
-               0x43, 0xCC, 0x87, 0xF6, 0x63, 0xCC, 0x87, 0xF6,
-               0x43, 0xCC, 0x8C, 0xF6, 0x63, 0xCC, 0x8C, 0xF6,
-               0x44, 0xCC, 0x8C, 0xF6, 0x64, 0xCC, 0x8C, 0xF6,
-               0x45, 0xCC, 0x84, 0xF6, 0x65, 0xCC, 0x84, 0xF6,
-               0x45, 0xCC, 0x86, 0xF6, 0x65, 0xCC, 0x86, 0xF6,
-               0x45, 0xCC, 0x87, 0xF6, 0x65, 0xCC, 0x87, 0xF6,
-               0x45, 0xCC, 0xA8, 0xF6, 0x65, 0xCC, 0xA8, 0xF6,
-               0x45, 0xCC, 0x8C, 0xF6, 0x65, 0xCC, 0x8C, 0xF6,
-               0x47, 0xCC, 0x82, 0xF6, 0x67, 0xCC, 0x82, 0xF6,
-               0x47, 0xCC, 0x86, 0xF6, 0x67, 0xCC, 0x86, 0xF6,
-               0x47, 0xCC, 0x87, 0xF6, 0x67, 0xCC, 0x87, 0xF6,
-               0x47, 0xCC, 0xA7, 0xF6, 0x67, 0xCC, 0xA7, 0xF6,
-               0x48, 0xCC, 0x82, 0xF6, 0x68, 0xCC, 0x82, 0xF6,
-               0x49, 0xCC, 0x83, 0xF6, 0x69, 0xCC, 0x83, 0xF6,
-               0x49, 0xCC, 0x84, 0xF6, 0x69, 0xCC, 0x84, 0xF6,
-               0x49, 0xCC, 0x86, 0xF6, 0x69, 0xCC, 0x86, 0xF6,
-               0x49, 0xCC, 0xA8, 0xF6, 0x69, 0xCC, 0xA8, 0xF6,
-               0x49, 0xCC, 0x87, 0x49, 0x4A, 0x69, 0x6A, 0xF6,
-               0x4A, 0xCC, 0x82, 0xF6, 0x6A, 0xCC, 0x82, 0xF6,
-               0x4B, 0xCC, 0xA7, 0xF6, 0x6B, 0xCC, 0xA7, 0xF6,
-               0x4C, 0xCC, 0x81, 0xF6, 0x6C, 0xCC, 0x81, 0xF6,
-               0x4C, 0xCC, 0xA7, 0xF6, 0x6C, 0xCC, 0xA7, 0xF6,
-               0x4C, 0xCC, 0x8C, 0xF6, 0x6C, 0xCC, 0x8C, 0x4C,
-               0xC2, 0xB7, 0x6C, 0xC2, 0xB7, 0xF6, 0x4E, 0xCC,
-               0x81, 0xF6, 0x6E, 0xCC, 0x81, 0xF6, 0x4E, 0xCC,
-               0xA7, 0xF6, 0x6E, 0xCC, 0xA7, 0xF6, 0x4E, 0xCC,
-               0x8C, 0xF6, 0x6E, 0xCC, 0x8C, 0xCA, 0xBC, 0x6E,
-               0xF6, 0x4F, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, 0x84,
-               0xF6, 0x4F, 0xCC, 0x86, 0xF6, 0x6F, 0xCC, 0x86,
-               0xF6, 0x4F, 0xCC, 0x8B, 0xF6, 0x6F, 0xCC, 0x8B,
-               0xF6, 0x52, 0xCC, 0x81, 0xF6, 0x72, 0xCC, 0x81,
-               0xF6, 0x52, 0xCC, 0xA7, 0xF6, 0x72, 0xCC, 0xA7,
-               0xF6, 0x52, 0xCC, 0x8C, 0xF6, 0x72, 0xCC, 0x8C,
-               0xF6, 0x53, 0xCC, 0x81, 0xF6, 0x73, 0xCC, 0x81,
-               0xF6, 0x53, 0xCC, 0x82, 0xF6, 0x73, 0xCC, 0x82,
-               0xF6, 0x53, 0xCC, 0xA7, 0xF6, 0x73, 0xCC, 0xA7,
-               0xF6, 0x53, 0xCC, 0x8C, 0xF6, 0x73, 0xCC, 0x8C,
-               0xF6, 0x54, 0xCC, 0xA7, 0xF6, 0x74, 0xCC, 0xA7,
-               0xF6, 0x54, 0xCC, 0x8C, 0xF6, 0x74, 0xCC, 0x8C,
-               0xF6, 0x55, 0xCC, 0x83, 0xF6, 0x75, 0xCC, 0x83,
-               0xF6, 0x55, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x84,
-               0xF6, 0x55, 0xCC, 0x86, 0xF6, 0x75, 0xCC, 0x86,
-               0xF6, 0x55, 0xCC, 0x8A, 0xF6, 0x75, 0xCC, 0x8A,
-               0xF6, 0x55, 0xCC, 0x8B, 0xF6, 0x75, 0xCC, 0x8B,
-               0xF6, 0x55, 0xCC, 0xA8, 0xF6, 0x75, 0xCC, 0xA8,
-               0xF6, 0x57, 0xCC, 0x82, 0xF6, 0x77, 0xCC, 0x82,
-               0xF6, 0x59, 0xCC, 0x82, 0xF6, 0x79, 0xCC, 0x82,
-               0xF6, 0x59, 0xCC, 0x88, 0xF6, 0x5A, 0xCC, 0x81,
-               0xF6, 0x7A, 0xCC, 0x81, 0xF6, 0x5A, 0xCC, 0x87,
-               0xF6, 0x7A, 0xCC, 0x87, 0xF6, 0x5A, 0xCC, 0x8C,
-               0xF6, 0x7A, 0xCC, 0x8C, 0x73, 0xF6, 0x4F, 0xCC,
-               0x9B, 0xF6, 0x6F, 0xCC, 0x9B, 0xF6, 0x55, 0xCC,
-               0x9B, 0xF6, 0x75, 0xCC, 0x9B, 0x44, 0x5A, 0xCC,
-               0x8C, 0x44, 0x7A, 0xCC, 0x8C, 0x64, 0x7A, 0xCC,
-               0x8C, 0x4C, 0x4A, 0x4C, 0x6A, 0x6C, 0x6A, 0x4E,
-               0x4A, 0x4E, 0x6A, 0x6E, 0x6A, 0xF6, 0x41, 0xCC,
-               0x8C, 0xF6, 0x61, 0xCC, 0x8C, 0xF6, 0x49, 0xCC,
-               0x8C, 0xF6, 0x69, 0xCC, 0x8C, 0xF6, 0x4F, 0xCC,
-               0x8C, 0xF6, 0x6F, 0xCC, 0x8C, 0xF6, 0x55, 0xCC,
-               0x8C, 0xF6, 0x75, 0xCC, 0x8C, 0xF6, 0x55, 0xCC,
-               0x88, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x88, 0xCC,
-               0x84, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
-               0x75, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x55, 0xCC,
-               0x88, 0xCC, 0x8C, 0xF6, 0x75, 0xCC, 0x88, 0xCC,
-               0x8C, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xF6,
-               0x75, 0xCC, 0x88, 0xCC, 0x80, 0xF6, 0x41, 0xCC,
-               0x88, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x88, 0xCC,
-               0x84, 0xF6, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xF6,
-               0x61, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0xC3, 0x86,
-               0xCC, 0x84, 0xF6, 0xC3, 0xA6, 0xCC, 0x84, 0xF6,
-               0x47, 0xCC, 0x8C, 0xF6, 0x67, 0xCC, 0x8C, 0xF6,
-               0x4B, 0xCC, 0x8C, 0xF6, 0x6B, 0xCC, 0x8C, 0xF6,
-               0x4F, 0xCC, 0xA8, 0xF6, 0x6F, 0xCC, 0xA8, 0xF6,
-               0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
-               0xA8, 0xCC, 0x84, 0xF6, 0xC6, 0xB7, 0xCC, 0x8C,
-               0xF6, 0xCA, 0x92, 0xCC, 0x8C, 0xF6, 0x6A, 0xCC,
-               0x8C, 0x44, 0x5A, 0x44, 0x7A, 0x64, 0x7A, 0xF6,
-               0x47, 0xCC, 0x81, 0xF6, 0x67, 0xCC, 0x81, 0xF6,
-               0x4E, 0xCC, 0x80, 0xF6, 0x6E, 0xCC, 0x80, 0xF6,
-               0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xF6, 0x61, 0xCC,
-               0x8A, 0xCC, 0x81, 0xF6, 0xC3, 0x86, 0xCC, 0x81,
-               0xF6, 0xC3, 0xA6, 0xCC, 0x81, 0xF6, 0xC3, 0x98,
-               0xCC, 0x81, 0xF6, 0xC3, 0xB8, 0xCC, 0x81, 0xF6,
-               0x41, 0xCC, 0x8F, 0xF6, 0x61, 0xCC, 0x8F, 0xF6,
-               0x41, 0xCC, 0x91, 0xF6, 0x61, 0xCC, 0x91, 0xF6,
-               0x45, 0xCC, 0x8F, 0xF6, 0x65, 0xCC, 0x8F, 0xF6,
-               0x45, 0xCC, 0x91, 0xF6, 0x65, 0xCC, 0x91, 0xF6,
-               0x49, 0xCC, 0x8F, 0xF6, 0x69, 0xCC, 0x8F, 0xF6,
-               0x49, 0xCC, 0x91, 0xF6, 0x69, 0xCC, 0x91, 0xF6,
-               0x4F, 0xCC, 0x8F, 0xF6, 0x6F, 0xCC, 0x8F, 0xF6,
-               0x4F, 0xCC, 0x91, 0xF6, 0x6F, 0xCC, 0x91, 0xF6,
-               0x52, 0xCC, 0x8F, 0xF6, 0x72, 0xCC, 0x8F, 0xF6,
-               0x52, 0xCC, 0x91, 0xF6, 0x72, 0xCC, 0x91, 0xF6,
-               0x55, 0xCC, 0x8F, 0xF6, 0x75, 0xCC, 0x8F, 0xF6,
-               0x55, 0xCC, 0x91, 0xF6, 0x75, 0xCC, 0x91, 0xF6,
-               0x53, 0xCC, 0xA6, 0xF6, 0x73, 0xCC, 0xA6, 0xF6,
-               0x54, 0xCC, 0xA6, 0xF6, 0x74, 0xCC, 0xA6, 0xF6,
-               0x48, 0xCC, 0x8C, 0xF6, 0x68, 0xCC, 0x8C, 0xF6,
-               0x41, 0xCC, 0x87, 0xF6, 0x61, 0xCC, 0x87, 0xF6,
-               0x45, 0xCC, 0xA7, 0xF6, 0x65, 0xCC, 0xA7, 0xF6,
-               0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
-               0x88, 0xCC, 0x84, 0xF6, 0x4F, 0xCC, 0x83, 0xCC,
-               0x84, 0xF6, 0x6F, 0xCC, 0x83, 0xCC, 0x84, 0xF6,
-               0x4F, 0xCC, 0x87, 0xF6, 0x6F, 0xCC, 0x87, 0xF6,
-               0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
-               0x87, 0xCC, 0x84, 0xF6, 0x59, 0xCC, 0x84, 0xF6,
-               0x79, 0xCC, 0x84, 0x68, 0xC9, 0xA6, 0x6A, 0x72,
-               0xC9, 0xB9, 0xC9, 0xBB, 0xCA, 0x81, 0x77, 0x79,
-               0x20, 0xCC, 0x86, 0x20, 0xCC, 0x87, 0x20, 0xCC,
-               0x8A, 0x20, 0xCC, 0xA8, 0x20, 0xCC, 0x83, 0x20,
-               0xCC, 0x8B, 0xC9, 0xA3, 0x6C, 0x73, 0x78, 0xCA,
-               0x95, 0xF6, 0xCC, 0x80, 0xF6, 0xCC, 0x81, 0xF6,
-               0xCC, 0x93, 0xF6, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
-               0xCA, 0xB9, 0x20, 0xCD, 0x85, 0xF6, 0x3B, 0x20,
-               0xCC, 0x81, 0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81,
-               0x20, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0xCE, 0x91,
-               0xCC, 0x81, 0xF6, 0xC2, 0xB7, 0xF6, 0xCE, 0x95,
-               0xCC, 0x81, 0xF6, 0xCE, 0x97, 0xCC, 0x81, 0xF6,
-               0xCE, 0x99, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC,
-               0x81, 0xF6, 0xCE, 0xA5, 0xCC, 0x81, 0xF6, 0xCE,
-               0xA9, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x88,
-               0xCC, 0x81, 0xF6, 0xCE, 0x99, 0xCC, 0x88, 0xF6,
-               0xCE, 0xA5, 0xCC, 0x88, 0xF6, 0xCE, 0xB1, 0xCC,
-               0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x81, 0xF6, 0xCE,
-               0xB7, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x81,
-               0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
-               0xCE, 0xB9, 0xCC, 0x88, 0xF6, 0xCF, 0x85, 0xCC,
-               0x88, 0xF6, 0xCE, 0xBF, 0xCC, 0x81, 0xF6, 0xCF,
-               0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC, 0x81,
-               0xCE, 0xB2, 0xCE, 0xB8, 0xCE, 0xA5, 0xF5, 0x05,
-               0xCF, 0x92, 0xCC, 0x81, 0xCE, 0xA5, 0xCC, 0x81,
-               0xF5, 0x05, 0xCF, 0x92, 0xCC, 0x88, 0xCE, 0xA5,
-               0xCC, 0x88, 0xCF, 0x86, 0xCF, 0x80, 0xCE, 0xBA,
-               0xCF, 0x81, 0xCF, 0x82, 0xCE, 0x98, 0xCE, 0xB5,
-               0xF6, 0xD0, 0x95, 0xCC, 0x80, 0xF6, 0xD0, 0x95,
-               0xCC, 0x88, 0xF6, 0xD0, 0x93, 0xCC, 0x81, 0xF6,
-               0xD0, 0x86, 0xCC, 0x88, 0xF6, 0xD0, 0x9A, 0xCC,
-               0x81, 0xF6, 0xD0, 0x98, 0xCC, 0x80, 0xF6, 0xD0,
-               0xA3, 0xCC, 0x86, 0xF6, 0xD0, 0x98, 0xCC, 0x86,
-               0xF6, 0xD0, 0xB8, 0xCC, 0x86, 0xF6, 0xD0, 0xB5,
-               0xCC, 0x80, 0xF6, 0xD0, 0xB5, 0xCC, 0x88, 0xF6,
-               0xD0, 0xB3, 0xCC, 0x81, 0xF6, 0xD1, 0x96, 0xCC,
-               0x88, 0xF6, 0xD0, 0xBA, 0xCC, 0x81, 0xF6, 0xD0,
-               0xB8, 0xCC, 0x80, 0xF6, 0xD1, 0x83, 0xCC, 0x86,
-               0xF6, 0xD1, 0xB4, 0xCC, 0x8F, 0xF6, 0xD1, 0xB5,
-               0xCC, 0x8F, 0xF6, 0xD0, 0x96, 0xCC, 0x86, 0xF6,
-               0xD0, 0xB6, 0xCC, 0x86, 0xF6, 0xD0, 0x90, 0xCC,
-               0x86, 0xF6, 0xD0, 0xB0, 0xCC, 0x86, 0xF6, 0xD0,
-               0x90, 0xCC, 0x88, 0xF6, 0xD0, 0xB0, 0xCC, 0x88,
-               0xF6, 0xD0, 0x95, 0xCC, 0x86, 0xF6, 0xD0, 0xB5,
-               0xCC, 0x86, 0xF6, 0xD3, 0x98, 0xCC, 0x88, 0xF6,
-               0xD3, 0x99, 0xCC, 0x88, 0xF6, 0xD0, 0x96, 0xCC,
-               0x88, 0xF6, 0xD0, 0xB6, 0xCC, 0x88, 0xF6, 0xD0,
-               0x97, 0xCC, 0x88, 0xF6, 0xD0, 0xB7, 0xCC, 0x88,
-               0xF6, 0xD0, 0x98, 0xCC, 0x84, 0xF6, 0xD0, 0xB8,
-               0xCC, 0x84, 0xF6, 0xD0, 0x98, 0xCC, 0x88, 0xF6,
-               0xD0, 0xB8, 0xCC, 0x88, 0xF6, 0xD0, 0x9E, 0xCC,
-               0x88, 0xF6, 0xD0, 0xBE, 0xCC, 0x88, 0xF6, 0xD3,
-               0xA8, 0xCC, 0x88, 0xF6, 0xD3, 0xA9, 0xCC, 0x88,
-               0xF6, 0xD0, 0xAD, 0xCC, 0x88, 0xF6, 0xD1, 0x8D,
-               0xCC, 0x88, 0xF6, 0xD0, 0xA3, 0xCC, 0x84, 0xF6,
-               0xD1, 0x83, 0xCC, 0x84, 0xF6, 0xD0, 0xA3, 0xCC,
-               0x88, 0xF6, 0xD1, 0x83, 0xCC, 0x88, 0xF6, 0xD0,
-               0xA3, 0xCC, 0x8B, 0xF6, 0xD1, 0x83, 0xCC, 0x8B,
-               0xF6, 0xD0, 0xA7, 0xCC, 0x88, 0xF6, 0xD1, 0x87,
-               0xCC, 0x88, 0xF6, 0xD0, 0xAB, 0xCC, 0x88, 0xF6,
-               0xD1, 0x8B, 0xCC, 0x88, 0xD5, 0xA5, 0xD6, 0x82,
-               0xF6, 0xD8, 0xA7, 0xD9, 0x93, 0xF6, 0xD8, 0xA7,
-               0xD9, 0x94, 0xF6, 0xD9, 0x88, 0xD9, 0x94, 0xF6,
-               0xD8, 0xA7, 0xD9, 0x95, 0xF6, 0xD9, 0x8A, 0xD9,
-               0x94, 0xD8, 0xA7, 0xD9, 0xB4, 0xD9, 0x88, 0xD9,
-               0xB4, 0xDB, 0x87, 0xD9, 0xB4, 0xD9, 0x8A, 0xD9,
-               0xB4, 0xF6, 0xDB, 0x95, 0xD9, 0x94, 0xF6, 0xDB,
-               0x81, 0xD9, 0x94, 0xF6, 0xDB, 0x92, 0xD9, 0x94,
-               0xF6, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0xF6,
-               0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0,
-               0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4,
-               0x95, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x96,
-               0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x97, 0xE0,
-               0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x9C, 0xE0, 0xA4,
-               0xBC, 0xF6, 0xE0, 0xA4, 0xA1, 0xE0, 0xA4, 0xBC,
-               0xF6, 0xE0, 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0xF6,
-               0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0,
-               0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA7,
-               0x87, 0xE0, 0xA6, 0xBE, 0xF6, 0xE0, 0xA7, 0x87,
-               0xE0, 0xA7, 0x97, 0xF6, 0xE0, 0xA6, 0xA1, 0xE0,
-               0xA6, 0xBC, 0xF6, 0xE0, 0xA6, 0xA2, 0xE0, 0xA6,
-               0xBC, 0xF6, 0xE0, 0xA6, 0xAF, 0xE0, 0xA6, 0xBC,
-               0xF6, 0xE0, 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0xF6,
-               0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0,
-               0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8,
-               0x97, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8, 0x9C,
-               0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8, 0xAB, 0xE0,
-               0xA8, 0xBC, 0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAD,
-               0x96, 0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE,
-               0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0xF6,
-               0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0xF6, 0xE0,
-               0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0xF6, 0xE0, 0xAE,
-               0x92, 0xE0, 0xAF, 0x97, 0xF6, 0xE0, 0xAF, 0x86,
-               0xE0, 0xAE, 0xBE, 0xF6, 0xE0, 0xAF, 0x87, 0xE0,
-               0xAE, 0xBE, 0xF6, 0xE0, 0xAF, 0x86, 0xE0, 0xAF,
-               0x97, 0xF6, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96,
-               0xF6, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0xF6,
-               0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0xF6, 0xE0,
-               0xB3, 0x86, 0xE0, 0xB3, 0x96, 0xF6, 0xE0, 0xB3,
-               0x86, 0xE0, 0xB3, 0x82, 0xF6, 0xE0, 0xB3, 0x86,
-               0xE0, 0xB3, 0x82, 0xE0, 0xB3, 0x95, 0xF6, 0xE0,
-               0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0xF6, 0xE0, 0xB5,
-               0x87, 0xE0, 0xB4, 0xBE, 0xF6, 0xE0, 0xB5, 0x86,
-               0xE0, 0xB5, 0x97, 0xF6, 0xE0, 0xB7, 0x99, 0xE0,
-               0xB7, 0x8A, 0xF6, 0xE0, 0xB7, 0x99, 0xE0, 0xB7,
-               0x8F, 0xF6, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F,
-               0xE0, 0xB7, 0x8A, 0xF6, 0xE0, 0xB7, 0x99, 0xE0,
-               0xB7, 0x9F, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,
-               0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0xE0, 0xBA,
-               0xAB, 0xE0, 0xBA, 0x99, 0xE0, 0xBA, 0xAB, 0xE0,
-               0xBA, 0xA1, 0xE0, 0xBC, 0x8B, 0xF6, 0xE0, 0xBD,
-               0x82, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x8C,
-               0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x91, 0xE0,
-               0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x96, 0xE0, 0xBE,
-               0xB7, 0xF6, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7,
-               0xF6, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0xF6,
-               0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0xF6, 0xE0,
-               0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xF6, 0xE0, 0xBE,
-               0xB2, 0xE0, 0xBE, 0x80, 0xE0, 0xBE, 0xB2, 0xE0,
-               0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0, 0xBE,
-               0xB3, 0xE0, 0xBE, 0x80, 0xE0, 0xBE, 0xB3, 0xE0,
-               0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0, 0xBD,
-               0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0, 0xBE, 0x92,
-               0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0x9C, 0xE0,
-               0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xA1, 0xE0, 0xBE,
-               0xB7, 0xF6, 0xE0, 0xBE, 0xA6, 0xE0, 0xBE, 0xB7,
-               0xF6, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, 0xB7, 0xF6,
-               0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0xF6, 0xE1,
-               0x80, 0xA5, 0xE1, 0x80, 0xAE, 0xF6, 0x41, 0xCC,
-               0xA5, 0xF6, 0x61, 0xCC, 0xA5, 0xF6, 0x42, 0xCC,
-               0x87, 0xF6, 0x62, 0xCC, 0x87, 0xF6, 0x42, 0xCC,
-               0xA3, 0xF6, 0x62, 0xCC, 0xA3, 0xF6, 0x42, 0xCC,
-               0xB1, 0xF6, 0x62, 0xCC, 0xB1, 0xF6, 0x43, 0xCC,
-               0xA7, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0xA7, 0xCC,
-               0x81, 0xF6, 0x44, 0xCC, 0x87, 0xF6, 0x64, 0xCC,
-               0x87, 0xF6, 0x44, 0xCC, 0xA3, 0xF6, 0x64, 0xCC,
-               0xA3, 0xF6, 0x44, 0xCC, 0xB1, 0xF6, 0x64, 0xCC,
-               0xB1, 0xF6, 0x44, 0xCC, 0xA7, 0xF6, 0x64, 0xCC,
-               0xA7, 0xF6, 0x44, 0xCC, 0xAD, 0xF6, 0x64, 0xCC,
-               0xAD, 0xF6, 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xF6,
-               0x65, 0xCC, 0x84, 0xCC, 0x80, 0xF6, 0x45, 0xCC,
-               0x84, 0xCC, 0x81, 0xF6, 0x65, 0xCC, 0x84, 0xCC,
-               0x81, 0xF6, 0x45, 0xCC, 0xAD, 0xF6, 0x65, 0xCC,
-               0xAD, 0xF6, 0x45, 0xCC, 0xB0, 0xF6, 0x65, 0xCC,
-               0xB0, 0xF6, 0x45, 0xCC, 0xA7, 0xCC, 0x86, 0xF6,
-               0x65, 0xCC, 0xA7, 0xCC, 0x86, 0xF6, 0x46, 0xCC,
-               0x87, 0xF6, 0x66, 0xCC, 0x87, 0xF6, 0x47, 0xCC,
-               0x84, 0xF6, 0x67, 0xCC, 0x84, 0xF6, 0x48, 0xCC,
-               0x87, 0xF6, 0x68, 0xCC, 0x87, 0xF6, 0x48, 0xCC,
-               0xA3, 0xF6, 0x68, 0xCC, 0xA3, 0xF6, 0x48, 0xCC,
-               0x88, 0xF6, 0x68, 0xCC, 0x88, 0xF6, 0x48, 0xCC,
-               0xA7, 0xF6, 0x68, 0xCC, 0xA7, 0xF6, 0x48, 0xCC,
-               0xAE, 0xF6, 0x68, 0xCC, 0xAE, 0xF6, 0x49, 0xCC,
-               0xB0, 0xF6, 0x69, 0xCC, 0xB0, 0xF6, 0x49, 0xCC,
-               0x88, 0xCC, 0x81, 0xF6, 0x69, 0xCC, 0x88, 0xCC,
-               0x81, 0xF6, 0x4B, 0xCC, 0x81, 0xF6, 0x6B, 0xCC,
-               0x81, 0xF6, 0x4B, 0xCC, 0xA3, 0xF6, 0x6B, 0xCC,
-               0xA3, 0xF6, 0x4B, 0xCC, 0xB1, 0xF6, 0x6B, 0xCC,
-               0xB1, 0xF6, 0x4C, 0xCC, 0xA3, 0xF6, 0x6C, 0xCC,
-               0xA3, 0xF6, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, 0xF6,
-               0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xF6, 0x4C, 0xCC,
-               0xB1, 0xF6, 0x6C, 0xCC, 0xB1, 0xF6, 0x4C, 0xCC,
-               0xAD, 0xF6, 0x6C, 0xCC, 0xAD, 0xF6, 0x4D, 0xCC,
-               0x81, 0xF6, 0x6D, 0xCC, 0x81, 0xF6, 0x4D, 0xCC,
-               0x87, 0xF6, 0x6D, 0xCC, 0x87, 0xF6, 0x4D, 0xCC,
-               0xA3, 0xF6, 0x6D, 0xCC, 0xA3, 0xF6, 0x4E, 0xCC,
-               0x87, 0xF6, 0x6E, 0xCC, 0x87, 0xF6, 0x4E, 0xCC,
-               0xA3, 0xF6, 0x6E, 0xCC, 0xA3, 0xF6, 0x4E, 0xCC,
-               0xB1, 0xF6, 0x6E, 0xCC, 0xB1, 0xF6, 0x4E, 0xCC,
-               0xAD, 0xF6, 0x6E, 0xCC, 0xAD, 0xF6, 0x4F, 0xCC,
-               0x83, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x83, 0xCC,
-               0x81, 0xF6, 0x4F, 0xCC, 0x83, 0xCC, 0x88, 0xF6,
-               0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xF6, 0x4F, 0xCC,
-               0x84, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x84, 0xCC,
-               0x80, 0xF6, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xF6,
-               0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xF6, 0x50, 0xCC,
-               0x81, 0xF6, 0x70, 0xCC, 0x81, 0xF6, 0x50, 0xCC,
-               0x87, 0xF6, 0x70, 0xCC, 0x87, 0xF6, 0x52, 0xCC,
-               0x87, 0xF6, 0x72, 0xCC, 0x87, 0xF6, 0x52, 0xCC,
-               0xA3, 0xF6, 0x72, 0xCC, 0xA3, 0xF6, 0x52, 0xCC,
-               0xA3, 0xCC, 0x84, 0xF6, 0x72, 0xCC, 0xA3, 0xCC,
-               0x84, 0xF6, 0x52, 0xCC, 0xB1, 0xF6, 0x72, 0xCC,
-               0xB1, 0xF6, 0x53, 0xCC, 0x87, 0xF6, 0x73, 0xCC,
-               0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xF6, 0x73, 0xCC,
-               0xA3, 0xF6, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xF6,
-               0x73, 0xCC, 0x81, 0xCC, 0x87, 0xF6, 0x53, 0xCC,
-               0x8C, 0xCC, 0x87, 0xF6, 0x73, 0xCC, 0x8C, 0xCC,
-               0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xCC, 0x87, 0xF6,
-               0x73, 0xCC, 0xA3, 0xCC, 0x87, 0xF6, 0x54, 0xCC,
-               0x87, 0xF6, 0x74, 0xCC, 0x87, 0xF6, 0x54, 0xCC,
-               0xA3, 0xF6, 0x74, 0xCC, 0xA3, 0xF6, 0x54, 0xCC,
-               0xB1, 0xF6, 0x74, 0xCC, 0xB1, 0xF6, 0x54, 0xCC,
-               0xAD, 0xF6, 0x74, 0xCC, 0xAD, 0xF6, 0x55, 0xCC,
-               0xA4, 0xF6, 0x75, 0xCC, 0xA4, 0xF6, 0x55, 0xCC,
-               0xB0, 0xF6, 0x75, 0xCC, 0xB0, 0xF6, 0x55, 0xCC,
-               0xAD, 0xF6, 0x75, 0xCC, 0xAD, 0xF6, 0x55, 0xCC,
-               0x83, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x83, 0xCC,
-               0x81, 0xF6, 0x55, 0xCC, 0x84, 0xCC, 0x88, 0xF6,
-               0x75, 0xCC, 0x84, 0xCC, 0x88, 0xF6, 0x56, 0xCC,
-               0x83, 0xF6, 0x76, 0xCC, 0x83, 0xF6, 0x56, 0xCC,
-               0xA3, 0xF6, 0x76, 0xCC, 0xA3, 0xF6, 0x57, 0xCC,
-               0x80, 0xF6, 0x77, 0xCC, 0x80, 0xF6, 0x57, 0xCC,
-               0x81, 0xF6, 0x77, 0xCC, 0x81, 0xF6, 0x57, 0xCC,
-               0x88, 0xF6, 0x77, 0xCC, 0x88, 0xF6, 0x57, 0xCC,
-               0x87, 0xF6, 0x77, 0xCC, 0x87, 0xF6, 0x57, 0xCC,
-               0xA3, 0xF6, 0x77, 0xCC, 0xA3, 0xF6, 0x58, 0xCC,
-               0x87, 0xF6, 0x78, 0xCC, 0x87, 0xF6, 0x58, 0xCC,
-               0x88, 0xF6, 0x78, 0xCC, 0x88, 0xF6, 0x59, 0xCC,
-               0x87, 0xF6, 0x79, 0xCC, 0x87, 0xF6, 0x5A, 0xCC,
-               0x82, 0xF6, 0x7A, 0xCC, 0x82, 0xF6, 0x5A, 0xCC,
-               0xA3, 0xF6, 0x7A, 0xCC, 0xA3, 0xF6, 0x5A, 0xCC,
-               0xB1, 0xF6, 0x7A, 0xCC, 0xB1, 0xF6, 0x68, 0xCC,
-               0xB1, 0xF6, 0x74, 0xCC, 0x88, 0xF6, 0x77, 0xCC,
-               0x8A, 0xF6, 0x79, 0xCC, 0x8A, 0x61, 0xCA, 0xBE,
-               0xF5, 0x05, 0xC5, 0xBF, 0xCC, 0x87, 0x73, 0xCC,
-               0x87, 0xF6, 0x41, 0xCC, 0xA3, 0xF6, 0x61, 0xCC,
-               0xA3, 0xF6, 0x41, 0xCC, 0x89, 0xF6, 0x61, 0xCC,
-               0x89, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xF6,
-               0x61, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x41, 0xCC,
-               0x82, 0xCC, 0x80, 0xF6, 0x61, 0xCC, 0x82, 0xCC,
-               0x80, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xF6,
-               0x61, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x41, 0xCC,
-               0x82, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x82, 0xCC,
-               0x83, 0xF6, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xF6,
-               0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x41, 0xCC,
-               0x86, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x86, 0xCC,
-               0x81, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x80, 0xF6,
-               0x61, 0xCC, 0x86, 0xCC, 0x80, 0xF6, 0x41, 0xCC,
-               0x86, 0xCC, 0x89, 0xF6, 0x61, 0xCC, 0x86, 0xCC,
-               0x89, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x83, 0xF6,
-               0x61, 0xCC, 0x86, 0xCC, 0x83, 0xF6, 0x41, 0xCC,
-               0xA3, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0xA3, 0xCC,
-               0x86, 0xF6, 0x45, 0xCC, 0xA3, 0xF6, 0x65, 0xCC,
-               0xA3, 0xF6, 0x45, 0xCC, 0x89, 0xF6, 0x65, 0xCC,
-               0x89, 0xF6, 0x45, 0xCC, 0x83, 0xF6, 0x65, 0xCC,
-               0x83, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x81, 0xF6,
-               0x65, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x45, 0xCC,
-               0x82, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x82, 0xCC,
-               0x80, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xF6,
-               0x65, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x45, 0xCC,
-               0x82, 0xCC, 0x83, 0xF6, 0x65, 0xCC, 0x82, 0xCC,
-               0x83, 0xF6, 0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xF6,
-               0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x49, 0xCC,
-               0x89, 0xF6, 0x69, 0xCC, 0x89, 0xF6, 0x49, 0xCC,
-               0xA3, 0xF6, 0x69, 0xCC, 0xA3, 0xF6, 0x4F, 0xCC,
-               0xA3, 0xF6, 0x6F, 0xCC, 0xA3, 0xF6, 0x4F, 0xCC,
-               0x89, 0xF6, 0x6F, 0xCC, 0x89, 0xF6, 0x4F, 0xCC,
-               0x82, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82, 0xCC,
-               0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xF6,
-               0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x4F, 0xCC,
-               0x82, 0xCC, 0x89, 0xF6, 0x6F, 0xCC, 0x82, 0xCC,
-               0x89, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xF6,
-               0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x4F, 0xCC,
-               0xA3, 0xCC, 0x82, 0xF6, 0x6F, 0xCC, 0xA3, 0xCC,
-               0x82, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xF6,
-               0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xF6, 0x4F, 0xCC,
-               0x9B, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x9B, 0xCC,
-               0x80, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x89, 0xF6,
-               0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xF6, 0x4F, 0xCC,
-               0x9B, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x9B, 0xCC,
-               0x83, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, 0xF6,
-               0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xF6, 0x55, 0xCC,
-               0xA3, 0xF6, 0x75, 0xCC, 0xA3, 0xF6, 0x55, 0xCC,
-               0x89, 0xF6, 0x75, 0xCC, 0x89, 0xF6, 0x55, 0xCC,
-               0x9B, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x9B, 0xCC,
-               0x81, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xF6,
-               0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xF6, 0x55, 0xCC,
-               0x9B, 0xCC, 0x89, 0xF6, 0x75, 0xCC, 0x9B, 0xCC,
-               0x89, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x83, 0xF6,
-               0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xF6, 0x55, 0xCC,
-               0x9B, 0xCC, 0xA3, 0xF6, 0x75, 0xCC, 0x9B, 0xCC,
-               0xA3, 0xF6, 0x59, 0xCC, 0x80, 0xF6, 0x79, 0xCC,
-               0x80, 0xF6, 0x59, 0xCC, 0xA3, 0xF6, 0x79, 0xCC,
-               0xA3, 0xF6, 0x59, 0xCC, 0x89, 0xF6, 0x79, 0xCC,
-               0x89, 0xF6, 0x59, 0xCC, 0x83, 0xF6, 0x79, 0xCC,
-               0x83, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xF6, 0xCE,
-               0xB1, 0xCC, 0x94, 0xF6, 0xCE, 0xB1, 0xCC, 0x93,
-               0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,
-               0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81,
-               0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xF6,
-               0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCE,
-               0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0x91,
-               0xCC, 0x93, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xF6,
-               0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE,
-               0x91, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0x91,
-               0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCC,
-               0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCC, 0x93,
-               0xCD, 0x82, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCD,
-               0x82, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xF6, 0xCE,
-               0xB5, 0xCC, 0x94, 0xF6, 0xCE, 0xB5, 0xCC, 0x93,
-               0xCC, 0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x94, 0xCC,
-               0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81,
-               0xF6, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xF6,
-               0xCE, 0x95, 0xCC, 0x93, 0xF6, 0xCE, 0x95, 0xCC,
-               0x94, 0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80,
-               0xF6, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xF6,
-               0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE,
-               0x95, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB7,
-               0xCC, 0x93, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xF6,
-               0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE,
-               0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xB7,
-               0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC,
-               0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC, 0x93,
-               0xCD, 0x82, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,
-               0x82, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xF6, 0xCE,
-               0x97, 0xCC, 0x94, 0xF6, 0xCE, 0x97, 0xCC, 0x93,
-               0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC,
-               0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81,
-               0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xF6,
-               0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCE,
-               0x97, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xB9,
-               0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0xCC, 0x94, 0xF6,
-               0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE,
-               0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xB9,
-               0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC,
-               0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x93,
-               0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x94, 0xCD,
-               0x82, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xF6, 0xCE,
-               0x99, 0xCC, 0x94, 0xF6, 0xCE, 0x99, 0xCC, 0x93,
-               0xCC, 0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x94, 0xCC,
-               0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81,
-               0xF6, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xF6,
-               0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCE,
-               0x99, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xBF,
-               0xCC, 0x93, 0xF6, 0xCE, 0xBF, 0xCC, 0x94, 0xF6,
-               0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE,
-               0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xBF,
-               0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xBF, 0xCC,
-               0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, 0x93,
-               0xF6, 0xCE, 0x9F, 0xCC, 0x94, 0xF6, 0xCE, 0x9F,
-               0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC,
-               0x94, 0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC, 0x93,
-               0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, 0x94, 0xCC,
-               0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xF6, 0xCF,
-               0x85, 0xCC, 0x94, 0xF6, 0xCF, 0x85, 0xCC, 0x93,
-               0xCC, 0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x94, 0xCC,
-               0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81,
-               0xF6, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xF6,
-               0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCF,
-               0x85, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xA5,
-               0xCC, 0x94, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCC,
-               0x80, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81,
-               0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xF6,
-               0xCF, 0x89, 0xCC, 0x93, 0xF6, 0xCF, 0x89, 0xCC,
-               0x94, 0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80,
-               0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xF6,
-               0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCF,
-               0x89, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCF, 0x89,
-               0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCF, 0x89, 0xCC,
-               0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xA9, 0xCC, 0x93,
-               0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xF6, 0xCE, 0xA9,
-               0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC,
-               0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC, 0x93,
-               0xCC, 0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC,
-               0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82,
-               0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xF6,
-               0xCE, 0xB1, 0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC,
-               0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x80, 0xF6, 0xCE,
-               0xB5, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC, 0x80,
-               0xF6, 0xCE, 0xB7, 0xCC, 0x81, 0xF6, 0xCE, 0xB9,
-               0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC, 0x81, 0xF6,
-               0xCE, 0xBF, 0xCC, 0x80, 0xF6, 0xCE, 0xBF, 0xCC,
-               0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x80, 0xF6, 0xCF,
-               0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC, 0x80,
-               0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xF6, 0xCE, 0xB1,
-               0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC,
-               0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC, 0x93,
-               0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC,
-               0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB1,
-               0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE,
-               0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
-               0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
-               0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
-               0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85,
-               0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xF6,
-               0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
-               0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
-               0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81,
-               0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCC,
-               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93,
-               0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC,
-               0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xB7,
-               0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC,
-               0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x93,
-               0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC,
-               0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7,
-               0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE,
-               0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
-               0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
-               0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
-               0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85,
-               0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xF6,
-               0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
-               0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
-               0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81,
-               0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC,
-               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93,
-               0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC,
-               0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCF, 0x89,
-               0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC,
-               0x94, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x93,
-               0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC,
-               0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89,
-               0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCF,
-               0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
-               0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
-               0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD,
-               0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85,
-               0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xF6,
-               0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
-               0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD,
-               0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81,
-               0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC,
-               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93,
-               0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC,
-               0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xB1,
-               0xCC, 0x86, 0xF6, 0xCE, 0xB1, 0xCC, 0x84, 0xF6,
-               0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE,
-               0xB1, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC, 0x81,
-               0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCD, 0x82, 0xF6,
-               0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE,
-               0x91, 0xCC, 0x86, 0xF6, 0xCE, 0x91, 0xCC, 0x84,
-               0xF6, 0xCE, 0x91, 0xCC, 0x80, 0xF6, 0xCE, 0x91,
-               0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCD, 0x85, 0x20,
-               0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0x20, 0xCC, 0x93,
-               0x20, 0xCD, 0x82, 0xF5, 0x05, 0xC2, 0xA8, 0xCD,
-               0x82, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE,
-               0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7,
-               0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x81, 0xCD,
-               0x85, 0xF6, 0xCE, 0xB7, 0xCD, 0x82, 0xF6, 0xCE,
-               0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x95,
-               0xCC, 0x80, 0xF6, 0xCE, 0x95, 0xCC, 0x81, 0xF6,
-               0xCE, 0x97, 0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC,
-               0x81, 0xF6, 0xCE, 0x97, 0xCD, 0x85, 0xF5, 0x06,
-               0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0x20, 0xCC, 0x93,
-               0xCC, 0x80, 0xF5, 0x06, 0xE1, 0xBE, 0xBF, 0xCC,
-               0x81, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xF5, 0x06,
-               0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0x20, 0xCC, 0x93,
-               0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x86, 0xF6,
-               0xCE, 0xB9, 0xCC, 0x84, 0xF6, 0xCE, 0xB9, 0xCC,
-               0x88, 0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC, 0x88,
-               0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCD, 0x82, 0xF6,
-               0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE,
-               0x99, 0xCC, 0x86, 0xF6, 0xCE, 0x99, 0xCC, 0x84,
-               0xF6, 0xCE, 0x99, 0xCC, 0x80, 0xF6, 0xCE, 0x99,
-               0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE, 0xCC,
-               0x80, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xF5, 0x06,
-               0xE1, 0xBF, 0xBE, 0xCC, 0x81, 0x20, 0xCC, 0x94,
-               0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE, 0xCD,
-               0x82, 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCF,
-               0x85, 0xCC, 0x86, 0xF6, 0xCF, 0x85, 0xCC, 0x84,
-               0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xF6,
-               0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0xCF,
-               0x81, 0xCC, 0x93, 0xF6, 0xCF, 0x81, 0xCC, 0x94,
-               0xF6, 0xCF, 0x85, 0xCD, 0x82, 0xF6, 0xCF, 0x85,
-               0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE, 0xA5, 0xCC,
-               0x86, 0xF6, 0xCE, 0xA5, 0xCC, 0x84, 0xF6, 0xCE,
-               0xA5, 0xCC, 0x80, 0xF6, 0xCE, 0xA5, 0xCC, 0x81,
-               0xF6, 0xCE, 0xA1, 0xCC, 0x94, 0xF5, 0x05, 0xC2,
-               0xA8, 0xCC, 0x80, 0x20, 0xCC, 0x88, 0xCC, 0x80,
-               0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81, 0x20, 0xCC,
-               0x88, 0xCC, 0x81, 0xF6, 0x60, 0xF6, 0xCF, 0x89,
-               0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCD,
-               0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85,
-               0xF6, 0xCF, 0x89, 0xCD, 0x82, 0xF6, 0xCF, 0x89,
-               0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x9F, 0xCC,
-               0x80, 0xF6, 0xCE, 0x9F, 0xCC, 0x81, 0xF6, 0xCE,
-               0xA9, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC, 0x81,
-               0xF6, 0xCE, 0xA9, 0xCD, 0x85, 0xF5, 0x03, 0xC2,
-               0xB4, 0x20, 0xCC, 0x81, 0x20, 0xCC, 0x94, 0xF5,
-               0x04, 0xE2, 0x80, 0x82, 0x20, 0xF5, 0x04, 0xE2,
-               0x80, 0x83, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-               0x20, 0x20, 0x20, 0x20, 0xE2, 0x80, 0x90, 0x20,
-               0xCC, 0xB3, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
-               0x20, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2,
-               0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
-               0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80,
-               0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x21,
-               0x21, 0x20, 0xCC, 0x85, 0x3F, 0x3F, 0x3F, 0x21,
-               0x21, 0x3F, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
-               0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x20, 0x30,
-               0x69, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2B,
-               0xE2, 0x88, 0x92, 0x3D, 0x28, 0x29, 0x6E, 0x30,
-               0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
-               0x39, 0x2B, 0xE2, 0x88, 0x92, 0x3D, 0x28, 0x29,
-               0x52, 0x73, 0x61, 0x2F, 0x63, 0x61, 0x2F, 0x73,
-               0x43, 0xC2, 0xB0, 0x43, 0x63, 0x2F, 0x6F, 0x63,
-               0x2F, 0x75, 0xC6, 0x90, 0xC2, 0xB0, 0x46, 0x67,
-               0x48, 0x48, 0x48, 0x68, 0xC4, 0xA7, 0x49, 0x49,
-               0x4C, 0x6C, 0x4E, 0x4E, 0x6F, 0x50, 0x51, 0x52,
-               0x52, 0x52, 0x53, 0x4D, 0x54, 0x45, 0x4C, 0x54,
-               0x4D, 0x5A, 0xF6, 0xCE, 0xA9, 0x5A, 0xF6, 0x4B,
-               0xF6, 0x41, 0xCC, 0x8A, 0x42, 0x43, 0x65, 0x45,
-               0x46, 0x4D, 0x6F, 0xD7, 0x90, 0xD7, 0x91, 0xD7,
-               0x92, 0xD7, 0x93, 0x69, 0xCE, 0xB3, 0xCE, 0x93,
-               0xCE, 0xA0, 0xE2, 0x88, 0x91, 0x44, 0x64, 0x65,
-               0x69, 0x6A, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x32,
-               0xE2, 0x81, 0x84, 0x33, 0x31, 0xE2, 0x81, 0x84,
-               0x35, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x33, 0xE2,
-               0x81, 0x84, 0x35, 0x34, 0xE2, 0x81, 0x84, 0x35,
-               0x31, 0xE2, 0x81, 0x84, 0x36, 0x35, 0xE2, 0x81,
-               0x84, 0x36, 0x31, 0xE2, 0x81, 0x84, 0x38, 0x33,
-               0xE2, 0x81, 0x84, 0x38, 0x35, 0xE2, 0x81, 0x84,
-               0x38, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x31, 0xE2,
-               0x81, 0x84, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
-               0x49, 0x56, 0x56, 0x56, 0x49, 0x56, 0x49, 0x49,
-               0x56, 0x49, 0x49, 0x49, 0x49, 0x58, 0x58, 0x58,
-               0x49, 0x58, 0x49, 0x49, 0x4C, 0x43, 0x44, 0x4D,
-               0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x76,
-               0x76, 0x76, 0x69, 0x76, 0x69, 0x69, 0x76, 0x69,
-               0x69, 0x69, 0x69, 0x78, 0x78, 0x78, 0x69, 0x78,
-               0x69, 0x69, 0x6C, 0x63, 0x64, 0x6D, 0xF6, 0xE2,
-               0x86, 0x90, 0xCC, 0xB8, 0xF6, 0xE2, 0x86, 0x92,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x86, 0x94, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x87, 0x94, 0xCC, 0xB8, 0xF6, 0xE2, 0x87, 0x92,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0x83, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x88, 0x88, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x88, 0x8B, 0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0xA3,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0xA5, 0xCC, 0xB8,
-               0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
-               0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2,
-               0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE,
-               0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xF6, 0xE2,
-               0x88, 0xBC, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x83,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x85, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x89, 0x88, 0xCC, 0xB8, 0xF6, 0x3D,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xA1, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, 0xF6, 0x3C,
-               0xCC, 0xB8, 0xF6, 0x3E, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x89, 0xA4, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xA5,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB2, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x89, 0xB6, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB7,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x8A, 0x82, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x83,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x86, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x8A, 0x87, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x8A, 0xA2, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xA8,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x89, 0xBC, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBD,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x8A, 0xB2, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB3,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0xF6, 0xE3,
-               0x80, 0x88, 0xF6, 0xE3, 0x80, 0x89, 0x31, 0x32,
-               0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x31,
-               0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31,
-               0x34, 0x31, 0x35, 0x31, 0x36, 0x31, 0x37, 0x31,
-               0x38, 0x31, 0x39, 0x32, 0x30, 0x28, 0x31, 0x29,
-               0x28, 0x32, 0x29, 0x28, 0x33, 0x29, 0x28, 0x34,
-               0x29, 0x28, 0x35, 0x29, 0x28, 0x36, 0x29, 0x28,
-               0x37, 0x29, 0x28, 0x38, 0x29, 0x28, 0x39, 0x29,
-               0x28, 0x31, 0x30, 0x29, 0x28, 0x31, 0x31, 0x29,
-               0x28, 0x31, 0x32, 0x29, 0x28, 0x31, 0x33, 0x29,
-               0x28, 0x31, 0x34, 0x29, 0x28, 0x31, 0x35, 0x29,
-               0x28, 0x31, 0x36, 0x29, 0x28, 0x31, 0x37, 0x29,
-               0x28, 0x31, 0x38, 0x29, 0x28, 0x31, 0x39, 0x29,
-               0x28, 0x32, 0x30, 0x29, 0x31, 0x2E, 0x32, 0x2E,
-               0x33, 0x2E, 0x34, 0x2E, 0x35, 0x2E, 0x36, 0x2E,
-               0x37, 0x2E, 0x38, 0x2E, 0x39, 0x2E, 0x31, 0x30,
-               0x2E, 0x31, 0x31, 0x2E, 0x31, 0x32, 0x2E, 0x31,
-               0x33, 0x2E, 0x31, 0x34, 0x2E, 0x31, 0x35, 0x2E,
-               0x31, 0x36, 0x2E, 0x31, 0x37, 0x2E, 0x31, 0x38,
-               0x2E, 0x31, 0x39, 0x2E, 0x32, 0x30, 0x2E, 0x28,
-               0x61, 0x29, 0x28, 0x62, 0x29, 0x28, 0x63, 0x29,
-               0x28, 0x64, 0x29, 0x28, 0x65, 0x29, 0x28, 0x66,
-               0x29, 0x28, 0x67, 0x29, 0x28, 0x68, 0x29, 0x28,
-               0x69, 0x29, 0x28, 0x6A, 0x29, 0x28, 0x6B, 0x29,
-               0x28, 0x6C, 0x29, 0x28, 0x6D, 0x29, 0x28, 0x6E,
-               0x29, 0x28, 0x6F, 0x29, 0x28, 0x70, 0x29, 0x28,
-               0x71, 0x29, 0x28, 0x72, 0x29, 0x28, 0x73, 0x29,
-               0x28, 0x74, 0x29, 0x28, 0x75, 0x29, 0x28, 0x76,
-               0x29, 0x28, 0x77, 0x29, 0x28, 0x78, 0x29, 0x28,
-               0x79, 0x29, 0x28, 0x7A, 0x29, 0x41, 0x42, 0x43,
-               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
-               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
-               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x30, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
-               0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x3A, 0x3A,
-               0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0xF6, 0xE2,
-               0xAB, 0x9D, 0xCC, 0xB8, 0xE6, 0xAF, 0x8D, 0xE9,
-               0xBE, 0x9F, 0xE4, 0xB8, 0x80, 0xE4, 0xB8, 0xA8,
-               0xE4, 0xB8, 0xB6, 0xE4, 0xB8, 0xBF, 0xE4, 0xB9,
-               0x99, 0xE4, 0xBA, 0x85, 0xE4, 0xBA, 0x8C, 0xE4,
-               0xBA, 0xA0, 0xE4, 0xBA, 0xBA, 0xE5, 0x84, 0xBF,
-               0xE5, 0x85, 0xA5, 0xE5, 0x85, 0xAB, 0xE5, 0x86,
-               0x82, 0xE5, 0x86, 0x96, 0xE5, 0x86, 0xAB, 0xE5,
-               0x87, 0xA0, 0xE5, 0x87, 0xB5, 0xE5, 0x88, 0x80,
-               0xE5, 0x8A, 0x9B, 0xE5, 0x8B, 0xB9, 0xE5, 0x8C,
-               0x95, 0xE5, 0x8C, 0x9A, 0xE5, 0x8C, 0xB8, 0xE5,
-               0x8D, 0x81, 0xE5, 0x8D, 0x9C, 0xE5, 0x8D, 0xA9,
-               0xE5, 0x8E, 0x82, 0xE5, 0x8E, 0xB6, 0xE5, 0x8F,
-               0x88, 0xE5, 0x8F, 0xA3, 0xE5, 0x9B, 0x97, 0xE5,
-               0x9C, 0x9F, 0xE5, 0xA3, 0xAB, 0xE5, 0xA4, 0x82,
-               0xE5, 0xA4, 0x8A, 0xE5, 0xA4, 0x95, 0xE5, 0xA4,
-               0xA7, 0xE5, 0xA5, 0xB3, 0xE5, 0xAD, 0x90, 0xE5,
-               0xAE, 0x80, 0xE5, 0xAF, 0xB8, 0xE5, 0xB0, 0x8F,
-               0xE5, 0xB0, 0xA2, 0xE5, 0xB0, 0xB8, 0xE5, 0xB1,
-               0xAE, 0xE5, 0xB1, 0xB1, 0xE5, 0xB7, 0x9B, 0xE5,
-               0xB7, 0xA5, 0xE5, 0xB7, 0xB1, 0xE5, 0xB7, 0xBE,
-               0xE5, 0xB9, 0xB2, 0xE5, 0xB9, 0xBA, 0xE5, 0xB9,
-               0xBF, 0xE5, 0xBB, 0xB4, 0xE5, 0xBB, 0xBE, 0xE5,
-               0xBC, 0x8B, 0xE5, 0xBC, 0x93, 0xE5, 0xBD, 0x90,
-               0xE5, 0xBD, 0xA1, 0xE5, 0xBD, 0xB3, 0xE5, 0xBF,
-               0x83, 0xE6, 0x88, 0x88, 0xE6, 0x88, 0xB6, 0xE6,
-               0x89, 0x8B, 0xE6, 0x94, 0xAF, 0xE6, 0x94, 0xB4,
-               0xE6, 0x96, 0x87, 0xE6, 0x96, 0x97, 0xE6, 0x96,
-               0xA4, 0xE6, 0x96, 0xB9, 0xE6, 0x97, 0xA0, 0xE6,
-               0x97, 0xA5, 0xE6, 0x9B, 0xB0, 0xE6, 0x9C, 0x88,
-               0xE6, 0x9C, 0xA8, 0xE6, 0xAC, 0xA0, 0xE6, 0xAD,
-               0xA2, 0xE6, 0xAD, 0xB9, 0xE6, 0xAE, 0xB3, 0xE6,
-               0xAF, 0x8B, 0xE6, 0xAF, 0x94, 0xE6, 0xAF, 0x9B,
-               0xE6, 0xB0, 0x8F, 0xE6, 0xB0, 0x94, 0xE6, 0xB0,
-               0xB4, 0xE7, 0x81, 0xAB, 0xE7, 0x88, 0xAA, 0xE7,
-               0x88, 0xB6, 0xE7, 0x88, 0xBB, 0xE7, 0x88, 0xBF,
-               0xE7, 0x89, 0x87, 0xE7, 0x89, 0x99, 0xE7, 0x89,
-               0x9B, 0xE7, 0x8A, 0xAC, 0xE7, 0x8E, 0x84, 0xE7,
-               0x8E, 0x89, 0xE7, 0x93, 0x9C, 0xE7, 0x93, 0xA6,
-               0xE7, 0x94, 0x98, 0xE7, 0x94, 0x9F, 0xE7, 0x94,
-               0xA8, 0xE7, 0x94, 0xB0, 0xE7, 0x96, 0x8B, 0xE7,
-               0x96, 0x92, 0xE7, 0x99, 0xB6, 0xE7, 0x99, 0xBD,
-               0xE7, 0x9A, 0xAE, 0xE7, 0x9A, 0xBF, 0xE7, 0x9B,
-               0xAE, 0xE7, 0x9F, 0x9B, 0xE7, 0x9F, 0xA2, 0xE7,
-               0x9F, 0xB3, 0xE7, 0xA4, 0xBA, 0xE7, 0xA6, 0xB8,
-               0xE7, 0xA6, 0xBE, 0xE7, 0xA9, 0xB4, 0xE7, 0xAB,
-               0x8B, 0xE7, 0xAB, 0xB9, 0xE7, 0xB1, 0xB3, 0xE7,
-               0xB3, 0xB8, 0xE7, 0xBC, 0xB6, 0xE7, 0xBD, 0x91,
-               0xE7, 0xBE, 0x8A, 0xE7, 0xBE, 0xBD, 0xE8, 0x80,
-               0x81, 0xE8, 0x80, 0x8C, 0xE8, 0x80, 0x92, 0xE8,
-               0x80, 0xB3, 0xE8, 0x81, 0xBF, 0xE8, 0x82, 0x89,
-               0xE8, 0x87, 0xA3, 0xE8, 0x87, 0xAA, 0xE8, 0x87,
-               0xB3, 0xE8, 0x87, 0xBC, 0xE8, 0x88, 0x8C, 0xE8,
-               0x88, 0x9B, 0xE8, 0x88, 0x9F, 0xE8, 0x89, 0xAE,
-               0xE8, 0x89, 0xB2, 0xE8, 0x89, 0xB8, 0xE8, 0x99,
-               0x8D, 0xE8, 0x99, 0xAB, 0xE8, 0xA1, 0x80, 0xE8,
-               0xA1, 0x8C, 0xE8, 0xA1, 0xA3, 0xE8, 0xA5, 0xBE,
-               0xE8, 0xA6, 0x8B, 0xE8, 0xA7, 0x92, 0xE8, 0xA8,
-               0x80, 0xE8, 0xB0, 0xB7, 0xE8, 0xB1, 0x86, 0xE8,
-               0xB1, 0x95, 0xE8, 0xB1, 0xB8, 0xE8, 0xB2, 0x9D,
-               0xE8, 0xB5, 0xA4, 0xE8, 0xB5, 0xB0, 0xE8, 0xB6,
-               0xB3, 0xE8, 0xBA, 0xAB, 0xE8, 0xBB, 0x8A, 0xE8,
-               0xBE, 0x9B, 0xE8, 0xBE, 0xB0, 0xE8, 0xBE, 0xB5,
-               0xE9, 0x82, 0x91, 0xE9, 0x85, 0x89, 0xE9, 0x87,
-               0x86, 0xE9, 0x87, 0x8C, 0xE9, 0x87, 0x91, 0xE9,
-               0x95, 0xB7, 0xE9, 0x96, 0x80, 0xE9, 0x98, 0x9C,
-               0xE9, 0x9A, 0xB6, 0xE9, 0x9A, 0xB9, 0xE9, 0x9B,
-               0xA8, 0xE9, 0x9D, 0x91, 0xE9, 0x9D, 0x9E, 0xE9,
-               0x9D, 0xA2, 0xE9, 0x9D, 0xA9, 0xE9, 0x9F, 0x8B,
-               0xE9, 0x9F, 0xAD, 0xE9, 0x9F, 0xB3, 0xE9, 0xA0,
-               0x81, 0xE9, 0xA2, 0xA8, 0xE9, 0xA3, 0x9B, 0xE9,
-               0xA3, 0x9F, 0xE9, 0xA6, 0x96, 0xE9, 0xA6, 0x99,
-               0xE9, 0xA6, 0xAC, 0xE9, 0xAA, 0xA8, 0xE9, 0xAB,
-               0x98, 0xE9, 0xAB, 0x9F, 0xE9, 0xAC, 0xA5, 0xE9,
-               0xAC, 0xAF, 0xE9, 0xAC, 0xB2, 0xE9, 0xAC, 0xBC,
-               0xE9, 0xAD, 0x9A, 0xE9, 0xB3, 0xA5, 0xE9, 0xB9,
-               0xB5, 0xE9, 0xB9, 0xBF, 0xE9, 0xBA, 0xA5, 0xE9,
-               0xBA, 0xBB, 0xE9, 0xBB, 0x83, 0xE9, 0xBB, 0x8D,
-               0xE9, 0xBB, 0x91, 0xE9, 0xBB, 0xB9, 0xE9, 0xBB,
-               0xBD, 0xE9, 0xBC, 0x8E, 0xE9, 0xBC, 0x93, 0xE9,
-               0xBC, 0xA0, 0xE9, 0xBC, 0xBB, 0xE9, 0xBD, 0x8A,
-               0xE9, 0xBD, 0x92, 0xE9, 0xBE, 0x8D, 0xE9, 0xBE,
-               0x9C, 0xE9, 0xBE, 0xA0, 0x20, 0xE3, 0x80, 0x92,
-               0xE5, 0x8D, 0x81, 0xE5, 0x8D, 0x84, 0xE5, 0x8D,
-               0x85, 0xF6, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x81, 0x91, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81,
-               0x93, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x95,
-               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x97, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x81, 0x99, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x81, 0xA1, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81,
-               0xA4, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA6,
-               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA8, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A,
-               0xF6, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0xF6, 0xE3,
-               0x81, 0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81,
-               0xB5, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x81, 0xB8,
-               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xB8, 0xE3,
-               0x82, 0x9A, 0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A,
-               0xF6, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x20,
-               0xE3, 0x82, 0x99, 0x20, 0xE3, 0x82, 0x9A, 0xF6,
-               0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0xE3, 0x82,
-               0x88, 0xE3, 0x82, 0x8A, 0xF6, 0xE3, 0x82, 0xAB,
-               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xAD, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x82, 0xAF, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x82, 0xB7, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82,
-               0xB9, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBB,
-               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBD, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBF, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x83, 0x88, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83,
-               0x8F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x8F,
-               0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x83, 0x92, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x83, 0x92, 0xE3, 0x82,
-               0x9A, 0xF6, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0xF6,
-               0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x83, 0x98, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x83,
-               0x9B, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x9B,
-               0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x82, 0xA6, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x83, 0xAF, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x83, 0xBD, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB3,
-               0xE3, 0x83, 0x88, 0xE1, 0x84, 0x80, 0xE1, 0x84,
-               0x81, 0xE1, 0x86, 0xAA, 0xE1, 0x84, 0x82, 0xE1,
-               0x86, 0xAC, 0xE1, 0x86, 0xAD, 0xE1, 0x84, 0x83,
-               0xE1, 0x84, 0x84, 0xE1, 0x84, 0x85, 0xE1, 0x86,
-               0xB0, 0xE1, 0x86, 0xB1, 0xE1, 0x86, 0xB2, 0xE1,
-               0x86, 0xB3, 0xE1, 0x86, 0xB4, 0xE1, 0x86, 0xB5,
-               0xE1, 0x84, 0x9A, 0xE1, 0x84, 0x86, 0xE1, 0x84,
-               0x87, 0xE1, 0x84, 0x88, 0xE1, 0x84, 0xA1, 0xE1,
-               0x84, 0x89, 0xE1, 0x84, 0x8A, 0xE1, 0x84, 0x8B,
-               0xE1, 0x84, 0x8C, 0xE1, 0x84, 0x8D, 0xE1, 0x84,
-               0x8E, 0xE1, 0x84, 0x8F, 0xE1, 0x84, 0x90, 0xE1,
-               0x84, 0x91, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1,
-               0xE1, 0x85, 0xA2, 0xE1, 0x85, 0xA3, 0xE1, 0x85,
-               0xA4, 0xE1, 0x85, 0xA5, 0xE1, 0x85, 0xA6, 0xE1,
-               0x85, 0xA7, 0xE1, 0x85, 0xA8, 0xE1, 0x85, 0xA9,
-               0xE1, 0x85, 0xAA, 0xE1, 0x85, 0xAB, 0xE1, 0x85,
-               0xAC, 0xE1, 0x85, 0xAD, 0xE1, 0x85, 0xAE, 0xE1,
-               0x85, 0xAF, 0xE1, 0x85, 0xB0, 0xE1, 0x85, 0xB1,
-               0xE1, 0x85, 0xB2, 0xE1, 0x85, 0xB3, 0xE1, 0x85,
-               0xB4, 0xE1, 0x85, 0xB5, 0xE1, 0x85, 0xA0, 0xE1,
-               0x84, 0x94, 0xE1, 0x84, 0x95, 0xE1, 0x87, 0x87,
-               0xE1, 0x87, 0x88, 0xE1, 0x87, 0x8C, 0xE1, 0x87,
-               0x8E, 0xE1, 0x87, 0x93, 0xE1, 0x87, 0x97, 0xE1,
-               0x87, 0x99, 0xE1, 0x84, 0x9C, 0xE1, 0x87, 0x9D,
-               0xE1, 0x87, 0x9F, 0xE1, 0x84, 0x9D, 0xE1, 0x84,
-               0x9E, 0xE1, 0x84, 0xA0, 0xE1, 0x84, 0xA2, 0xE1,
-               0x84, 0xA3, 0xE1, 0x84, 0xA7, 0xE1, 0x84, 0xA9,
-               0xE1, 0x84, 0xAB, 0xE1, 0x84, 0xAC, 0xE1, 0x84,
-               0xAD, 0xE1, 0x84, 0xAE, 0xE1, 0x84, 0xAF, 0xE1,
-               0x84, 0xB2, 0xE1, 0x84, 0xB6, 0xE1, 0x85, 0x80,
-               0xE1, 0x85, 0x87, 0xE1, 0x85, 0x8C, 0xE1, 0x87,
-               0xB1, 0xE1, 0x87, 0xB2, 0xE1, 0x85, 0x97, 0xE1,
-               0x85, 0x98, 0xE1, 0x85, 0x99, 0xE1, 0x86, 0x84,
-               0xE1, 0x86, 0x85, 0xE1, 0x86, 0x88, 0xE1, 0x86,
-               0x91, 0xE1, 0x86, 0x92, 0xE1, 0x86, 0x94, 0xE1,
-               0x86, 0x9E, 0xE1, 0x86, 0xA1, 0xE4, 0xB8, 0x80,
-               0xE4, 0xBA, 0x8C, 0xE4, 0xB8, 0x89, 0xE5, 0x9B,
-               0x9B, 0xE4, 0xB8, 0x8A, 0xE4, 0xB8, 0xAD, 0xE4,
-               0xB8, 0x8B, 0xE7, 0x94, 0xB2, 0xE4, 0xB9, 0x99,
-               0xE4, 0xB8, 0x99, 0xE4, 0xB8, 0x81, 0xE5, 0xA4,
-               0xA9, 0xE5, 0x9C, 0xB0, 0xE4, 0xBA, 0xBA, 0x28,
-               0xE1, 0x84, 0x80, 0x29, 0x28, 0xE1, 0x84, 0x82,
-               0x29, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x28, 0xE1,
-               0x84, 0x85, 0x29, 0x28, 0xE1, 0x84, 0x86, 0x29,
-               0x28, 0xE1, 0x84, 0x87, 0x29, 0x28, 0xE1, 0x84,
-               0x89, 0x29, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x28,
-               0xE1, 0x84, 0x8C, 0x29, 0x28, 0xE1, 0x84, 0x8E,
-               0x29, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x28, 0xE1,
-               0x84, 0x90, 0x29, 0x28, 0xE1, 0x84, 0x91, 0x29,
-               0x28, 0xE1, 0x84, 0x92, 0x29, 0x28, 0xE1, 0x84,
-               0x80, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x82, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x83, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x85, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x86, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x87, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x89, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x8E, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x90, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x91, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x92, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84,
-               0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x28, 0xE4, 0xB8,
-               0x80, 0x29, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x28,
-               0xE4, 0xB8, 0x89, 0x29, 0x28, 0xE5, 0x9B, 0x9B,
-               0x29, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x28, 0xE5,
-               0x85, 0xAD, 0x29, 0x28, 0xE4, 0xB8, 0x83, 0x29,
-               0x28, 0xE5, 0x85, 0xAB, 0x29, 0x28, 0xE4, 0xB9,
-               0x9D, 0x29, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x28,
-               0xE6, 0x9C, 0x88, 0x29, 0x28, 0xE7, 0x81, 0xAB,
-               0x29, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x28, 0xE6,
-               0x9C, 0xA8, 0x29, 0x28, 0xE9, 0x87, 0x91, 0x29,
-               0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x28, 0xE6, 0x97,
-               0xA5, 0x29, 0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x28,
-               0xE6, 0x9C, 0x89, 0x29, 0x28, 0xE7, 0xA4, 0xBE,
-               0x29, 0x28, 0xE5, 0x90, 0x8D, 0x29, 0x28, 0xE7,
-               0x89, 0xB9, 0x29, 0x28, 0xE8, 0xB2, 0xA1, 0x29,
-               0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x28, 0xE5, 0x8A,
-               0xB4, 0x29, 0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x28,
-               0xE5, 0x91, 0xBC, 0x29, 0x28, 0xE5, 0xAD, 0xA6,
-               0x29, 0x28, 0xE7, 0x9B, 0xA3, 0x29, 0x28, 0xE4,
-               0xBC, 0x81, 0x29, 0x28, 0xE8, 0xB3, 0x87, 0x29,
-               0x28, 0xE5, 0x8D, 0x94, 0x29, 0x28, 0xE7, 0xA5,
-               0xAD, 0x29, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x28,
-               0xE8, 0x87, 0xAA, 0x29, 0x28, 0xE8, 0x87, 0xB3,
-               0x29, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, 0x32,
-               0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32,
-               0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, 0x33,
-               0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0xE1,
-               0x84, 0x80, 0xE1, 0x84, 0x82, 0xE1, 0x84, 0x83,
-               0xE1, 0x84, 0x85, 0xE1, 0x84, 0x86, 0xE1, 0x84,
-               0x87, 0xE1, 0x84, 0x89, 0xE1, 0x84, 0x8B, 0xE1,
-               0x84, 0x8C, 0xE1, 0x84, 0x8E, 0xE1, 0x84, 0x8F,
-               0xE1, 0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1, 0x84,
-               0x92, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0xE1,
-               0x84, 0x82, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x83,
-               0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x85, 0xE1, 0x85,
-               0xA1, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0xE1,
-               0x84, 0x87, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x89,
-               0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x8B, 0xE1, 0x85,
-               0xA1, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0xE1,
-               0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x8F,
-               0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x90, 0xE1, 0x85,
-               0xA1, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0xE1,
-               0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE4, 0xB8, 0x80,
-               0xE4, 0xBA, 0x8C, 0xE4, 0xB8, 0x89, 0xE5, 0x9B,
-               0x9B, 0xE4, 0xBA, 0x94, 0xE5, 0x85, 0xAD, 0xE4,
-               0xB8, 0x83, 0xE5, 0x85, 0xAB, 0xE4, 0xB9, 0x9D,
-               0xE5, 0x8D, 0x81, 0xE6, 0x9C, 0x88, 0xE7, 0x81,
-               0xAB, 0xE6, 0xB0, 0xB4, 0xE6, 0x9C, 0xA8, 0xE9,
-               0x87, 0x91, 0xE5, 0x9C, 0x9F, 0xE6, 0x97, 0xA5,
-               0xE6, 0xA0, 0xAA, 0xE6, 0x9C, 0x89, 0xE7, 0xA4,
-               0xBE, 0xE5, 0x90, 0x8D, 0xE7, 0x89, 0xB9, 0xE8,
-               0xB2, 0xA1, 0xE7, 0xA5, 0x9D, 0xE5, 0x8A, 0xB4,
-               0xE7, 0xA7, 0x98, 0xE7, 0x94, 0xB7, 0xE5, 0xA5,
-               0xB3, 0xE9, 0x81, 0xA9, 0xE5, 0x84, 0xAA, 0xE5,
-               0x8D, 0xB0, 0xE6, 0xB3, 0xA8, 0xE9, 0xA0, 0x85,
-               0xE4, 0xBC, 0x91, 0xE5, 0x86, 0x99, 0xE6, 0xAD,
-               0xA3, 0xE4, 0xB8, 0x8A, 0xE4, 0xB8, 0xAD, 0xE4,
-               0xB8, 0x8B, 0xE5, 0xB7, 0xA6, 0xE5, 0x8F, 0xB3,
-               0xE5, 0x8C, 0xBB, 0xE5, 0xAE, 0x97, 0xE5, 0xAD,
-               0xA6, 0xE7, 0x9B, 0xA3, 0xE4, 0xBC, 0x81, 0xE8,
-               0xB3, 0x87, 0xE5, 0x8D, 0x94, 0xE5, 0xA4, 0x9C,
-               0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39,
-               0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33,
-               0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37,
-               0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x31, 0xE6,
-               0x9C, 0x88, 0x32, 0xE6, 0x9C, 0x88, 0x33, 0xE6,
-               0x9C, 0x88, 0x34, 0xE6, 0x9C, 0x88, 0x35, 0xE6,
-               0x9C, 0x88, 0x36, 0xE6, 0x9C, 0x88, 0x37, 0xE6,
-               0x9C, 0x88, 0x38, 0xE6, 0x9C, 0x88, 0x39, 0xE6,
-               0x9C, 0x88, 0x31, 0x30, 0xE6, 0x9C, 0x88, 0x31,
-               0x31, 0xE6, 0x9C, 0x88, 0x31, 0x32, 0xE6, 0x9C,
-               0x88, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xA4, 0xE3,
-               0x82, 0xA6, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xAA,
-               0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
-               0xAF, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0xB3, 0xE3,
-               0x82, 0xB5, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xB9,
-               0xE3, 0x82, 0xBB, 0xE3, 0x82, 0xBD, 0xE3, 0x82,
-               0xBF, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0x84, 0xE3,
-               0x83, 0x86, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x8A,
-               0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x8C, 0xE3, 0x83,
-               0x8D, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x8F, 0xE3,
-               0x83, 0x92, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0x98,
-               0xE3, 0x83, 0x9B, 0xE3, 0x83, 0x9E, 0xE3, 0x83,
-               0x9F, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0xA1, 0xE3,
-               0x83, 0xA2, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xA6,
-               0xE3, 0x83, 0xA8, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
-               0xAA, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xAC, 0xE3,
-               0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0xB0,
-               0xE3, 0x83, 0xB1, 0xE3, 0x83, 0xB2, 0xE3, 0x82,
-               0xA2, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3,
-               0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xA2,
-               0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82,
-               0xA1, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0xE3,
-               0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2,
-               0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-               0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3,
-               0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,
-               0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
-               0x81, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3,
-               0x83, 0xB3, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9,
-               0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-               0x88, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA8, 0xE3,
-               0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xBC,
-               0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
-               0xB9, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,
-               0x83, 0xA0, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4,
-               0xE3, 0x83, 0xAA, 0xE3, 0x82, 0xAB, 0xE3, 0x83,
-               0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3,
-               0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA,
-               0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
-               0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0xE3,
-               0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3,
-               0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
-               0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3,
-               0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,
-               0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAD, 0xE3, 0x83,
-               0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,
-               0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
-               0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-               0xBC, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3,
-               0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF,
-               0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
-               0xA0, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3,
-               0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,
-               0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAD, 0xE3, 0x83,
-               0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3,
-               0x83, 0x88, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,
-               0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x82,
-               0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3,
-               0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3,
-               0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82,
-               0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3,
-               0x83, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD,
-               0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0xE3, 0x82,
-               0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0xE3,
-               0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,
-               0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-               0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB5, 0xE3,
-               0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB,
-               0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
-               0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0xE3,
-               0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3,
-               0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x82,
-               0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3,
-               0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
-               0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-               0xBC, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x86, 0xE3,
-               0x82, 0x99, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0x88,
-               0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
-               0x88, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x8A, 0xE3,
-               0x83, 0x8E, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83,
-               0xE3, 0x83, 0x88, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
-               0xA4, 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x8F, 0xE3,
-               0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBB,
-               0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x83,
-               0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,
-               0x83, 0x84, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,
-               0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83,
-               0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
-               0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,
-               0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82,
-               0x9A, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3,
-               0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,
-               0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-               0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3,
-               0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,
-               0xE3, 0x82, 0x99, 0xE3, 0x83, 0x95, 0xE3, 0x82,
-               0xA3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
-               0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x83,
-               0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, 0xE3, 0x83,
-               0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,
-               0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF,
-               0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-               0xAB, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
-               0x82, 0xBD, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,
-               0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x92, 0xE3, 0x83,
-               0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0xE3,
-               0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3,
-               0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x98, 0xE3, 0x82,
-               0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3,
-               0x82, 0x99, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99,
-               0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, 0xE3, 0x83,
-               0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3,
-               0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x9B,
-               0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
-               0x88, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0xE3,
-               0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3,
-               0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-               0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3,
-               0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xB3,
-               0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
-               0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0x9E, 0xE3,
-               0x82, 0xA4, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x9E,
-               0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0xE3, 0x83,
-               0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, 0xE3,
-               0x83, 0x9E, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7,
-               0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
-               0x9F, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3,
-               0x83, 0xB3, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA,
-               0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83,
-               0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3,
-               0x83, 0xAB, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB,
-               0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA1, 0xE3, 0x82,
-               0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88, 0xE3,
-               0x83, 0xB3, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,
-               0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
-               0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
-               0x82, 0x99, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC,
-               0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xA6, 0xE3, 0x82,
-               0xA2, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0xAA, 0xE3,
-               0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB,
-               0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
-               0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
-               0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC,
-               0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-               0xAB, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xA0, 0xE3,
-               0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
-               0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-               0xB3, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3,
-               0x83, 0x88, 0x30, 0xE7, 0x82, 0xB9, 0x31, 0xE7,
-               0x82, 0xB9, 0x32, 0xE7, 0x82, 0xB9, 0x33, 0xE7,
-               0x82, 0xB9, 0x34, 0xE7, 0x82, 0xB9, 0x35, 0xE7,
-               0x82, 0xB9, 0x36, 0xE7, 0x82, 0xB9, 0x37, 0xE7,
-               0x82, 0xB9, 0x38, 0xE7, 0x82, 0xB9, 0x39, 0xE7,
-               0x82, 0xB9, 0x31, 0x30, 0xE7, 0x82, 0xB9, 0x31,
-               0x31, 0xE7, 0x82, 0xB9, 0x31, 0x32, 0xE7, 0x82,
-               0xB9, 0x31, 0x33, 0xE7, 0x82, 0xB9, 0x31, 0x34,
-               0xE7, 0x82, 0xB9, 0x31, 0x35, 0xE7, 0x82, 0xB9,
-               0x31, 0x36, 0xE7, 0x82, 0xB9, 0x31, 0x37, 0xE7,
-               0x82, 0xB9, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x31,
-               0x39, 0xE7, 0x82, 0xB9, 0x32, 0x30, 0xE7, 0x82,
-               0xB9, 0x32, 0x31, 0xE7, 0x82, 0xB9, 0x32, 0x32,
-               0xE7, 0x82, 0xB9, 0x32, 0x33, 0xE7, 0x82, 0xB9,
-               0x32, 0x34, 0xE7, 0x82, 0xB9, 0x68, 0x50, 0x61,
-               0x64, 0x61, 0x41, 0x55, 0x62, 0x61, 0x72, 0x6F,
-               0x56, 0x70, 0x63, 0xE5, 0xB9, 0xB3, 0xE6, 0x88,
-               0x90, 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0xE5,
-               0xA4, 0xA7, 0xE6, 0xAD, 0xA3, 0xE6, 0x98, 0x8E,
-               0xE6, 0xB2, 0xBB, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC,
-               0x8F, 0xE4, 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x70,
-               0x41, 0x6E, 0x41, 0xCE, 0xBC, 0x41, 0x6D, 0x41,
-               0x6B, 0x41, 0x4B, 0x42, 0x4D, 0x42, 0x47, 0x42,
-               0x63, 0x61, 0x6C, 0x6B, 0x63, 0x61, 0x6C, 0x70,
-               0x46, 0x6E, 0x46, 0xCE, 0xBC, 0x46, 0xCE, 0xBC,
-               0x67, 0x6D, 0x67, 0x6B, 0x67, 0x48, 0x7A, 0x6B,
-               0x48, 0x7A, 0x4D, 0x48, 0x7A, 0x47, 0x48, 0x7A,
-               0x54, 0x48, 0x7A, 0xCE, 0xBC, 0x6C, 0x6D, 0x6C,
-               0x64, 0x6C, 0x6B, 0x6C, 0x66, 0x6D, 0x6E, 0x6D,
-               0xCE, 0xBC, 0x6D, 0x6D, 0x6D, 0x63, 0x6D, 0x6B,
-               0x6D, 0x6D, 0x6D, 0x32, 0x63, 0x6D, 0x32, 0x6D,
-               0x32, 0x6B, 0x6D, 0x32, 0x6D, 0x6D, 0x33, 0x63,
-               0x6D, 0x33, 0x6D, 0x33, 0x6B, 0x6D, 0x33, 0x6D,
-               0xE2, 0x88, 0x95, 0x73, 0x6D, 0xE2, 0x88, 0x95,
-               0x73, 0x32, 0x50, 0x61, 0x6B, 0x50, 0x61, 0x4D,
-               0x50, 0x61, 0x47, 0x50, 0x61, 0x72, 0x61, 0x64,
-               0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x72,
-               0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x70,
-               0x73, 0x6E, 0x73, 0xCE, 0xBC, 0x73, 0x6D, 0x73,
-               0x70, 0x56, 0x6E, 0x56, 0xCE, 0xBC, 0x56, 0x6D,
-               0x56, 0x6B, 0x56, 0x4D, 0x56, 0x70, 0x57, 0x6E,
-               0x57, 0xCE, 0xBC, 0x57, 0x6D, 0x57, 0x6B, 0x57,
-               0x4D, 0x57, 0x6B, 0xCE, 0xA9, 0x4D, 0xCE, 0xA9,
-               0x61, 0x2E, 0x6D, 0x2E, 0x42, 0x71, 0x63, 0x63,
-               0x63, 0x64, 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67,
-               0x43, 0x6F, 0x2E, 0x64, 0x42, 0x47, 0x79, 0x68,
-               0x61, 0x48, 0x50, 0x69, 0x6E, 0x4B, 0x4B, 0x4B,
-               0x4D, 0x6B, 0x74, 0x6C, 0x6D, 0x6C, 0x6E, 0x6C,
-               0x6F, 0x67, 0x6C, 0x78, 0x6D, 0x62, 0x6D, 0x69,
-               0x6C, 0x6D, 0x6F, 0x6C, 0x50, 0x48, 0x70, 0x2E,
-               0x6D, 0x2E, 0x50, 0x50, 0x4D, 0x50, 0x52, 0x73,
-               0x72, 0x53, 0x76, 0x57, 0x62, 0x31, 0xE6, 0x97,
-               0xA5, 0x32, 0xE6, 0x97, 0xA5, 0x33, 0xE6, 0x97,
-               0xA5, 0x34, 0xE6, 0x97, 0xA5, 0x35, 0xE6, 0x97,
-               0xA5, 0x36, 0xE6, 0x97, 0xA5, 0x37, 0xE6, 0x97,
-               0xA5, 0x38, 0xE6, 0x97, 0xA5, 0x39, 0xE6, 0x97,
-               0xA5, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x31, 0x31,
-               0xE6, 0x97, 0xA5, 0x31, 0x32, 0xE6, 0x97, 0xA5,
-               0x31, 0x33, 0xE6, 0x97, 0xA5, 0x31, 0x34, 0xE6,
-               0x97, 0xA5, 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x31,
-               0x36, 0xE6, 0x97, 0xA5, 0x31, 0x37, 0xE6, 0x97,
-               0xA5, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x31, 0x39,
-               0xE6, 0x97, 0xA5, 0x32, 0x30, 0xE6, 0x97, 0xA5,
-               0x32, 0x31, 0xE6, 0x97, 0xA5, 0x32, 0x32, 0xE6,
-               0x97, 0xA5, 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x32,
-               0x34, 0xE6, 0x97, 0xA5, 0x32, 0x35, 0xE6, 0x97,
-               0xA5, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x32, 0x37,
-               0xE6, 0x97, 0xA5, 0x32, 0x38, 0xE6, 0x97, 0xA5,
-               0x32, 0x39, 0xE6, 0x97, 0xA5, 0x33, 0x30, 0xE6,
-               0x97, 0xA5, 0x33, 0x31, 0xE6, 0x97, 0xA5, 0xF6,
-               0xE8, 0xB1, 0x88, 0xF6, 0xE6, 0x9B, 0xB4, 0xF6,
-               0xE8, 0xBB, 0x8A, 0xF6, 0xE8, 0xB3, 0x88, 0xF6,
-               0xE6, 0xBB, 0x91, 0xF6, 0xE4, 0xB8, 0xB2, 0xF6,
-               0xE5, 0x8F, 0xA5, 0xF6, 0xE9, 0xBE, 0x9C, 0xF6,
-               0xE9, 0xBE, 0x9C, 0xF6, 0xE5, 0xA5, 0x91, 0xF6,
-               0xE9, 0x87, 0x91, 0xF6, 0xE5, 0x96, 0x87, 0xF6,
-               0xE5, 0xA5, 0x88, 0xF6, 0xE6, 0x87, 0xB6, 0xF6,
-               0xE7, 0x99, 0xA9, 0xF6, 0xE7, 0xBE, 0x85, 0xF6,
-               0xE8, 0x98, 0xBF, 0xF6, 0xE8, 0x9E, 0xBA, 0xF6,
-               0xE8, 0xA3, 0xB8, 0xF6, 0xE9, 0x82, 0x8F, 0xF6,
-               0xE6, 0xA8, 0x82, 0xF6, 0xE6, 0xB4, 0x9B, 0xF6,
-               0xE7, 0x83, 0x99, 0xF6, 0xE7, 0x8F, 0x9E, 0xF6,
-               0xE8, 0x90, 0xBD, 0xF6, 0xE9, 0x85, 0xAA, 0xF6,
-               0xE9, 0xA7, 0xB1, 0xF6, 0xE4, 0xBA, 0x82, 0xF6,
-               0xE5, 0x8D, 0xB5, 0xF6, 0xE6, 0xAC, 0x84, 0xF6,
-               0xE7, 0x88, 0x9B, 0xF6, 0xE8, 0x98, 0xAD, 0xF6,
-               0xE9, 0xB8, 0x9E, 0xF6, 0xE5, 0xB5, 0x90, 0xF6,
-               0xE6, 0xBF, 0xAB, 0xF6, 0xE8, 0x97, 0x8D, 0xF6,
-               0xE8, 0xA5, 0xA4, 0xF6, 0xE6, 0x8B, 0x89, 0xF6,
-               0xE8, 0x87, 0x98, 0xF6, 0xE8, 0xA0, 0x9F, 0xF6,
-               0xE5, 0xBB, 0x8A, 0xF6, 0xE6, 0x9C, 0x97, 0xF6,
-               0xE6, 0xB5, 0xAA, 0xF6, 0xE7, 0x8B, 0xBC, 0xF6,
-               0xE9, 0x83, 0x8E, 0xF6, 0xE4, 0xBE, 0x86, 0xF6,
-               0xE5, 0x86, 0xB7, 0xF6, 0xE5, 0x8B, 0x9E, 0xF6,
-               0xE6, 0x93, 0x84, 0xF6, 0xE6, 0xAB, 0x93, 0xF6,
-               0xE7, 0x88, 0x90, 0xF6, 0xE7, 0x9B, 0xA7, 0xF6,
-               0xE8, 0x80, 0x81, 0xF6, 0xE8, 0x98, 0x86, 0xF6,
-               0xE8, 0x99, 0x9C, 0xF6, 0xE8, 0xB7, 0xAF, 0xF6,
-               0xE9, 0x9C, 0xB2, 0xF6, 0xE9, 0xAD, 0xAF, 0xF6,
-               0xE9, 0xB7, 0xBA, 0xF6, 0xE7, 0xA2, 0x8C, 0xF6,
-               0xE7, 0xA5, 0xBF, 0xF6, 0xE7, 0xB6, 0xA0, 0xF6,
-               0xE8, 0x8F, 0x89, 0xF6, 0xE9, 0x8C, 0x84, 0xF6,
-               0xE9, 0xB9, 0xBF, 0xF6, 0xE8, 0xAB, 0x96, 0xF6,
-               0xE5, 0xA3, 0x9F, 0xF6, 0xE5, 0xBC, 0x84, 0xF6,
-               0xE7, 0xB1, 0xA0, 0xF6, 0xE8, 0x81, 0xBE, 0xF6,
-               0xE7, 0x89, 0xA2, 0xF6, 0xE7, 0xA3, 0x8A, 0xF6,
-               0xE8, 0xB3, 0x82, 0xF6, 0xE9, 0x9B, 0xB7, 0xF6,
-               0xE5, 0xA3, 0x98, 0xF6, 0xE5, 0xB1, 0xA2, 0xF6,
-               0xE6, 0xA8, 0x93, 0xF6, 0xE6, 0xB7, 0x9A, 0xF6,
-               0xE6, 0xBC, 0x8F, 0xF6, 0xE7, 0xB4, 0xAF, 0xF6,
-               0xE7, 0xB8, 0xB7, 0xF6, 0xE9, 0x99, 0x8B, 0xF6,
-               0xE5, 0x8B, 0x92, 0xF6, 0xE8, 0x82, 0x8B, 0xF6,
-               0xE5, 0x87, 0x9C, 0xF6, 0xE5, 0x87, 0x8C, 0xF6,
-               0xE7, 0xA8, 0x9C, 0xF6, 0xE7, 0xB6, 0xBE, 0xF6,
-               0xE8, 0x8F, 0xB1, 0xF6, 0xE9, 0x99, 0xB5, 0xF6,
-               0xE8, 0xAE, 0x80, 0xF6, 0xE6, 0x8B, 0x8F, 0xF6,
-               0xE6, 0xA8, 0x82, 0xF6, 0xE8, 0xAB, 0xBE, 0xF6,
-               0xE4, 0xB8, 0xB9, 0xF6, 0xE5, 0xAF, 0xA7, 0xF6,
-               0xE6, 0x80, 0x92, 0xF6, 0xE7, 0x8E, 0x87, 0xF6,
-               0xE7, 0x95, 0xB0, 0xF6, 0xE5, 0x8C, 0x97, 0xF6,
-               0xE7, 0xA3, 0xBB, 0xF6, 0xE4, 0xBE, 0xBF, 0xF6,
-               0xE5, 0xBE, 0xA9, 0xF6, 0xE4, 0xB8, 0x8D, 0xF6,
-               0xE6, 0xB3, 0x8C, 0xF6, 0xE6, 0x95, 0xB8, 0xF6,
-               0xE7, 0xB4, 0xA2, 0xF6, 0xE5, 0x8F, 0x83, 0xF6,
-               0xE5, 0xA1, 0x9E, 0xF6, 0xE7, 0x9C, 0x81, 0xF6,
-               0xE8, 0x91, 0x89, 0xF6, 0xE8, 0xAA, 0xAA, 0xF6,
-               0xE6, 0xAE, 0xBA, 0xF6, 0xE8, 0xBE, 0xB0, 0xF6,
-               0xE6, 0xB2, 0x88, 0xF6, 0xE6, 0x8B, 0xBE, 0xF6,
-               0xE8, 0x8B, 0xA5, 0xF6, 0xE6, 0x8E, 0xA0, 0xF6,
-               0xE7, 0x95, 0xA5, 0xF6, 0xE4, 0xBA, 0xAE, 0xF6,
-               0xE5, 0x85, 0xA9, 0xF6, 0xE5, 0x87, 0x89, 0xF6,
-               0xE6, 0xA2, 0x81, 0xF6, 0xE7, 0xB3, 0xA7, 0xF6,
-               0xE8, 0x89, 0xAF, 0xF6, 0xE8, 0xAB, 0x92, 0xF6,
-               0xE9, 0x87, 0x8F, 0xF6, 0xE5, 0x8B, 0xB5, 0xF6,
-               0xE5, 0x91, 0x82, 0xF6, 0xE5, 0xA5, 0xB3, 0xF6,
-               0xE5, 0xBB, 0xAC, 0xF6, 0xE6, 0x97, 0x85, 0xF6,
-               0xE6, 0xBF, 0xBE, 0xF6, 0xE7, 0xA4, 0xAA, 0xF6,
-               0xE9, 0x96, 0xAD, 0xF6, 0xE9, 0xA9, 0xAA, 0xF6,
-               0xE9, 0xBA, 0x97, 0xF6, 0xE9, 0xBB, 0x8E, 0xF6,
-               0xE5, 0x8A, 0x9B, 0xF6, 0xE6, 0x9B, 0x86, 0xF6,
-               0xE6, 0xAD, 0xB7, 0xF6, 0xE8, 0xBD, 0xA2, 0xF6,
-               0xE5, 0xB9, 0xB4, 0xF6, 0xE6, 0x86, 0x90, 0xF6,
-               0xE6, 0x88, 0x80, 0xF6, 0xE6, 0x92, 0x9A, 0xF6,
-               0xE6, 0xBC, 0xA3, 0xF6, 0xE7, 0x85, 0x89, 0xF6,
-               0xE7, 0x92, 0x89, 0xF6, 0xE7, 0xA7, 0x8A, 0xF6,
-               0xE7, 0xB7, 0xB4, 0xF6, 0xE8, 0x81, 0xAF, 0xF6,
-               0xE8, 0xBC, 0xA6, 0xF6, 0xE8, 0x93, 0xAE, 0xF6,
-               0xE9, 0x80, 0xA3, 0xF6, 0xE9, 0x8D, 0x8A, 0xF6,
-               0xE5, 0x88, 0x97, 0xF6, 0xE5, 0x8A, 0xA3, 0xF6,
-               0xE5, 0x92, 0xBD, 0xF6, 0xE7, 0x83, 0x88, 0xF6,
-               0xE8, 0xA3, 0x82, 0xF6, 0xE8, 0xAA, 0xAA, 0xF6,
-               0xE5, 0xBB, 0x89, 0xF6, 0xE5, 0xBF, 0xB5, 0xF6,
-               0xE6, 0x8D, 0xBB, 0xF6, 0xE6, 0xAE, 0xAE, 0xF6,
-               0xE7, 0xB0, 0xBE, 0xF6, 0xE7, 0x8D, 0xB5, 0xF6,
-               0xE4, 0xBB, 0xA4, 0xF6, 0xE5, 0x9B, 0xB9, 0xF6,
-               0xE5, 0xAF, 0xA7, 0xF6, 0xE5, 0xB6, 0xBA, 0xF6,
-               0xE6, 0x80, 0x9C, 0xF6, 0xE7, 0x8E, 0xB2, 0xF6,
-               0xE7, 0x91, 0xA9, 0xF6, 0xE7, 0xBE, 0x9A, 0xF6,
-               0xE8, 0x81, 0x86, 0xF6, 0xE9, 0x88, 0xB4, 0xF6,
-               0xE9, 0x9B, 0xB6, 0xF6, 0xE9, 0x9D, 0x88, 0xF6,
-               0xE9, 0xA0, 0x98, 0xF6, 0xE4, 0xBE, 0x8B, 0xF6,
-               0xE7, 0xA6, 0xAE, 0xF6, 0xE9, 0x86, 0xB4, 0xF6,
-               0xE9, 0x9A, 0xB8, 0xF6, 0xE6, 0x83, 0xA1, 0xF6,
-               0xE4, 0xBA, 0x86, 0xF6, 0xE5, 0x83, 0x9A, 0xF6,
-               0xE5, 0xAF, 0xAE, 0xF6, 0xE5, 0xB0, 0xBF, 0xF6,
-               0xE6, 0x96, 0x99, 0xF6, 0xE6, 0xA8, 0x82, 0xF6,
-               0xE7, 0x87, 0x8E, 0xF6, 0xE7, 0x99, 0x82, 0xF6,
-               0xE8, 0x93, 0xBC, 0xF6, 0xE9, 0x81, 0xBC, 0xF6,
-               0xE9, 0xBE, 0x8D, 0xF6, 0xE6, 0x9A, 0x88, 0xF6,
-               0xE9, 0x98, 0xAE, 0xF6, 0xE5, 0x8A, 0x89, 0xF6,
-               0xE6, 0x9D, 0xBB, 0xF6, 0xE6, 0x9F, 0xB3, 0xF6,
-               0xE6, 0xB5, 0x81, 0xF6, 0xE6, 0xBA, 0x9C, 0xF6,
-               0xE7, 0x90, 0x89, 0xF6, 0xE7, 0x95, 0x99, 0xF6,
-               0xE7, 0xA1, 0xAB, 0xF6, 0xE7, 0xB4, 0x90, 0xF6,
-               0xE9, 0xA1, 0x9E, 0xF6, 0xE5, 0x85, 0xAD, 0xF6,
-               0xE6, 0x88, 0xAE, 0xF6, 0xE9, 0x99, 0xB8, 0xF6,
-               0xE5, 0x80, 0xAB, 0xF6, 0xE5, 0xB4, 0x99, 0xF6,
-               0xE6, 0xB7, 0xAA, 0xF6, 0xE8, 0xBC, 0xAA, 0xF6,
-               0xE5, 0xBE, 0x8B, 0xF6, 0xE6, 0x85, 0x84, 0xF6,
-               0xE6, 0xA0, 0x97, 0xF6, 0xE7, 0x8E, 0x87, 0xF6,
-               0xE9, 0x9A, 0x86, 0xF6, 0xE5, 0x88, 0xA9, 0xF6,
-               0xE5, 0x90, 0x8F, 0xF6, 0xE5, 0xB1, 0xA5, 0xF6,
-               0xE6, 0x98, 0x93, 0xF6, 0xE6, 0x9D, 0x8E, 0xF6,
-               0xE6, 0xA2, 0xA8, 0xF6, 0xE6, 0xB3, 0xA5, 0xF6,
-               0xE7, 0x90, 0x86, 0xF6, 0xE7, 0x97, 0xA2, 0xF6,
-               0xE7, 0xBD, 0xB9, 0xF6, 0xE8, 0xA3, 0x8F, 0xF6,
-               0xE8, 0xA3, 0xA1, 0xF6, 0xE9, 0x87, 0x8C, 0xF6,
-               0xE9, 0x9B, 0xA2, 0xF6, 0xE5, 0x8C, 0xBF, 0xF6,
-               0xE6, 0xBA, 0xBA, 0xF6, 0xE5, 0x90, 0x9D, 0xF6,
-               0xE7, 0x87, 0x90, 0xF6, 0xE7, 0x92, 0x98, 0xF6,
-               0xE8, 0x97, 0xBA, 0xF6, 0xE9, 0x9A, 0xA3, 0xF6,
-               0xE9, 0xB1, 0x97, 0xF6, 0xE9, 0xBA, 0x9F, 0xF6,
-               0xE6, 0x9E, 0x97, 0xF6, 0xE6, 0xB7, 0x8B, 0xF6,
-               0xE8, 0x87, 0xA8, 0xF6, 0xE7, 0xAB, 0x8B, 0xF6,
-               0xE7, 0xAC, 0xA0, 0xF6, 0xE7, 0xB2, 0x92, 0xF6,
-               0xE7, 0x8B, 0x80, 0xF6, 0xE7, 0x82, 0x99, 0xF6,
-               0xE8, 0xAD, 0x98, 0xF6, 0xE4, 0xBB, 0x80, 0xF6,
-               0xE8, 0x8C, 0xB6, 0xF6, 0xE5, 0x88, 0xBA, 0xF6,
-               0xE5, 0x88, 0x87, 0xF6, 0xE5, 0xBA, 0xA6, 0xF6,
-               0xE6, 0x8B, 0x93, 0xF6, 0xE7, 0xB3, 0x96, 0xF6,
-               0xE5, 0xAE, 0x85, 0xF6, 0xE6, 0xB4, 0x9E, 0xF6,
-               0xE6, 0x9A, 0xB4, 0xF6, 0xE8, 0xBC, 0xBB, 0xF6,
-               0xE8, 0xA1, 0x8C, 0xF6, 0xE9, 0x99, 0x8D, 0xF6,
-               0xE8, 0xA6, 0x8B, 0xF6, 0xE5, 0xBB, 0x93, 0xF6,
-               0xE5, 0x85, 0x80, 0xF6, 0xE5, 0x97, 0x80, 0xF6,
-               0xE5, 0xA1, 0x9A, 0xF6, 0xE6, 0x99, 0xB4, 0xF6,
-               0xE5, 0x87, 0x9E, 0xF6, 0xE7, 0x8C, 0xAA, 0xF6,
-               0xE7, 0x9B, 0x8A, 0xF6, 0xE7, 0xA4, 0xBC, 0xF6,
-               0xE7, 0xA5, 0x9E, 0xF6, 0xE7, 0xA5, 0xA5, 0xF6,
-               0xE7, 0xA6, 0x8F, 0xF6, 0xE9, 0x9D, 0x96, 0xF6,
-               0xE7, 0xB2, 0xBE, 0xF6, 0xE7, 0xBE, 0xBD, 0xF6,
-               0xE8, 0x98, 0x92, 0xF6, 0xE8, 0xAB, 0xB8, 0xF6,
-               0xE9, 0x80, 0xB8, 0xF6, 0xE9, 0x83, 0xBD, 0xF6,
-               0xE9, 0xA3, 0xAF, 0xF6, 0xE9, 0xA3, 0xBC, 0xF6,
-               0xE9, 0xA4, 0xA8, 0xF6, 0xE9, 0xB6, 0xB4, 0xF6,
-               0xE4, 0xBE, 0xAE, 0xF6, 0xE5, 0x83, 0xA7, 0xF6,
-               0xE5, 0x85, 0x8D, 0xF6, 0xE5, 0x8B, 0x89, 0xF6,
-               0xE5, 0x8B, 0xA4, 0xF6, 0xE5, 0x8D, 0x91, 0xF6,
-               0xE5, 0x96, 0x9D, 0xF6, 0xE5, 0x98, 0x86, 0xF6,
-               0xE5, 0x99, 0xA8, 0xF6, 0xE5, 0xA1, 0x80, 0xF6,
-               0xE5, 0xA2, 0xA8, 0xF6, 0xE5, 0xB1, 0xA4, 0xF6,
-               0xE5, 0xB1, 0xAE, 0xF6, 0xE6, 0x82, 0x94, 0xF6,
-               0xE6, 0x85, 0xA8, 0xF6, 0xE6, 0x86, 0x8E, 0xF6,
-               0xE6, 0x87, 0xB2, 0xF6, 0xE6, 0x95, 0x8F, 0xF6,
-               0xE6, 0x97, 0xA2, 0xF6, 0xE6, 0x9A, 0x91, 0xF6,
-               0xE6, 0xA2, 0x85, 0xF6, 0xE6, 0xB5, 0xB7, 0xF6,
-               0xE6, 0xB8, 0x9A, 0xF6, 0xE6, 0xBC, 0xA2, 0xF6,
-               0xE7, 0x85, 0xAE, 0xF6, 0xE7, 0x88, 0xAB, 0xF6,
-               0xE7, 0x90, 0xA2, 0xF6, 0xE7, 0xA2, 0x91, 0xF6,
-               0xE7, 0xA4, 0xBE, 0xF6, 0xE7, 0xA5, 0x89, 0xF6,
-               0xE7, 0xA5, 0x88, 0xF6, 0xE7, 0xA5, 0x90, 0xF6,
-               0xE7, 0xA5, 0x96, 0xF6, 0xE7, 0xA5, 0x9D, 0xF6,
-               0xE7, 0xA6, 0x8D, 0xF6, 0xE7, 0xA6, 0x8E, 0xF6,
-               0xE7, 0xA9, 0x80, 0xF6, 0xE7, 0xAA, 0x81, 0xF6,
-               0xE7, 0xAF, 0x80, 0xF6, 0xE7, 0xB7, 0xB4, 0xF6,
-               0xE7, 0xB8, 0x89, 0xF6, 0xE7, 0xB9, 0x81, 0xF6,
-               0xE7, 0xBD, 0xB2, 0xF6, 0xE8, 0x80, 0x85, 0xF6,
-               0xE8, 0x87, 0xAD, 0xF6, 0xE8, 0x89, 0xB9, 0xF6,
-               0xE8, 0x89, 0xB9, 0xF6, 0xE8, 0x91, 0x97, 0xF6,
-               0xE8, 0xA4, 0x90, 0xF6, 0xE8, 0xA6, 0x96, 0xF6,
-               0xE8, 0xAC, 0x81, 0xF6, 0xE8, 0xAC, 0xB9, 0xF6,
-               0xE8, 0xB3, 0x93, 0xF6, 0xE8, 0xB4, 0x88, 0xF6,
-               0xE8, 0xBE, 0xB6, 0xF6, 0xE9, 0x80, 0xB8, 0xF6,
-               0xE9, 0x9B, 0xA3, 0xF6, 0xE9, 0x9F, 0xBF, 0xF6,
-               0xE9, 0xA0, 0xBB, 0x66, 0x66, 0x66, 0x69, 0x66,
-               0x6C, 0x66, 0x66, 0x69, 0x66, 0x66, 0x6C, 0x73,
-               0x74, 0x73, 0x74, 0xD5, 0xB4, 0xD5, 0xB6, 0xD5,
-               0xB4, 0xD5, 0xA5, 0xD5, 0xB4, 0xD5, 0xAB, 0xD5,
-               0xBE, 0xD5, 0xB6, 0xD5, 0xB4, 0xD5, 0xAD, 0xF6,
-               0xD7, 0x99, 0xD6, 0xB4, 0xF6, 0xD7, 0xB2, 0xD6,
-               0xB7, 0xD7, 0xA2, 0xD7, 0x90, 0xD7, 0x93, 0xD7,
-               0x94, 0xD7, 0x9B, 0xD7, 0x9C, 0xD7, 0x9D, 0xD7,
-               0xA8, 0xD7, 0xAA, 0x2B, 0xF6, 0xD7, 0xA9, 0xD7,
-               0x81, 0xF6, 0xD7, 0xA9, 0xD7, 0x82, 0xF6, 0xD7,
-               0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0xF6, 0xD7, 0xA9,
-               0xD6, 0xBC, 0xD7, 0x82, 0xF6, 0xD7, 0x90, 0xD6,
-               0xB7, 0xF6, 0xD7, 0x90, 0xD6, 0xB8, 0xF6, 0xD7,
-               0x90, 0xD6, 0xBC, 0xF6, 0xD7, 0x91, 0xD6, 0xBC,
-               0xF6, 0xD7, 0x92, 0xD6, 0xBC, 0xF6, 0xD7, 0x93,
-               0xD6, 0xBC, 0xF6, 0xD7, 0x94, 0xD6, 0xBC, 0xF6,
-               0xD7, 0x95, 0xD6, 0xBC, 0xF6, 0xD7, 0x96, 0xD6,
-               0xBC, 0xF6, 0xD7, 0x98, 0xD6, 0xBC, 0xF6, 0xD7,
-               0x99, 0xD6, 0xBC, 0xF6, 0xD7, 0x9A, 0xD6, 0xBC,
-               0xF6, 0xD7, 0x9B, 0xD6, 0xBC, 0xF6, 0xD7, 0x9C,
-               0xD6, 0xBC, 0xF6, 0xD7, 0x9E, 0xD6, 0xBC, 0xF6,
-               0xD7, 0xA0, 0xD6, 0xBC, 0xF6, 0xD7, 0xA1, 0xD6,
-               0xBC, 0xF6, 0xD7, 0xA3, 0xD6, 0xBC, 0xF6, 0xD7,
-               0xA4, 0xD6, 0xBC, 0xF6, 0xD7, 0xA6, 0xD6, 0xBC,
-               0xF6, 0xD7, 0xA7, 0xD6, 0xBC, 0xF6, 0xD7, 0xA8,
-               0xD6, 0xBC, 0xF6, 0xD7, 0xA9, 0xD6, 0xBC, 0xF6,
-               0xD7, 0xAA, 0xD6, 0xBC, 0xF6, 0xD7, 0x95, 0xD6,
-               0xB9, 0xF6, 0xD7, 0x91, 0xD6, 0xBF, 0xF6, 0xD7,
-               0x9B, 0xD6, 0xBF, 0xF6, 0xD7, 0xA4, 0xD6, 0xBF,
-               0xD7, 0x90, 0xD7, 0x9C, 0xD9, 0xB1, 0xD9, 0xB1,
-               0xD9, 0xBB, 0xD9, 0xBB, 0xD9, 0xBB, 0xD9, 0xBB,
-               0xD9, 0xBE, 0xD9, 0xBE, 0xD9, 0xBE, 0xD9, 0xBE,
-               0xDA, 0x80, 0xDA, 0x80, 0xDA, 0x80, 0xDA, 0x80,
-               0xD9, 0xBA, 0xD9, 0xBA, 0xD9, 0xBA, 0xD9, 0xBA,
-               0xD9, 0xBF, 0xD9, 0xBF, 0xD9, 0xBF, 0xD9, 0xBF,
-               0xD9, 0xB9, 0xD9, 0xB9, 0xD9, 0xB9, 0xD9, 0xB9,
-               0xDA, 0xA4, 0xDA, 0xA4, 0xDA, 0xA4, 0xDA, 0xA4,
-               0xDA, 0xA6, 0xDA, 0xA6, 0xDA, 0xA6, 0xDA, 0xA6,
-               0xDA, 0x84, 0xDA, 0x84, 0xDA, 0x84, 0xDA, 0x84,
-               0xDA, 0x83, 0xDA, 0x83, 0xDA, 0x83, 0xDA, 0x83,
-               0xDA, 0x86, 0xDA, 0x86, 0xDA, 0x86, 0xDA, 0x86,
-               0xDA, 0x87, 0xDA, 0x87, 0xDA, 0x87, 0xDA, 0x87,
-               0xDA, 0x8D, 0xDA, 0x8D, 0xDA, 0x8C, 0xDA, 0x8C,
-               0xDA, 0x8E, 0xDA, 0x8E, 0xDA, 0x88, 0xDA, 0x88,
-               0xDA, 0x98, 0xDA, 0x98, 0xDA, 0x91, 0xDA, 0x91,
-               0xDA, 0xA9, 0xDA, 0xA9, 0xDA, 0xA9, 0xDA, 0xA9,
-               0xDA, 0xAF, 0xDA, 0xAF, 0xDA, 0xAF, 0xDA, 0xAF,
-               0xDA, 0xB3, 0xDA, 0xB3, 0xDA, 0xB3, 0xDA, 0xB3,
-               0xDA, 0xB1, 0xDA, 0xB1, 0xDA, 0xB1, 0xDA, 0xB1,
-               0xDA, 0xBA, 0xDA, 0xBA, 0xDA, 0xBB, 0xDA, 0xBB,
-               0xDA, 0xBB, 0xDA, 0xBB, 0xDB, 0x95, 0xD9, 0x94,
-               0xDB, 0x95, 0xD9, 0x94, 0xDB, 0x81, 0xDB, 0x81,
-               0xDB, 0x81, 0xDB, 0x81, 0xDA, 0xBE, 0xDA, 0xBE,
-               0xDA, 0xBE, 0xDA, 0xBE, 0xDB, 0x92, 0xDB, 0x92,
-               0xDB, 0x92, 0xD9, 0x94, 0xDB, 0x92, 0xD9, 0x94,
-               0xDA, 0xAD, 0xDA, 0xAD, 0xDA, 0xAD, 0xDA, 0xAD,
-               0xDB, 0x87, 0xDB, 0x87, 0xDB, 0x86, 0xDB, 0x86,
-               0xDB, 0x88, 0xDB, 0x88, 0xDB, 0x87, 0xD9, 0xB4,
-               0xDB, 0x8B, 0xDB, 0x8B, 0xDB, 0x85, 0xDB, 0x85,
-               0xDB, 0x89, 0xDB, 0x89, 0xDB, 0x90, 0xDB, 0x90,
-               0xDB, 0x90, 0xDB, 0x90, 0xD9, 0x89, 0xD9, 0x89,
-               0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x8A,
-               0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x8A, 0xD9, 0x94,
-               0xDB, 0x95, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x95,
-               0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x8A,
-               0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x8A, 0xD9, 0x94,
-               0xDB, 0x87, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87,
-               0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0xD9, 0x8A,
-               0xD9, 0x94, 0xDB, 0x86, 0xD9, 0x8A, 0xD9, 0x94,
-               0xDB, 0x88, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x88,
-               0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0xD9, 0x8A,
-               0xD9, 0x94, 0xDB, 0x90, 0xD9, 0x8A, 0xD9, 0x94,
-               0xDB, 0x90, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89,
-               0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xD9, 0x8A,
-               0xD9, 0x94, 0xD9, 0x89, 0xDB, 0x8C, 0xDB, 0x8C,
-               0xDB, 0x8C, 0xDB, 0x8C, 0xD9, 0x8A, 0xD9, 0x94,
-               0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD,
-               0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A,
-               0xD9, 0x94, 0xD9, 0x89, 0xD9, 0x8A, 0xD9, 0x94,
-               0xD9, 0x8A, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8, 0xA8,
-               0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8, 0xA8,
-               0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x89, 0xD8, 0xA8,
-               0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD8, 0xAA,
-               0xD8, 0xAD, 0xD8, 0xAA, 0xD8, 0xAE, 0xD8, 0xAA,
-               0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x89, 0xD8, 0xAA,
-               0xD9, 0x8A, 0xD8, 0xAB, 0xD8, 0xAC, 0xD8, 0xAB,
-               0xD9, 0x85, 0xD8, 0xAB, 0xD9, 0x89, 0xD8, 0xAB,
-               0xD9, 0x8A, 0xD8, 0xAC, 0xD8, 0xAD, 0xD8, 0xAC,
-               0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, 0xAD,
-               0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD8, 0xAE,
-               0xD8, 0xAD, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB3,
-               0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3,
-               0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xB5,
-               0xD8, 0xAD, 0xD8, 0xB5, 0xD9, 0x85, 0xD8, 0xB6,
-               0xD8, 0xAC, 0xD8, 0xB6, 0xD8, 0xAD, 0xD8, 0xB6,
-               0xD8, 0xAE, 0xD8, 0xB6, 0xD9, 0x85, 0xD8, 0xB7,
-               0xD8, 0xAD, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xB8,
-               0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8, 0xB9,
-               0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8, 0xBA,
-               0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9, 0x81,
-               0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x81,
-               0xD9, 0x85, 0xD9, 0x81, 0xD9, 0x89, 0xD9, 0x81,
-               0xD9, 0x8A, 0xD9, 0x82, 0xD8, 0xAD, 0xD9, 0x82,
-               0xD9, 0x85, 0xD9, 0x82, 0xD9, 0x89, 0xD9, 0x82,
-               0xD9, 0x8A, 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x83,
-               0xD8, 0xAC, 0xD9, 0x83, 0xD8, 0xAD, 0xD9, 0x83,
-               0xD8, 0xAE, 0xD9, 0x83, 0xD9, 0x84, 0xD9, 0x83,
-               0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x89, 0xD9, 0x83,
-               0xD9, 0x8A, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x84,
-               0xD8, 0xAD, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x84,
-               0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x89, 0xD9, 0x84,
-               0xD9, 0x8A, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85,
-               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85,
-               0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x89, 0xD9, 0x85,
-               0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x86,
-               0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9, 0x86,
-               0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x89, 0xD9, 0x86,
-               0xD9, 0x8A, 0xD9, 0x87, 0xD8, 0xAC, 0xD9, 0x87,
-               0xD9, 0x85, 0xD9, 0x87, 0xD9, 0x89, 0xD9, 0x87,
-               0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A,
-               0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9, 0x8A,
-               0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x89, 0xD9, 0x8A,
-               0xD9, 0x8A, 0xD8, 0xB0, 0xD9, 0xB0, 0xD8, 0xB1,
-               0xD9, 0xB0, 0xD9, 0x89, 0xD9, 0xB0, 0x20, 0xD9,
-               0x8C, 0xD9, 0x91, 0x20, 0xD9, 0x8D, 0xD9, 0x91,
-               0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x20, 0xD9, 0x8F,
-               0xD9, 0x91, 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x20,
-               0xD9, 0x91, 0xD9, 0xB0, 0xD9, 0x8A, 0xD9, 0x94,
-               0xD8, 0xB1, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2,
-               0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A,
-               0xD9, 0x94, 0xD9, 0x86, 0xD9, 0x8A, 0xD9, 0x94,
-               0xD9, 0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A,
-               0xD8, 0xA8, 0xD8, 0xB1, 0xD8, 0xA8, 0xD8, 0xB2,
-               0xD8, 0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x86,
-               0xD8, 0xA8, 0xD9, 0x89, 0xD8, 0xA8, 0xD9, 0x8A,
-               0xD8, 0xAA, 0xD8, 0xB1, 0xD8, 0xAA, 0xD8, 0xB2,
-               0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x86,
-               0xD8, 0xAA, 0xD9, 0x89, 0xD8, 0xAA, 0xD9, 0x8A,
-               0xD8, 0xAB, 0xD8, 0xB1, 0xD8, 0xAB, 0xD8, 0xB2,
-               0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAB, 0xD9, 0x86,
-               0xD8, 0xAB, 0xD9, 0x89, 0xD8, 0xAB, 0xD9, 0x8A,
-               0xD9, 0x81, 0xD9, 0x89, 0xD9, 0x81, 0xD9, 0x8A,
-               0xD9, 0x82, 0xD9, 0x89, 0xD9, 0x82, 0xD9, 0x8A,
-               0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x83, 0xD9, 0x84,
-               0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x89,
-               0xD9, 0x83, 0xD9, 0x8A, 0xD9, 0x84, 0xD9, 0x85,
-               0xD9, 0x84, 0xD9, 0x89, 0xD9, 0x84, 0xD9, 0x8A,
-               0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x85, 0xD9, 0x85,
-               0xD9, 0x86, 0xD8, 0xB1, 0xD9, 0x86, 0xD8, 0xB2,
-               0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x86,
-               0xD9, 0x86, 0xD9, 0x89, 0xD9, 0x86, 0xD9, 0x8A,
-               0xD9, 0x89, 0xD9, 0xB0, 0xD9, 0x8A, 0xD8, 0xB1,
-               0xD9, 0x8A, 0xD8, 0xB2, 0xD9, 0x8A, 0xD9, 0x85,
-               0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x8A, 0xD9, 0x89,
-               0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x94,
-               0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD,
-               0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0xD9, 0x8A,
-               0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x94,
-               0xD9, 0x87, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8, 0xA8,
-               0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8, 0xA8,
-               0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x87, 0xD8, 0xAA,
-               0xD8, 0xAC, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAA,
-               0xD8, 0xAE, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA,
-               0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAC,
-               0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD,
-               0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE,
-               0xD8, 0xAC, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB3,
-               0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3,
-               0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xB5,
-               0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAE, 0xD8, 0xB5,
-               0xD9, 0x85, 0xD8, 0xB6, 0xD8, 0xAC, 0xD8, 0xB6,
-               0xD8, 0xAD, 0xD8, 0xB6, 0xD8, 0xAE, 0xD8, 0xB6,
-               0xD9, 0x85, 0xD8, 0xB7, 0xD8, 0xAD, 0xD8, 0xB8,
-               0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8, 0xB9,
-               0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8, 0xBA,
-               0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9, 0x81,
-               0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x81,
-               0xD9, 0x85, 0xD9, 0x82, 0xD8, 0xAD, 0xD9, 0x82,
-               0xD9, 0x85, 0xD9, 0x83, 0xD8, 0xAC, 0xD9, 0x83,
-               0xD8, 0xAD, 0xD9, 0x83, 0xD8, 0xAE, 0xD9, 0x83,
-               0xD9, 0x84, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x84,
-               0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x84,
-               0xD8, 0xAE, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x84,
-               0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85,
-               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85,
-               0xD9, 0x85, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x86,
-               0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9, 0x86,
-               0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9, 0x87,
-               0xD8, 0xAC, 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x87,
-               0xD9, 0xB0, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A,
-               0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9, 0x8A,
-               0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x8A,
-               0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x94,
-               0xD9, 0x87, 0xD8, 0xA8, 0xD9, 0x85, 0xD8, 0xA8,
-               0xD9, 0x87, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA,
-               0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAB,
-               0xD9, 0x87, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xB3,
-               0xD9, 0x87, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xB4,
-               0xD9, 0x87, 0xD9, 0x83, 0xD9, 0x84, 0xD9, 0x83,
-               0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x86,
-               0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9, 0x8A,
-               0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x80,
-               0xD9, 0x8E, 0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x8F,
-               0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x90, 0xD9, 0x91,
-               0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9, 0x8A,
-               0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9, 0x8A,
-               0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x8A,
-               0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9, 0x8A,
-               0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9, 0x8A,
-               0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9, 0x8A,
-               0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x8A,
-               0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9, 0x8A,
-               0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x8A,
-               0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9, 0x8A,
-               0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD,
-               0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85,
-               0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8, 0xB1,
-               0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8, 0xB1,
-               0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9, 0x8A,
-               0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9, 0x8A,
-               0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x8A,
-               0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9, 0x8A,
-               0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9, 0x8A,
-               0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9, 0x8A,
-               0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x8A,
-               0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9, 0x8A,
-               0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x8A,
-               0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9, 0x8A,
-               0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD,
-               0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85,
-               0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8, 0xB1,
-               0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8, 0xB1,
-               0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD,
-               0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85,
-               0xD8, 0xB3, 0xD9, 0x87, 0xD8, 0xB4, 0xD9, 0x87,
-               0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xB3, 0xD8, 0xAC,
-               0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3, 0xD8, 0xAE,
-               0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD,
-               0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB7, 0xD9, 0x85,
-               0xD8, 0xB8, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x8B,
-               0xD8, 0xA7, 0xD9, 0x8B, 0xD8, 0xAA, 0xD8, 0xAC,
-               0xD9, 0x85, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC,
-               0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, 0xAA,
-               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAA, 0xD8, 0xAE,
-               0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,
-               0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAA,
-               0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9, 0x85,
-               0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD,
-               0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xAD,
-               0xD9, 0x85, 0xD9, 0x89, 0xD8, 0xB3, 0xD8, 0xAD,
-               0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, 0xAD,
-               0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xB3,
-               0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xB3, 0xD9, 0x85,
-               0xD8, 0xAD, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC,
-               0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB3,
-               0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB5, 0xD8, 0xAD,
-               0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD,
-               0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB4,
-               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB4, 0xD8, 0xAD,
-               0xD9, 0x85, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, 0x8A,
-               0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xB4,
-               0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85,
-               0xD9, 0x85, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85,
-               0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xB6,
-               0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB6, 0xD8, 0xAE,
-               0xD9, 0x85, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD,
-               0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xB7,
-               0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB7, 0xD9, 0x85,
-               0xD9, 0x8A, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85,
-               0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB9,
-               0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB9, 0xD9, 0x85,
-               0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85,
-               0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xBA,
-               0xD9, 0x85, 0xD9, 0x89, 0xD9, 0x81, 0xD8, 0xAE,
-               0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85,
-               0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x82,
-               0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x84, 0xD8, 0xAD,
-               0xD9, 0x85, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A,
-               0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0xD9, 0x84,
-               0xD8, 0xAC, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAC,
-               0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85,
-               0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0xD9, 0x84,
-               0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x84, 0xD9, 0x85,
-               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC,
-               0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x85,
-               0xD8, 0xAD, 0xD9, 0x8A, 0xD9, 0x85, 0xD8, 0xAC,
-               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85,
-               0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9, 0x85,
-               0xD8, 0xAE, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xAC,
-               0xD8, 0xAE, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC,
-               0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x86,
-               0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x86, 0xD8, 0xAD,
-               0xD9, 0x89, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85,
-               0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x86,
-               0xD8, 0xAC, 0xD9, 0x89, 0xD9, 0x86, 0xD9, 0x85,
-               0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x89,
-               0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x8A,
-               0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xA8, 0xD8, 0xAE,
-               0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A,
-               0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAA,
-               0xD8, 0xAE, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAE,
-               0xD9, 0x89, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A,
-               0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0xD8, 0xAC,
-               0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xAC, 0xD8, 0xAD,
-               0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,
-               0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xB5,
-               0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xB4, 0xD8, 0xAD,
-               0xD9, 0x8A, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,
-               0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x84,
-               0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAD,
-               0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A,
-               0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x85,
-               0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x82, 0xD9, 0x85,
-               0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x8A,
-               0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x84,
-               0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB9, 0xD9, 0x85,
-               0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A,
-               0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x85,
-               0xD8, 0xAE, 0xD9, 0x8A, 0xD9, 0x84, 0xD8, 0xAC,
-               0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85,
-               0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x86,
-               0xD8, 0xAC, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, 0xAD,
-               0xD9, 0x8A, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A,
-               0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x81,
-               0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xA8, 0xD8, 0xAD,
-               0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85,
-               0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xB5,
-               0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB3, 0xD8, 0xAE,
-               0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A,
-               0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0xD9, 0x82,
-               0xD9, 0x84, 0xDB, 0x92, 0xD8, 0xA7, 0xD9, 0x84,
-               0xD9, 0x84, 0xD9, 0x87, 0xD8, 0xA7, 0xD9, 0x83,
-               0xD8, 0xA8, 0xD8, 0xB1, 0xD9, 0x85, 0xD8, 0xAD,
-               0xD9, 0x85, 0xD8, 0xAF, 0xD8, 0xB5, 0xD9, 0x84,
-               0xD8, 0xB9, 0xD9, 0x85, 0xD8, 0xB1, 0xD8, 0xB3,
-               0xD9, 0x88, 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x84,
-               0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x88, 0xD8, 0xB3,
-               0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xB5, 0xD9, 0x84,
-               0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89,
-               0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9,
-               0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A,
-               0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9,
-               0x84, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x84, 0x20,
-               0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84,
-               0xD9, 0x87, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,
-               0xD9, 0x84, 0x2E, 0x2E, 0xE2, 0x80, 0x94, 0xE2,
-               0x80, 0x93, 0x5F, 0x5F, 0x28, 0x29, 0x7B, 0x7D,
-               0xE3, 0x80, 0x94, 0xE3, 0x80, 0x95, 0xE3, 0x80,
-               0x90, 0xE3, 0x80, 0x91, 0xE3, 0x80, 0x8A, 0xE3,
-               0x80, 0x8B, 0xE3, 0x80, 0x88, 0xE3, 0x80, 0x89,
-               0xE3, 0x80, 0x8C, 0xE3, 0x80, 0x8D, 0xE3, 0x80,
-               0x8E, 0xE3, 0x80, 0x8F, 0x20, 0xCC, 0x85, 0x20,
-               0xCC, 0x85, 0x20, 0xCC, 0x85, 0x20, 0xCC, 0x85,
-               0x5F, 0x5F, 0x5F, 0x2C, 0xE3, 0x80, 0x81, 0x2E,
-               0x3B, 0x3A, 0x3F, 0x21, 0xE2, 0x80, 0x94, 0x28,
-               0x29, 0x7B, 0x7D, 0xE3, 0x80, 0x94, 0xE3, 0x80,
-               0x95, 0x23, 0x26, 0x2A, 0x2B, 0x2D, 0x3C, 0x3E,
-               0x3D, 0x5C, 0x24, 0x25, 0x40, 0x20, 0xD9, 0x8B,
-               0xD9, 0x80, 0xD9, 0x8B, 0x20, 0xD9, 0x8C, 0x20,
-               0xD9, 0x8D, 0x20, 0xD9, 0x8E, 0xD9, 0x80, 0xD9,
-               0x8E, 0x20, 0xD9, 0x8F, 0xD9, 0x80, 0xD9, 0x8F,
-               0x20, 0xD9, 0x90, 0xD9, 0x80, 0xD9, 0x90, 0x20,
-               0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x91, 0x20, 0xD9,
-               0x92, 0xD9, 0x80, 0xD9, 0x92, 0xD8, 0xA1, 0xD8,
-               0xA7, 0xD9, 0x93, 0xD8, 0xA7, 0xD9, 0x93, 0xD8,
-               0xA7, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x94, 0xD9,
-               0x88, 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x94, 0xD8,
-               0xA7, 0xD9, 0x95, 0xD8, 0xA7, 0xD9, 0x95, 0xD9,
-               0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
-               0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
-               0xA7, 0xD8, 0xA7, 0xD8, 0xA8, 0xD8, 0xA8, 0xD8,
-               0xA8, 0xD8, 0xA8, 0xD8, 0xA9, 0xD8, 0xA9, 0xD8,
-               0xAA, 0xD8, 0xAA, 0xD8, 0xAA, 0xD8, 0xAA, 0xD8,
-               0xAB, 0xD8, 0xAB, 0xD8, 0xAB, 0xD8, 0xAB, 0xD8,
-               0xAC, 0xD8, 0xAC, 0xD8, 0xAC, 0xD8, 0xAC, 0xD8,
-               0xAD, 0xD8, 0xAD, 0xD8, 0xAD, 0xD8, 0xAD, 0xD8,
-               0xAE, 0xD8, 0xAE, 0xD8, 0xAE, 0xD8, 0xAE, 0xD8,
-               0xAF, 0xD8, 0xAF, 0xD8, 0xB0, 0xD8, 0xB0, 0xD8,
-               0xB1, 0xD8, 0xB1, 0xD8, 0xB2, 0xD8, 0xB2, 0xD8,
-               0xB3, 0xD8, 0xB3, 0xD8, 0xB3, 0xD8, 0xB3, 0xD8,
-               0xB4, 0xD8, 0xB4, 0xD8, 0xB4, 0xD8, 0xB4, 0xD8,
-               0xB5, 0xD8, 0xB5, 0xD8, 0xB5, 0xD8, 0xB5, 0xD8,
-               0xB6, 0xD8, 0xB6, 0xD8, 0xB6, 0xD8, 0xB6, 0xD8,
-               0xB7, 0xD8, 0xB7, 0xD8, 0xB7, 0xD8, 0xB7, 0xD8,
-               0xB8, 0xD8, 0xB8, 0xD8, 0xB8, 0xD8, 0xB8, 0xD8,
-               0xB9, 0xD8, 0xB9, 0xD8, 0xB9, 0xD8, 0xB9, 0xD8,
-               0xBA, 0xD8, 0xBA, 0xD8, 0xBA, 0xD8, 0xBA, 0xD9,
-               0x81, 0xD9, 0x81, 0xD9, 0x81, 0xD9, 0x81, 0xD9,
-               0x82, 0xD9, 0x82, 0xD9, 0x82, 0xD9, 0x82, 0xD9,
-               0x83, 0xD9, 0x83, 0xD9, 0x83, 0xD9, 0x83, 0xD9,
-               0x84, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x84, 0xD9,
-               0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
-               0x86, 0xD9, 0x86, 0xD9, 0x86, 0xD9, 0x86, 0xD9,
-               0x87, 0xD9, 0x87, 0xD9, 0x87, 0xD9, 0x87, 0xD9,
-               0x88, 0xD9, 0x88, 0xD9, 0x89, 0xD9, 0x89, 0xD9,
-               0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9,
-               0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xD9, 0x84, 0xD8,
-               0xA7, 0xD9, 0x93, 0xD9, 0x84, 0xD8, 0xA7, 0xD9,
-               0x94, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xD9,
-               0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xD9, 0x84, 0xD8,
-               0xA7, 0xD9, 0x95, 0xD9, 0x84, 0xD8, 0xA7, 0xD9,
-               0x84, 0xD8, 0xA7, 0x21, 0x22, 0x23, 0x24, 0x25,
-               0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D,
-               0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35,
-               0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D,
-               0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45,
-               0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D,
-               0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55,
-               0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D,
-               0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D,
-               0x7E, 0xE2, 0xA6, 0x85, 0xE2, 0xA6, 0x86, 0xE3,
-               0x80, 0x82, 0xE3, 0x80, 0x8C, 0xE3, 0x80, 0x8D,
-               0xE3, 0x80, 0x81, 0xE3, 0x83, 0xBB, 0xE3, 0x83,
-               0xB2, 0xE3, 0x82, 0xA1, 0xE3, 0x82, 0xA3, 0xE3,
-               0x82, 0xA5, 0xE3, 0x82, 0xA7, 0xE3, 0x82, 0xA9,
-               0xE3, 0x83, 0xA3, 0xE3, 0x83, 0xA5, 0xE3, 0x83,
-               0xA7, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0xBC, 0xE3,
-               0x82, 0xA2, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xA6,
-               0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xAA, 0xE3, 0x82,
-               0xAB, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0xAF, 0xE3,
-               0x82, 0xB1, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB5,
-               0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xB9, 0xE3, 0x82,
-               0xBB, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0xBF, 0xE3,
-               0x83, 0x81, 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x86,
-               0xE3, 0x83, 0x88, 0xE3, 0x83, 0x8A, 0xE3, 0x83,
-               0x8B, 0xE3, 0x83, 0x8C, 0xE3, 0x83, 0x8D, 0xE3,
-               0x83, 0x8E, 0xE3, 0x83, 0x8F, 0xE3, 0x83, 0x92,
-               0xE3, 0x83, 0x95, 0xE3, 0x83, 0x98, 0xE3, 0x83,
-               0x9B, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x9F, 0xE3,
-               0x83, 0xA0, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xA2,
-               0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xA6, 0xE3, 0x83,
-               0xA8, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xAA, 0xE3,
-               0x83, 0xAB, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAD,
-               0xE3, 0x83, 0xAF, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
-               0x99, 0xE3, 0x82, 0x9A, 0xE1, 0x85, 0xA0, 0xE1,
-               0x84, 0x80, 0xE1, 0x84, 0x81, 0xE1, 0x86, 0xAA,
-               0xE1, 0x84, 0x82, 0xE1, 0x86, 0xAC, 0xE1, 0x86,
-               0xAD, 0xE1, 0x84, 0x83, 0xE1, 0x84, 0x84, 0xE1,
-               0x84, 0x85, 0xE1, 0x86, 0xB0, 0xE1, 0x86, 0xB1,
-               0xE1, 0x86, 0xB2, 0xE1, 0x86, 0xB3, 0xE1, 0x86,
-               0xB4, 0xE1, 0x86, 0xB5, 0xE1, 0x84, 0x9A, 0xE1,
-               0x84, 0x86, 0xE1, 0x84, 0x87, 0xE1, 0x84, 0x88,
-               0xE1, 0x84, 0xA1, 0xE1, 0x84, 0x89, 0xE1, 0x84,
-               0x8A, 0xE1, 0x84, 0x8B, 0xE1, 0x84, 0x8C, 0xE1,
-               0x84, 0x8D, 0xE1, 0x84, 0x8E, 0xE1, 0x84, 0x8F,
-               0xE1, 0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1, 0x84,
-               0x92, 0xE1, 0x85, 0xA1, 0xE1, 0x85, 0xA2, 0xE1,
-               0x85, 0xA3, 0xE1, 0x85, 0xA4, 0xE1, 0x85, 0xA5,
-               0xE1, 0x85, 0xA6, 0xE1, 0x85, 0xA7, 0xE1, 0x85,
-               0xA8, 0xE1, 0x85, 0xA9, 0xE1, 0x85, 0xAA, 0xE1,
-               0x85, 0xAB, 0xE1, 0x85, 0xAC, 0xE1, 0x85, 0xAD,
-               0xE1, 0x85, 0xAE, 0xE1, 0x85, 0xAF, 0xE1, 0x85,
-               0xB0, 0xE1, 0x85, 0xB1, 0xE1, 0x85, 0xB2, 0xE1,
-               0x85, 0xB3, 0xE1, 0x85, 0xB4, 0xE1, 0x85, 0xB5,
-               0xC2, 0xA2, 0xC2, 0xA3, 0xC2, 0xAC, 0x20, 0xCC,
-               0x84, 0xC2, 0xA6, 0xC2, 0xA5, 0xE2, 0x82, 0xA9,
-               0xE2, 0x94, 0x82, 0xE2, 0x86, 0x90, 0xE2, 0x86,
-               0x91, 0xE2, 0x86, 0x92, 0xE2, 0x86, 0x93, 0xE2,
-               0x96, 0xA0, 0xE2, 0x97, 0x8B, 0xF6, 0xF0, 0x9D,
-               0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xF6, 0xF0,
-               0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF6,
-               0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,
-               0xF0, 0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x85,
-               0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
-               0xAF, 0xF6, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,
-               0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xF6, 0xF0,
-               0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
-               0x9D, 0x85, 0xB1, 0xF6, 0xF0, 0x9D, 0x85, 0x98,
-               0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2,
-               0xF6, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,
-               0xA5, 0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D,
-               0x85, 0xA5, 0xF6, 0xF0, 0x9D, 0x86, 0xB9, 0xF0,
-               0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xF6,
-               0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5,
-               0xF0, 0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x86,
-               0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
-               0xAF, 0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D,
-               0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0x41, 0x42,
-               0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A,
-               0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52,
-               0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A,
-               0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
-               0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,
-               0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
-               0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
-               0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
-               0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
-               0x57, 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64,
-               0x65, 0x66, 0x67, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
-               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
-               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
-               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x41, 0x43, 0x44, 0x47, 0x4A, 0x4B, 0x4E,
-               0x4F, 0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x66,
-               0x68, 0x69, 0x6A, 0x6B, 0x6D, 0x6E, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44,
-               0x45, 0x46, 0x47, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
-               0x4F, 0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
-               0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E,
-               0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
-               0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44, 0x45,
-               0x46, 0x47, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4F,
-               0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
-               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
-               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
-               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
-               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
-               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
-               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
-               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
-               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
-               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE,
-               0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE,
-               0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE,
-               0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE,
-               0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE,
-               0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE,
-               0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1,
-               0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5,
-               0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9,
-               0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD,
-               0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81,
-               0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85,
-               0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89,
-               0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE,
-               0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE,
-               0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE,
-               0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE,
-               0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE,
-               0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE,
-               0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE,
-               0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE,
-               0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2,
-               0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6,
-               0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA,
-               0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE,
-               0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82,
-               0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86,
-               0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88,
-               0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF,
-               0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE,
-               0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE,
-               0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE,
-               0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE,
-               0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE,
-               0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE,
-               0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2,
-               0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3,
-               0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7,
-               0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB,
-               0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF,
-               0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83,
-               0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87,
-               0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE,
-               0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF,
-               0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE,
-               0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE,
-               0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE,
-               0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE,
-               0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE,
-               0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE,
-               0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87,
-               0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4,
-               0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8,
-               0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC,
-               0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80,
-               0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84,
-               0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88,
-               0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE,
-               0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF,
-               0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE,
-               0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE,
-               0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE,
-               0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE,
-               0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE,
-               0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE,
-               0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1,
-               0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5,
-               0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9,
-               0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD,
-               0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81,
-               0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85,
-               0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89,
-               0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE,
-               0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x80, 0x30,
-               0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
-               0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
-               0x37, 0x38, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34,
-               0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x31, 0x32,
-               0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30,
-               0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
-               0x39, 0xF6, 0xE4, 0xB8, 0xBD, 0xF6, 0xE4, 0xB8,
-               0xB8, 0xF6, 0xE4, 0xB9, 0x81, 0xF6, 0xF0, 0xA0,
-               0x84, 0xA2, 0xF6, 0xE4, 0xBD, 0xA0, 0xF6, 0xE4,
-               0xBE, 0xAE, 0xF6, 0xE4, 0xBE, 0xBB, 0xF6, 0xE5,
-               0x80, 0x82, 0xF6, 0xE5, 0x81, 0xBA, 0xF6, 0xE5,
-               0x82, 0x99, 0xF6, 0xE5, 0x83, 0xA7, 0xF6, 0xE5,
-               0x83, 0x8F, 0xF6, 0xE3, 0x92, 0x9E, 0xF6, 0xF0,
-               0xA0, 0x98, 0xBA, 0xF6, 0xE5, 0x85, 0x8D, 0xF6,
-               0xE5, 0x85, 0x94, 0xF6, 0xE5, 0x85, 0xA4, 0xF6,
-               0xE5, 0x85, 0xB7, 0xF6, 0xF0, 0xA0, 0x94, 0x9C,
-               0xF6, 0xE3, 0x92, 0xB9, 0xF6, 0xE5, 0x85, 0xA7,
-               0xF6, 0xE5, 0x86, 0x8D, 0xF6, 0xF0, 0xA0, 0x95,
-               0x8B, 0xF6, 0xE5, 0x86, 0x97, 0xF6, 0xE5, 0x86,
-               0xA4, 0xF6, 0xE4, 0xBB, 0x8C, 0xF6, 0xE5, 0x86,
-               0xAC, 0xF6, 0xE5, 0x86, 0xB5, 0xF6, 0xF0, 0xA9,
-               0x87, 0x9F, 0xF6, 0xE5, 0x87, 0xB5, 0xF6, 0xE5,
-               0x88, 0x83, 0xF6, 0xE3, 0x93, 0x9F, 0xF6, 0xE5,
-               0x88, 0xBB, 0xF6, 0xE5, 0x89, 0x86, 0xF6, 0xE5,
-               0x89, 0xB2, 0xF6, 0xE5, 0x89, 0xB7, 0xF6, 0xE3,
-               0x94, 0x95, 0xF6, 0xE5, 0x8B, 0x87, 0xF6, 0xE5,
-               0x8B, 0x89, 0xF6, 0xE5, 0x8B, 0xA4, 0xF6, 0xE5,
-               0x8B, 0xBA, 0xF6, 0xE5, 0x8C, 0x85, 0xF6, 0xE5,
-               0x8C, 0x86, 0xF6, 0xE5, 0x8C, 0x97, 0xF6, 0xE5,
-               0x8D, 0x89, 0xF6, 0xE5, 0x8D, 0x91, 0xF6, 0xE5,
-               0x8D, 0x9A, 0xF6, 0xE5, 0x8D, 0xB3, 0xF6, 0xE5,
-               0x8D, 0xBD, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xE5,
-               0x8D, 0xBF, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xF0,
-               0xA0, 0xA8, 0xAC, 0xF6, 0xE7, 0x81, 0xB0, 0xF6,
-               0xE5, 0x8F, 0x8A, 0xF6, 0xE5, 0x8F, 0x9F, 0xF6,
-               0xF0, 0xA0, 0xAD, 0xA3, 0xF6, 0xE5, 0x8F, 0xAB,
-               0xF6, 0xE5, 0x8F, 0xB1, 0xF6, 0xE5, 0x90, 0x86,
-               0xF6, 0xE5, 0x92, 0x9E, 0xF6, 0xE5, 0x90, 0xB8,
-               0xF6, 0xE5, 0x91, 0x88, 0xF6, 0xE5, 0x91, 0xA8,
-               0xF6, 0xE5, 0x92, 0xA2, 0xF6, 0xE5, 0x93, 0xB6,
-               0xF6, 0xE5, 0x94, 0x90, 0xF6, 0xE5, 0x95, 0x93,
-               0xF6, 0xE5, 0x95, 0xA3, 0xF6, 0xE5, 0x96, 0x84,
-               0xF6, 0xE5, 0x96, 0x84, 0xF6, 0xE5, 0x96, 0x99,
-               0xF6, 0xE5, 0x96, 0xAB, 0xF6, 0xE5, 0x96, 0xB3,
-               0xF6, 0xE5, 0x97, 0x82, 0xF6, 0xE5, 0x9C, 0x96,
-               0xF6, 0xE5, 0x98, 0x86, 0xF6, 0xE5, 0x9C, 0x97,
-               0xF6, 0xE5, 0x99, 0x91, 0xF6, 0xE5, 0x99, 0xB4,
-               0xF6, 0xE5, 0x88, 0x87, 0xF6, 0xE5, 0xA3, 0xAE,
-               0xF6, 0xE5, 0x9F, 0x8E, 0xF6, 0xE5, 0x9F, 0xB4,
-               0xF6, 0xE5, 0xA0, 0x8D, 0xF6, 0xE5, 0x9E, 0x8B,
-               0xF6, 0xE5, 0xA0, 0xB2, 0xF6, 0xE5, 0xA0, 0xB1,
-               0xF6, 0xE5, 0xA2, 0xAC, 0xF6, 0xF0, 0xA1, 0x93,
-               0xA4, 0xF6, 0xE5, 0xA3, 0xB2, 0xF6, 0xE5, 0xA3,
-               0xB7, 0xF6, 0xE5, 0xA4, 0x86, 0xF6, 0xE5, 0xA4,
-               0x9A, 0xF6, 0xE5, 0xA4, 0xA2, 0xF6, 0xE5, 0xA5,
-               0xA2, 0xF6, 0xF0, 0xA1, 0x9A, 0xA8, 0xF6, 0xF0,
-               0xA1, 0x9B, 0xAA, 0xF6, 0xE5, 0xA7, 0xAC, 0xF6,
-               0xE5, 0xA8, 0x9B, 0xF6, 0xE5, 0xA8, 0xA7, 0xF6,
-               0xE5, 0xA7, 0x98, 0xF6, 0xE5, 0xA9, 0xA6, 0xF6,
-               0xE3, 0x9B, 0xAE, 0xF6, 0xE3, 0x9B, 0xBC, 0xF6,
-               0xE5, 0xAC, 0x88, 0xF6, 0xE5, 0xAC, 0xBE, 0xF6,
-               0xE5, 0xAC, 0xBE, 0xF6, 0xF0, 0xA1, 0xA7, 0x88,
-               0xF6, 0xE5, 0xAF, 0x83, 0xF6, 0xE5, 0xAF, 0x98,
-               0xF6, 0xE5, 0xAF, 0xA7, 0xF6, 0xE5, 0xAF, 0xB3,
-               0xF6, 0xF0, 0xA1, 0xAC, 0x98, 0xF6, 0xE5, 0xAF,
-               0xBF, 0xF6, 0xE5, 0xB0, 0x86, 0xF6, 0xE5, 0xBD,
-               0x93, 0xF6, 0xE5, 0xB0, 0xA2, 0xF6, 0xE3, 0x9E,
-               0x81, 0xF6, 0xE5, 0xB1, 0xA0, 0xF6, 0xE5, 0xB1,
-               0xAE, 0xF6, 0xE5, 0xB3, 0x80, 0xF6, 0xE5, 0xB2,
-               0x8D, 0xF6, 0xF0, 0xA1, 0xB7, 0xA4, 0xF6, 0xE5,
-               0xB5, 0x83, 0xF6, 0xF0, 0xA1, 0xB7, 0xA6, 0xF6,
-               0xE5, 0xB5, 0xAE, 0xF6, 0xE5, 0xB5, 0xAB, 0xF6,
-               0xE5, 0xB5, 0xBC, 0xF6, 0xE5, 0xB7, 0xA1, 0xF6,
-               0xE5, 0xB7, 0xA2, 0xF6, 0xE3, 0xA0, 0xAF, 0xF6,
-               0xE5, 0xB7, 0xBD, 0xF6, 0xE5, 0xB8, 0xA8, 0xF6,
-               0xE5, 0xB8, 0xBD, 0xF6, 0xE5, 0xB9, 0xA9, 0xF6,
-               0xE3, 0xA1, 0xA2, 0xF6, 0xF0, 0xA2, 0x86, 0x83,
-               0xF6, 0xE3, 0xA1, 0xBC, 0xF6, 0xE5, 0xBA, 0xB0,
-               0xF6, 0xE5, 0xBA, 0xB3, 0xF6, 0xE5, 0xBA, 0xB6,
-               0xF6, 0xE5, 0xBB, 0x8A, 0xF6, 0xF0, 0xAA, 0x8E,
-               0x92, 0xF6, 0xE5, 0xBB, 0xBE, 0xF6, 0xF0, 0xA2,
-               0x8C, 0xB1, 0xF6, 0xF0, 0xA2, 0x8C, 0xB1, 0xF6,
-               0xE8, 0x88, 0x81, 0xF6, 0xE5, 0xBC, 0xA2, 0xF6,
-               0xE5, 0xBC, 0xA2, 0xF6, 0xE3, 0xA3, 0x87, 0xF6,
-               0xF0, 0xA3, 0x8A, 0xB8, 0xF6, 0xF0, 0xA6, 0x87,
-               0x9A, 0xF6, 0xE5, 0xBD, 0xA2, 0xF6, 0xE5, 0xBD,
-               0xAB, 0xF6, 0xE3, 0xA3, 0xA3, 0xF6, 0xE5, 0xBE,
-               0x9A, 0xF6, 0xE5, 0xBF, 0x8D, 0xF6, 0xE5, 0xBF,
-               0x97, 0xF6, 0xE5, 0xBF, 0xB9, 0xF6, 0xE6, 0x82,
-               0x81, 0xF6, 0xE3, 0xA4, 0xBA, 0xF6, 0xE3, 0xA4,
-               0x9C, 0xF6, 0xE6, 0x82, 0x94, 0xF6, 0xF0, 0xA2,
-               0x9B, 0x94, 0xF6, 0xE6, 0x83, 0x87, 0xF6, 0xE6,
-               0x85, 0x88, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6,
-               0x85, 0x8E, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6,
-               0x85, 0xBA, 0xF6, 0xE6, 0x86, 0x8E, 0xF6, 0xE6,
-               0x86, 0xB2, 0xF6, 0xE6, 0x86, 0xA4, 0xF6, 0xE6,
-               0x86, 0xAF, 0xF6, 0xE6, 0x87, 0x9E, 0xF6, 0xE6,
-               0x87, 0xB2, 0xF6, 0xE6, 0x87, 0xB6, 0xF6, 0xE6,
-               0x88, 0x90, 0xF6, 0xE6, 0x88, 0x9B, 0xF6, 0xE6,
-               0x89, 0x9D, 0xF6, 0xE6, 0x8A, 0xB1, 0xF6, 0xE6,
-               0x8B, 0x94, 0xF6, 0xE6, 0x8D, 0x90, 0xF6, 0xF0,
-               0xA2, 0xAC, 0x8C, 0xF6, 0xE6, 0x8C, 0xBD, 0xF6,
-               0xE6, 0x8B, 0xBC, 0xF6, 0xE6, 0x8D, 0xA8, 0xF6,
-               0xE6, 0x8E, 0x83, 0xF6, 0xE6, 0x8F, 0xA4, 0xF6,
-               0xF0, 0xA2, 0xAF, 0xB1, 0xF6, 0xE6, 0x90, 0xA2,
-               0xF6, 0xE6, 0x8F, 0x85, 0xF6, 0xE6, 0x8E, 0xA9,
-               0xF6, 0xE3, 0xA8, 0xAE, 0xF6, 0xE6, 0x91, 0xA9,
-               0xF6, 0xE6, 0x91, 0xBE, 0xF6, 0xE6, 0x92, 0x9D,
-               0xF6, 0xE6, 0x91, 0xB7, 0xF6, 0xE3, 0xA9, 0xAC,
-               0xF6, 0xE6, 0x95, 0x8F, 0xF6, 0xE6, 0x95, 0xAC,
-               0xF6, 0xF0, 0xA3, 0x80, 0x8A, 0xF6, 0xE6, 0x97,
-               0xA3, 0xF6, 0xE6, 0x9B, 0xB8, 0xF6, 0xE6, 0x99,
-               0x89, 0xF6, 0xE3, 0xAC, 0x99, 0xF6, 0xE6, 0x9A,
-               0x91, 0xF6, 0xE3, 0xAC, 0x88, 0xF6, 0xE3, 0xAB,
-               0xA4, 0xF6, 0xE5, 0x86, 0x92, 0xF6, 0xE5, 0x86,
-               0x95, 0xF6, 0xE6, 0x9C, 0x80, 0xF6, 0xE6, 0x9A,
-               0x9C, 0xF6, 0xE8, 0x82, 0xAD, 0xF6, 0xE4, 0x8F,
-               0x99, 0xF6, 0xE6, 0x9C, 0x97, 0xF6, 0xE6, 0x9C,
-               0x9B, 0xF6, 0xE6, 0x9C, 0xA1, 0xF6, 0xE6, 0x9D,
-               0x9E, 0xF6, 0xE6, 0x9D, 0x93, 0xF6, 0xF0, 0xA3,
-               0x8F, 0x83, 0xF6, 0xE3, 0xAD, 0x89, 0xF6, 0xE6,
-               0x9F, 0xBA, 0xF6, 0xE6, 0x9E, 0x85, 0xF6, 0xE6,
-               0xA1, 0x92, 0xF6, 0xE6, 0xA2, 0x85, 0xF6, 0xF0,
-               0xA3, 0x91, 0xAD, 0xF6, 0xE6, 0xA2, 0x8E, 0xF6,
-               0xE6, 0xA0, 0x9F, 0xF6, 0xE6, 0xA4, 0x94, 0xF6,
-               0xE3, 0xAE, 0x9D, 0xF6, 0xE6, 0xA5, 0x82, 0xF6,
-               0xE6, 0xA6, 0xA3, 0xF6, 0xE6, 0xA7, 0xAA, 0xF6,
-               0xE6, 0xAA, 0xA8, 0xF6, 0xF0, 0xA3, 0x9A, 0xA3,
-               0xF6, 0xE6, 0xAB, 0x9B, 0xF6, 0xE3, 0xB0, 0x98,
-               0xF6, 0xE6, 0xAC, 0xA1, 0xF6, 0xF0, 0xA3, 0xA2,
-               0xA7, 0xF6, 0xE6, 0xAD, 0x94, 0xF6, 0xE3, 0xB1,
-               0x8E, 0xF6, 0xE6, 0xAD, 0xB2, 0xF6, 0xE6, 0xAE,
-               0x9F, 0xF6, 0xE6, 0xAE, 0xBA, 0xF6, 0xE6, 0xAE,
-               0xBB, 0xF6, 0xF0, 0xA3, 0xAA, 0x8D, 0xF6, 0xF0,
-               0xA1, 0xB4, 0x8B, 0xF6, 0xF0, 0xA3, 0xAB, 0xBA,
-               0xF6, 0xE6, 0xB1, 0x8E, 0xF6, 0xF0, 0xA3, 0xB2,
-               0xBC, 0xF6, 0xE6, 0xB2, 0xBF, 0xF6, 0xE6, 0xB3,
-               0x8D, 0xF6, 0xE6, 0xB1, 0xA7, 0xF6, 0xE6, 0xB4,
-               0x96, 0xF6, 0xE6, 0xB4, 0xBE, 0xF6, 0xE6, 0xB5,
-               0xB7, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6, 0xB5,
-               0xA9, 0xF6, 0xE6, 0xB5, 0xB8, 0xF6, 0xE6, 0xB6,
-               0x85, 0xF6, 0xF0, 0xA3, 0xB4, 0x9E, 0xF6, 0xE6,
-               0xB4, 0xB4, 0xF6, 0xE6, 0xB8, 0xAF, 0xF6, 0xE6,
-               0xB9, 0xAE, 0xF6, 0xE3, 0xB4, 0xB3, 0xF6, 0xE6,
-               0xBB, 0x8B, 0xF6, 0xE6, 0xBB, 0x87, 0xF6, 0xF0,
-               0xA3, 0xBB, 0x91, 0xF6, 0xE6, 0xB7, 0xB9, 0xF6,
-               0xE6, 0xBD, 0xAE, 0xF6, 0xF0, 0xA3, 0xBD, 0x9E,
-               0xF6, 0xF0, 0xA3, 0xBE, 0x8E, 0xF6, 0xE6, 0xBF,
-               0x86, 0xF6, 0xE7, 0x80, 0xB9, 0xF6, 0xE7, 0x80,
-               0x9E, 0xF6, 0xE7, 0x80, 0x9B, 0xF6, 0xE3, 0xB6,
-               0x96, 0xF6, 0xE7, 0x81, 0x8A, 0xF6, 0xE7, 0x81,
-               0xBD, 0xF6, 0xE7, 0x81, 0xB7, 0xF6, 0xE7, 0x82,
-               0xAD, 0xF6, 0xF0, 0xA0, 0x94, 0xA5, 0xF6, 0xE7,
-               0x85, 0x85, 0xF6, 0xF0, 0xA4, 0x89, 0xA3, 0xF6,
-               0xE7, 0x86, 0x9C, 0xF6, 0xF0, 0xA4, 0x8E, 0xAB,
-               0xF6, 0xE7, 0x88, 0xA8, 0xF6, 0xE7, 0x88, 0xB5,
-               0xF6, 0xE7, 0x89, 0x90, 0xF6, 0xF0, 0xA4, 0x98,
-               0x88, 0xF6, 0xE7, 0x8A, 0x80, 0xF6, 0xE7, 0x8A,
-               0x95, 0xF6, 0xF0, 0xA4, 0x9C, 0xB5, 0xF6, 0xF0,
-               0xA4, 0xA0, 0x94, 0xF6, 0xE7, 0x8D, 0xBA, 0xF6,
-               0xE7, 0x8E, 0x8B, 0xF6, 0xE3, 0xBA, 0xAC, 0xF6,
-               0xE7, 0x8E, 0xA5, 0xF6, 0xE3, 0xBA, 0xB8, 0xF6,
-               0xE3, 0xBA, 0xB8, 0xF6, 0xE7, 0x91, 0x87, 0xF6,
-               0xE7, 0x91, 0x9C, 0xF6, 0xE7, 0x91, 0xB1, 0xF6,
-               0xE7, 0x92, 0x85, 0xF6, 0xE7, 0x93, 0x8A, 0xF6,
-               0xE3, 0xBC, 0x9B, 0xF6, 0xE7, 0x94, 0xA4, 0xF6,
-               0xF0, 0xA4, 0xB0, 0xB6, 0xF6, 0xE7, 0x94, 0xBE,
-               0xF6, 0xF0, 0xA4, 0xB2, 0x92, 0xF6, 0xE7, 0x95,
-               0xB0, 0xF6, 0xF0, 0xA2, 0x86, 0x9F, 0xF6, 0xE7,
-               0x98, 0x90, 0xF6, 0xF0, 0xA4, 0xBE, 0xA1, 0xF6,
-               0xF0, 0xA4, 0xBE, 0xB8, 0xF6, 0xF0, 0xA5, 0x81,
-               0x84, 0xF6, 0xE3, 0xBF, 0xBC, 0xF6, 0xE4, 0x80,
-               0x88, 0xF6, 0xE7, 0x9B, 0xB4, 0xF6, 0xF0, 0xA5,
-               0x83, 0xB3, 0xF6, 0xF0, 0xA5, 0x83, 0xB2, 0xF6,
-               0xF0, 0xA5, 0x84, 0x99, 0xF6, 0xF0, 0xA5, 0x84,
-               0xB3, 0xF6, 0xE7, 0x9C, 0x9E, 0xF6, 0xE7, 0x9C,
-               0x9F, 0xF6, 0xE7, 0x9C, 0x9F, 0xF6, 0xE7, 0x9D,
-               0x8A, 0xF6, 0xE4, 0x80, 0xB9, 0xF6, 0xE7, 0x9E,
-               0x8B, 0xF6, 0xE4, 0x81, 0x86, 0xF6, 0xE4, 0x82,
-               0x96, 0xF6, 0xF0, 0xA5, 0x90, 0x9D, 0xF6, 0xE7,
-               0xA1, 0x8E, 0xF6, 0xE7, 0xA2, 0x8C, 0xF6, 0xE7,
-               0xA3, 0x8C, 0xF6, 0xE4, 0x83, 0xA3, 0xF6, 0xF0,
-               0xA5, 0x98, 0xA6, 0xF6, 0xE7, 0xA5, 0x96, 0xF6,
-               0xF0, 0xA5, 0x9A, 0x9A, 0xF6, 0xF0, 0xA5, 0x9B,
-               0x85, 0xF6, 0xE7, 0xA6, 0x8F, 0xF6, 0xE7, 0xA7,
-               0xAB, 0xF6, 0xE4, 0x84, 0xAF, 0xF6, 0xE7, 0xA9,
-               0x80, 0xF6, 0xE7, 0xA9, 0x8A, 0xF6, 0xE7, 0xA9,
-               0x8F, 0xF6, 0xF0, 0xA5, 0xA5, 0xBC, 0xF6, 0xF0,
-               0xA5, 0xAA, 0xA7, 0xF6, 0xF0, 0xA5, 0xAA, 0xA7,
-               0xF6, 0xE7, 0xAB, 0xAE, 0xF6, 0xE4, 0x88, 0x82,
-               0xF6, 0xF0, 0xA5, 0xAE, 0xAB, 0xF6, 0xE7, 0xAF,
-               0x86, 0xF6, 0xE7, 0xAF, 0x89, 0xF6, 0xE4, 0x88,
-               0xA7, 0xF6, 0xF0, 0xA5, 0xB2, 0x80, 0xF6, 0xE7,
-               0xB3, 0x92, 0xF6, 0xE4, 0x8A, 0xA0, 0xF6, 0xE7,
-               0xB3, 0xA8, 0xF6, 0xE7, 0xB3, 0xA3, 0xF6, 0xE7,
-               0xB4, 0x80, 0xF6, 0xF0, 0xA5, 0xBE, 0x86, 0xF6,
-               0xE7, 0xB5, 0xA3, 0xF6, 0xE4, 0x8C, 0x81, 0xF6,
-               0xE7, 0xB7, 0x87, 0xF6, 0xE7, 0xB8, 0x82, 0xF6,
-               0xE7, 0xB9, 0x85, 0xF6, 0xE4, 0x8C, 0xB4, 0xF6,
-               0xF0, 0xA6, 0x88, 0xA8, 0xF6, 0xF0, 0xA6, 0x89,
-               0x87, 0xF6, 0xE4, 0x8D, 0x99, 0xF6, 0xF0, 0xA6,
-               0x8B, 0x99, 0xF6, 0xE7, 0xBD, 0xBA, 0xF6, 0xF0,
-               0xA6, 0x8C, 0xBE, 0xF6, 0xE7, 0xBE, 0x95, 0xF6,
-               0xE7, 0xBF, 0xBA, 0xF6, 0xE8, 0x80, 0x85, 0xF6,
-               0xF0, 0xA6, 0x93, 0x9A, 0xF6, 0xF0, 0xA6, 0x94,
-               0xA3, 0xF6, 0xE8, 0x81, 0xA0, 0xF6, 0xF0, 0xA6,
-               0x96, 0xA8, 0xF6, 0xE8, 0x81, 0xB0, 0xF6, 0xF0,
-               0xA3, 0x8D, 0x9F, 0xF6, 0xE4, 0x8F, 0x95, 0xF6,
-               0xE8, 0x82, 0xB2, 0xF6, 0xE8, 0x84, 0x83, 0xF6,
-               0xE4, 0x90, 0x8B, 0xF6, 0xE8, 0x84, 0xBE, 0xF6,
-               0xE5, 0xAA, 0xB5, 0xF6, 0xF0, 0xA6, 0x9E, 0xA7,
-               0xF6, 0xF0, 0xA6, 0x9E, 0xB5, 0xF6, 0xF0, 0xA3,
-               0x8E, 0x93, 0xF6, 0xF0, 0xA3, 0x8E, 0x9C, 0xF6,
-               0xE8, 0x88, 0x81, 0xF6, 0xE8, 0x88, 0x84, 0xF6,
-               0xE8, 0xBE, 0x9E, 0xF6, 0xE4, 0x91, 0xAB, 0xF6,
-               0xE8, 0x8A, 0x91, 0xF6, 0xE8, 0x8A, 0x8B, 0xF6,
-               0xE8, 0x8A, 0x9D, 0xF6, 0xE5, 0x8A, 0xB3, 0xF6,
-               0xE8, 0x8A, 0xB1, 0xF6, 0xE8, 0x8A, 0xB3, 0xF6,
-               0xE8, 0x8A, 0xBD, 0xF6, 0xE8, 0x8B, 0xA6, 0xF6,
-               0xF0, 0xA6, 0xAC, 0xBC, 0xF6, 0xE8, 0x8B, 0xA5,
-               0xF6, 0xE8, 0x8C, 0x9D, 0xF6, 0xE8, 0x8D, 0xA3,
-               0xF6, 0xE8, 0x8E, 0xAD, 0xF6, 0xE8, 0x8C, 0xA3,
-               0xF6, 0xE8, 0x8E, 0xBD, 0xF6, 0xE8, 0x8F, 0xA7,
-               0xF6, 0xE8, 0x91, 0x97, 0xF6, 0xE8, 0x8D, 0x93,
-               0xF6, 0xE8, 0x8F, 0x8A, 0xF6, 0xE8, 0x8F, 0x8C,
-               0xF6, 0xE8, 0x8F, 0x9C, 0xF6, 0xF0, 0xA6, 0xB0,
-               0xB6, 0xF6, 0xF0, 0xA6, 0xB5, 0xAB, 0xF6, 0xF0,
-               0xA6, 0xB3, 0x95, 0xF6, 0xE4, 0x94, 0xAB, 0xF6,
-               0xE8, 0x93, 0xB1, 0xF6, 0xE8, 0x93, 0xB3, 0xF6,
-               0xE8, 0x94, 0x96, 0xF6, 0xF0, 0xA7, 0x8F, 0x8A,
-               0xF6, 0xE8, 0x95, 0xA4, 0xF6, 0xF0, 0xA6, 0xBC,
-               0xAC, 0xF6, 0xE4, 0x95, 0x9D, 0xF6, 0xE4, 0x95,
-               0xA1, 0xF6, 0xF0, 0xA6, 0xBE, 0xB1, 0xF6, 0xF0,
-               0xA7, 0x83, 0x92, 0xF6, 0xE4, 0x95, 0xAB, 0xF6,
-               0xE8, 0x99, 0x90, 0xF6, 0xE8, 0x99, 0x9C, 0xF6,
-               0xE8, 0x99, 0xA7, 0xF6, 0xE8, 0x99, 0xA9, 0xF6,
-               0xE8, 0x9A, 0xA9, 0xF6, 0xE8, 0x9A, 0x88, 0xF6,
-               0xE8, 0x9C, 0x8E, 0xF6, 0xE8, 0x9B, 0xA2, 0xF6,
-               0xE8, 0x9D, 0xB9, 0xF6, 0xE8, 0x9C, 0xA8, 0xF6,
-               0xE8, 0x9D, 0xAB, 0xF6, 0xE8, 0x9E, 0x86, 0xF6,
-               0xE4, 0x97, 0x97, 0xF6, 0xE8, 0x9F, 0xA1, 0xF6,
-               0xE8, 0xA0, 0x81, 0xF6, 0xE4, 0x97, 0xB9, 0xF6,
-               0xE8, 0xA1, 0xA0, 0xF6, 0xE8, 0xA1, 0xA3, 0xF6,
-               0xF0, 0xA7, 0x99, 0xA7, 0xF6, 0xE8, 0xA3, 0x97,
-               0xF6, 0xE8, 0xA3, 0x9E, 0xF6, 0xE4, 0x98, 0xB5,
-               0xF6, 0xE8, 0xA3, 0xBA, 0xF6, 0xE3, 0x92, 0xBB,
-               0xF6, 0xF0, 0xA7, 0xA2, 0xAE, 0xF6, 0xF0, 0xA7,
-               0xA5, 0xA6, 0xF6, 0xE4, 0x9A, 0xBE, 0xF6, 0xE4,
-               0x9B, 0x87, 0xF6, 0xE8, 0xAA, 0xA0, 0xF6, 0xE8,
-               0xAB, 0xAD, 0xF6, 0xE8, 0xAE, 0x8A, 0xF6, 0xE8,
-               0xB1, 0x95, 0xF6, 0xF0, 0xA7, 0xB2, 0xA8, 0xF6,
-               0xE8, 0xB2, 0xAB, 0xF6, 0xE8, 0xB3, 0x81, 0xF6,
-               0xE8, 0xB4, 0x9B, 0xF6, 0xE8, 0xB5, 0xB7, 0xF6,
-               0xF0, 0xA7, 0xBC, 0xAF, 0xF6, 0xF0, 0xA0, 0xA0,
-               0x84, 0xF6, 0xE8, 0xB7, 0x8B, 0xF6, 0xE8, 0xB6,
-               0xBC, 0xF6, 0xE8, 0xB7, 0xB0, 0xF6, 0xF0, 0xA0,
-               0xA3, 0x9E, 0xF6, 0xE8, 0xBB, 0x94, 0xF6, 0xE8,
-               0xBC, 0xB8, 0xF6, 0xF0, 0xA8, 0x97, 0x92, 0xF6,
-               0xF0, 0xA8, 0x97, 0xAD, 0xF6, 0xE9, 0x82, 0x94,
-               0xF6, 0xE9, 0x83, 0xB1, 0xF6, 0xE9, 0x84, 0x91,
-               0xF6, 0xF0, 0xA8, 0x9C, 0xAE, 0xF6, 0xE9, 0x84,
-               0x9B, 0xF6, 0xE9, 0x88, 0xB8, 0xF6, 0xE9, 0x8B,
-               0x97, 0xF6, 0xE9, 0x8B, 0x98, 0xF6, 0xE9, 0x89,
-               0xBC, 0xF6, 0xE9, 0x8F, 0xB9, 0xF6, 0xE9, 0x90,
-               0x95, 0xF6, 0xF0, 0xA8, 0xAF, 0xBA, 0xF6, 0xE9,
-               0x96, 0x8B, 0xF6, 0xE4, 0xA6, 0x95, 0xF6, 0xE9,
-               0x96, 0xB7, 0xF6, 0xF0, 0xA8, 0xB5, 0xB7, 0xF6,
-               0xE4, 0xA7, 0xA6, 0xF6, 0xE9, 0x9B, 0x83, 0xF6,
-               0xE5, 0xB6, 0xB2, 0xF6, 0xE9, 0x9C, 0xA3, 0xF6,
-               0xF0, 0xA9, 0x85, 0x85, 0xF6, 0xF0, 0xA9, 0x88,
-               0x9A, 0xF6, 0xE4, 0xA9, 0xAE, 0xF6, 0xE4, 0xA9,
-               0xB6, 0xF6, 0xE9, 0x9F, 0xA0, 0xF6, 0xF0, 0xA9,
-               0x90, 0x8A, 0xF6, 0xE4, 0xAA, 0xB2, 0xF6, 0xF0,
-               0xA9, 0x92, 0x96, 0xF6, 0xE9, 0xA0, 0x8B, 0xF6,
-               0xE9, 0xA0, 0x8B, 0xF6, 0xE9, 0xA0, 0xA9, 0xF6,
-               0xF0, 0xA9, 0x96, 0xB6, 0xF6, 0xE9, 0xA3, 0xA2,
-               0xF6, 0xE4, 0xAC, 0xB3, 0xF6, 0xE9, 0xA4, 0xA9,
-               0xF6, 0xE9, 0xA6, 0xA7, 0xF6, 0xE9, 0xA7, 0x82,
-               0xF6, 0xE9, 0xA7, 0xBE, 0xF6, 0xE4, 0xAF, 0x8E,
-               0xF6, 0xF0, 0xA9, 0xAC, 0xB0, 0xF6, 0xE9, 0xAC,
-               0x92, 0xF6, 0xE9, 0xB1, 0x80, 0xF6, 0xE9, 0xB3,
-               0xBD, 0xF6, 0xE4, 0xB3, 0x8E, 0xF6, 0xE4, 0xB3,
-               0xAD, 0xF6, 0xE9, 0xB5, 0xA7, 0xF6, 0xF0, 0xAA,
-               0x83, 0x8E, 0xF6, 0xE4, 0xB3, 0xB8, 0xF6, 0xF0,
-               0xAA, 0x84, 0x85, 0xF6, 0xF0, 0xAA, 0x88, 0x8E,
-               0xF6, 0xF0, 0xAA, 0x8A, 0x91, 0xF6, 0xE9, 0xBA,
-               0xBB, 0xF6, 0xE4, 0xB5, 0x96, 0xF6, 0xE9, 0xBB,
-               0xB9, 0xF6, 0xE9, 0xBB, 0xBE, 0xF6, 0xE9, 0xBC,
-               0x85, 0xF6, 0xE9, 0xBC, 0x8F, 0xF6, 0xE9, 0xBC,
-               0x96, 0xF6, 0xE9, 0xBC, 0xBB, 0xF6, 0xF0, 0xAA,
-               0x98, 0x80, 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,    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,    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,    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,    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,    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,
-               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,    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,    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,    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,    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,    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,    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,    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,
-               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,    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,    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,    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,    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,    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,    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,    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,
-               0,    0,    0,    0,    0,    0,    0,    0,
-               0,    0,
-       },
-       {
-               0x20, 0x20, 0xCC, 0x88, 0x61, 0x20, 0xCC, 0x84,
-               0x32, 0x33, 0x20, 0xCC, 0x81, 0xCE, 0xBC, 0x20,
-               0xCC, 0xA7, 0x31, 0x6F, 0x31, 0xE2, 0x81, 0x84,
-               0x34, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x33, 0xE2,
-               0x81, 0x84, 0x34, 0xF6, 0x41, 0xCC, 0x80, 0xF6,
-               0x41, 0xCC, 0x81, 0xF6, 0x41, 0xCC, 0x82, 0xF6,
-               0x41, 0xCC, 0x83, 0xF6, 0x41, 0xCC, 0x88, 0xF6,
-               0x41, 0xCC, 0x8A, 0xF6, 0x43, 0xCC, 0xA7, 0xF6,
-               0x45, 0xCC, 0x80, 0xF6, 0x45, 0xCC, 0x81, 0xF6,
-               0x45, 0xCC, 0x82, 0xF6, 0x45, 0xCC, 0x88, 0xF6,
-               0x49, 0xCC, 0x80, 0xF6, 0x49, 0xCC, 0x81, 0xF6,
-               0x49, 0xCC, 0x82, 0xF6, 0x49, 0xCC, 0x88, 0xF6,
-               0x4E, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x80, 0xF6,
-               0x4F, 0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xF6,
-               0x4F, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x88, 0xF6,
-               0x55, 0xCC, 0x80, 0xF6, 0x55, 0xCC, 0x81, 0xF6,
-               0x55, 0xCC, 0x82, 0xF6, 0x55, 0xCC, 0x88, 0xF6,
-               0x59, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x80, 0xF6,
-               0x61, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x82, 0xF6,
-               0x61, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x88, 0xF6,
-               0x61, 0xCC, 0x8A, 0xF6, 0x63, 0xCC, 0xA7, 0xF6,
-               0x65, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x81, 0xF6,
-               0x65, 0xCC, 0x82, 0xF6, 0x65, 0xCC, 0x88, 0xF6,
-               0x69, 0xCC, 0x80, 0xF6, 0x69, 0xCC, 0x81, 0xF6,
-               0x69, 0xCC, 0x82, 0xF6, 0x69, 0xCC, 0x88, 0xF6,
-               0x6E, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x80, 0xF6,
-               0x6F, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82, 0xF6,
-               0x6F, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x88, 0xF6,
-               0x75, 0xCC, 0x80, 0xF6, 0x75, 0xCC, 0x81, 0xF6,
-               0x75, 0xCC, 0x82, 0xF6, 0x75, 0xCC, 0x88, 0xF6,
-               0x79, 0xCC, 0x81, 0xF6, 0x79, 0xCC, 0x88, 0xF6,
-               0x41, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x84, 0xF6,
-               0x41, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0x86, 0xF6,
-               0x41, 0xCC, 0xA8, 0xF6, 0x61, 0xCC, 0xA8, 0xF6,
-               0x43, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0x81, 0xF6,
-               0x43, 0xCC, 0x82, 0xF6, 0x63, 0xCC, 0x82, 0xF6,
-               0x43, 0xCC, 0x87, 0xF6, 0x63, 0xCC, 0x87, 0xF6,
-               0x43, 0xCC, 0x8C, 0xF6, 0x63, 0xCC, 0x8C, 0xF6,
-               0x44, 0xCC, 0x8C, 0xF6, 0x64, 0xCC, 0x8C, 0xF6,
-               0x45, 0xCC, 0x84, 0xF6, 0x65, 0xCC, 0x84, 0xF6,
-               0x45, 0xCC, 0x86, 0xF6, 0x65, 0xCC, 0x86, 0xF6,
-               0x45, 0xCC, 0x87, 0xF6, 0x65, 0xCC, 0x87, 0xF6,
-               0x45, 0xCC, 0xA8, 0xF6, 0x65, 0xCC, 0xA8, 0xF6,
-               0x45, 0xCC, 0x8C, 0xF6, 0x65, 0xCC, 0x8C, 0xF6,
-               0x47, 0xCC, 0x82, 0xF6, 0x67, 0xCC, 0x82, 0xF6,
-               0x47, 0xCC, 0x86, 0xF6, 0x67, 0xCC, 0x86, 0xF6,
-               0x47, 0xCC, 0x87, 0xF6, 0x67, 0xCC, 0x87, 0xF6,
-               0x47, 0xCC, 0xA7, 0xF6, 0x67, 0xCC, 0xA7, 0xF6,
-               0x48, 0xCC, 0x82, 0xF6, 0x68, 0xCC, 0x82, 0xF6,
-               0x49, 0xCC, 0x83, 0xF6, 0x69, 0xCC, 0x83, 0xF6,
-               0x49, 0xCC, 0x84, 0xF6, 0x69, 0xCC, 0x84, 0xF6,
-               0x49, 0xCC, 0x86, 0xF6, 0x69, 0xCC, 0x86, 0xF6,
-               0x49, 0xCC, 0xA8, 0xF6, 0x69, 0xCC, 0xA8, 0xF6,
-               0x49, 0xCC, 0x87, 0x49, 0x4A, 0x69, 0x6A, 0xF6,
-               0x4A, 0xCC, 0x82, 0xF6, 0x6A, 0xCC, 0x82, 0xF6,
-               0x4B, 0xCC, 0xA7, 0xF6, 0x6B, 0xCC, 0xA7, 0xF6,
-               0x4C, 0xCC, 0x81, 0xF6, 0x6C, 0xCC, 0x81, 0xF6,
-               0x4C, 0xCC, 0xA7, 0xF6, 0x6C, 0xCC, 0xA7, 0xF6,
-               0x4C, 0xCC, 0x8C, 0xF6, 0x6C, 0xCC, 0x8C, 0x4C,
-               0xC2, 0xB7, 0x6C, 0xC2, 0xB7, 0xF6, 0x4E, 0xCC,
-               0x81, 0xF6, 0x6E, 0xCC, 0x81, 0xF6, 0x4E, 0xCC,
-               0xA7, 0xF6, 0x6E, 0xCC, 0xA7, 0xF6, 0x4E, 0xCC,
-               0x8C, 0xF6, 0x6E, 0xCC, 0x8C, 0xCA, 0xBC, 0x6E,
-               0xF6, 0x4F, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, 0x84,
-               0xF6, 0x4F, 0xCC, 0x86, 0xF6, 0x6F, 0xCC, 0x86,
-               0xF6, 0x4F, 0xCC, 0x8B, 0xF6, 0x6F, 0xCC, 0x8B,
-               0xF6, 0x52, 0xCC, 0x81, 0xF6, 0x72, 0xCC, 0x81,
-               0xF6, 0x52, 0xCC, 0xA7, 0xF6, 0x72, 0xCC, 0xA7,
-               0xF6, 0x52, 0xCC, 0x8C, 0xF6, 0x72, 0xCC, 0x8C,
-               0xF6, 0x53, 0xCC, 0x81, 0xF6, 0x73, 0xCC, 0x81,
-               0xF6, 0x53, 0xCC, 0x82, 0xF6, 0x73, 0xCC, 0x82,
-               0xF6, 0x53, 0xCC, 0xA7, 0xF6, 0x73, 0xCC, 0xA7,
-               0xF6, 0x53, 0xCC, 0x8C, 0xF6, 0x73, 0xCC, 0x8C,
-               0xF6, 0x54, 0xCC, 0xA7, 0xF6, 0x74, 0xCC, 0xA7,
-               0xF6, 0x54, 0xCC, 0x8C, 0xF6, 0x74, 0xCC, 0x8C,
-               0xF6, 0x55, 0xCC, 0x83, 0xF6, 0x75, 0xCC, 0x83,
-               0xF6, 0x55, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x84,
-               0xF6, 0x55, 0xCC, 0x86, 0xF6, 0x75, 0xCC, 0x86,
-               0xF6, 0x55, 0xCC, 0x8A, 0xF6, 0x75, 0xCC, 0x8A,
-               0xF6, 0x55, 0xCC, 0x8B, 0xF6, 0x75, 0xCC, 0x8B,
-               0xF6, 0x55, 0xCC, 0xA8, 0xF6, 0x75, 0xCC, 0xA8,
-               0xF6, 0x57, 0xCC, 0x82, 0xF6, 0x77, 0xCC, 0x82,
-               0xF6, 0x59, 0xCC, 0x82, 0xF6, 0x79, 0xCC, 0x82,
-               0xF6, 0x59, 0xCC, 0x88, 0xF6, 0x5A, 0xCC, 0x81,
-               0xF6, 0x7A, 0xCC, 0x81, 0xF6, 0x5A, 0xCC, 0x87,
-               0xF6, 0x7A, 0xCC, 0x87, 0xF6, 0x5A, 0xCC, 0x8C,
-               0xF6, 0x7A, 0xCC, 0x8C, 0x73, 0xF6, 0x4F, 0xCC,
-               0x9B, 0xF6, 0x6F, 0xCC, 0x9B, 0xF6, 0x55, 0xCC,
-               0x9B, 0xF6, 0x75, 0xCC, 0x9B, 0x44, 0x5A, 0xCC,
-               0x8C, 0x44, 0x7A, 0xCC, 0x8C, 0x64, 0x7A, 0xCC,
-               0x8C, 0x4C, 0x4A, 0x4C, 0x6A, 0x6C, 0x6A, 0x4E,
-               0x4A, 0x4E, 0x6A, 0x6E, 0x6A, 0xF6, 0x41, 0xCC,
-               0x8C, 0xF6, 0x61, 0xCC, 0x8C, 0xF6, 0x49, 0xCC,
-               0x8C, 0xF6, 0x69, 0xCC, 0x8C, 0xF6, 0x4F, 0xCC,
-               0x8C, 0xF6, 0x6F, 0xCC, 0x8C, 0xF6, 0x55, 0xCC,
-               0x8C, 0xF6, 0x75, 0xCC, 0x8C, 0xF6, 0x55, 0xCC,
-               0x88, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x88, 0xCC,
-               0x84, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
-               0x75, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x55, 0xCC,
-               0x88, 0xCC, 0x8C, 0xF6, 0x75, 0xCC, 0x88, 0xCC,
-               0x8C, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xF6,
-               0x75, 0xCC, 0x88, 0xCC, 0x80, 0xF6, 0x41, 0xCC,
-               0x88, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x88, 0xCC,
-               0x84, 0xF6, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xF6,
-               0x61, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0xC3, 0x86,
-               0xCC, 0x84, 0xF6, 0xC3, 0xA6, 0xCC, 0x84, 0xF6,
-               0x47, 0xCC, 0x8C, 0xF6, 0x67, 0xCC, 0x8C, 0xF6,
-               0x4B, 0xCC, 0x8C, 0xF6, 0x6B, 0xCC, 0x8C, 0xF6,
-               0x4F, 0xCC, 0xA8, 0xF6, 0x6F, 0xCC, 0xA8, 0xF6,
-               0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
-               0xA8, 0xCC, 0x84, 0xF6, 0xC6, 0xB7, 0xCC, 0x8C,
-               0xF6, 0xCA, 0x92, 0xCC, 0x8C, 0xF6, 0x6A, 0xCC,
-               0x8C, 0x44, 0x5A, 0x44, 0x7A, 0x64, 0x7A, 0xF6,
-               0x47, 0xCC, 0x81, 0xF6, 0x67, 0xCC, 0x81, 0xF6,
-               0x4E, 0xCC, 0x80, 0xF6, 0x6E, 0xCC, 0x80, 0xF6,
-               0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xF6, 0x61, 0xCC,
-               0x8A, 0xCC, 0x81, 0xF6, 0xC3, 0x86, 0xCC, 0x81,
-               0xF6, 0xC3, 0xA6, 0xCC, 0x81, 0xF6, 0xC3, 0x98,
-               0xCC, 0x81, 0xF6, 0xC3, 0xB8, 0xCC, 0x81, 0xF6,
-               0x41, 0xCC, 0x8F, 0xF6, 0x61, 0xCC, 0x8F, 0xF6,
-               0x41, 0xCC, 0x91, 0xF6, 0x61, 0xCC, 0x91, 0xF6,
-               0x45, 0xCC, 0x8F, 0xF6, 0x65, 0xCC, 0x8F, 0xF6,
-               0x45, 0xCC, 0x91, 0xF6, 0x65, 0xCC, 0x91, 0xF6,
-               0x49, 0xCC, 0x8F, 0xF6, 0x69, 0xCC, 0x8F, 0xF6,
-               0x49, 0xCC, 0x91, 0xF6, 0x69, 0xCC, 0x91, 0xF6,
-               0x4F, 0xCC, 0x8F, 0xF6, 0x6F, 0xCC, 0x8F, 0xF6,
-               0x4F, 0xCC, 0x91, 0xF6, 0x6F, 0xCC, 0x91, 0xF6,
-               0x52, 0xCC, 0x8F, 0xF6, 0x72, 0xCC, 0x8F, 0xF6,
-               0x52, 0xCC, 0x91, 0xF6, 0x72, 0xCC, 0x91, 0xF6,
-               0x55, 0xCC, 0x8F, 0xF6, 0x75, 0xCC, 0x8F, 0xF6,
-               0x55, 0xCC, 0x91, 0xF6, 0x75, 0xCC, 0x91, 0xF6,
-               0x53, 0xCC, 0xA6, 0xF6, 0x73, 0xCC, 0xA6, 0xF6,
-               0x54, 0xCC, 0xA6, 0xF6, 0x74, 0xCC, 0xA6, 0xF6,
-               0x48, 0xCC, 0x8C, 0xF6, 0x68, 0xCC, 0x8C, 0xF6,
-               0x41, 0xCC, 0x87, 0xF6, 0x61, 0xCC, 0x87, 0xF6,
-               0x45, 0xCC, 0xA7, 0xF6, 0x65, 0xCC, 0xA7, 0xF6,
-               0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
-               0x88, 0xCC, 0x84, 0xF6, 0x4F, 0xCC, 0x83, 0xCC,
-               0x84, 0xF6, 0x6F, 0xCC, 0x83, 0xCC, 0x84, 0xF6,
-               0x4F, 0xCC, 0x87, 0xF6, 0x6F, 0xCC, 0x87, 0xF6,
-               0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0x6F, 0xCC,
-               0x87, 0xCC, 0x84, 0xF6, 0x59, 0xCC, 0x84, 0xF6,
-               0x79, 0xCC, 0x84, 0x68, 0xC9, 0xA6, 0x6A, 0x72,
-               0xC9, 0xB9, 0xC9, 0xBB, 0xCA, 0x81, 0x77, 0x79,
-               0x20, 0xCC, 0x86, 0x20, 0xCC, 0x87, 0x20, 0xCC,
-               0x8A, 0x20, 0xCC, 0xA8, 0x20, 0xCC, 0x83, 0x20,
-               0xCC, 0x8B, 0xC9, 0xA3, 0x6C, 0x73, 0x78, 0xCA,
-               0x95, 0xF6, 0xCC, 0x80, 0xF6, 0xCC, 0x81, 0xF6,
-               0xCC, 0x93, 0xF6, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
-               0xCA, 0xB9, 0x20, 0xCD, 0x85, 0xF6, 0x3B, 0x20,
-               0xCC, 0x81, 0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81,
-               0x20, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0xCE, 0x91,
-               0xCC, 0x81, 0xF6, 0xC2, 0xB7, 0xF6, 0xCE, 0x95,
-               0xCC, 0x81, 0xF6, 0xCE, 0x97, 0xCC, 0x81, 0xF6,
-               0xCE, 0x99, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC,
-               0x81, 0xF6, 0xCE, 0xA5, 0xCC, 0x81, 0xF6, 0xCE,
-               0xA9, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x88,
-               0xCC, 0x81, 0xF6, 0xCE, 0x99, 0xCC, 0x88, 0xF6,
-               0xCE, 0xA5, 0xCC, 0x88, 0xF6, 0xCE, 0xB1, 0xCC,
-               0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x81, 0xF6, 0xCE,
-               0xB7, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x81,
-               0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
-               0xCE, 0xB9, 0xCC, 0x88, 0xF6, 0xCF, 0x85, 0xCC,
-               0x88, 0xF6, 0xCE, 0xBF, 0xCC, 0x81, 0xF6, 0xCF,
-               0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC, 0x81,
-               0xCE, 0xB2, 0xCE, 0xB8, 0xCE, 0xA5, 0xF5, 0x05,
-               0xCF, 0x92, 0xCC, 0x81, 0xCE, 0xA5, 0xCC, 0x81,
-               0xF5, 0x05, 0xCF, 0x92, 0xCC, 0x88, 0xCE, 0xA5,
-               0xCC, 0x88, 0xCF, 0x86, 0xCF, 0x80, 0xCE, 0xBA,
-               0xCF, 0x81, 0xCF, 0x82, 0xCE, 0x98, 0xCE, 0xB5,
-               0xCE, 0xA3, 0xF6, 0xD0, 0x95, 0xCC, 0x80, 0xF6,
-               0xD0, 0x95, 0xCC, 0x88, 0xF6, 0xD0, 0x93, 0xCC,
-               0x81, 0xF6, 0xD0, 0x86, 0xCC, 0x88, 0xF6, 0xD0,
-               0x9A, 0xCC, 0x81, 0xF6, 0xD0, 0x98, 0xCC, 0x80,
-               0xF6, 0xD0, 0xA3, 0xCC, 0x86, 0xF6, 0xD0, 0x98,
-               0xCC, 0x86, 0xF6, 0xD0, 0xB8, 0xCC, 0x86, 0xF6,
-               0xD0, 0xB5, 0xCC, 0x80, 0xF6, 0xD0, 0xB5, 0xCC,
-               0x88, 0xF6, 0xD0, 0xB3, 0xCC, 0x81, 0xF6, 0xD1,
-               0x96, 0xCC, 0x88, 0xF6, 0xD0, 0xBA, 0xCC, 0x81,
-               0xF6, 0xD0, 0xB8, 0xCC, 0x80, 0xF6, 0xD1, 0x83,
-               0xCC, 0x86, 0xF6, 0xD1, 0xB4, 0xCC, 0x8F, 0xF6,
-               0xD1, 0xB5, 0xCC, 0x8F, 0xF6, 0xD0, 0x96, 0xCC,
-               0x86, 0xF6, 0xD0, 0xB6, 0xCC, 0x86, 0xF6, 0xD0,
-               0x90, 0xCC, 0x86, 0xF6, 0xD0, 0xB0, 0xCC, 0x86,
-               0xF6, 0xD0, 0x90, 0xCC, 0x88, 0xF6, 0xD0, 0xB0,
-               0xCC, 0x88, 0xF6, 0xD0, 0x95, 0xCC, 0x86, 0xF6,
-               0xD0, 0xB5, 0xCC, 0x86, 0xF6, 0xD3, 0x98, 0xCC,
-               0x88, 0xF6, 0xD3, 0x99, 0xCC, 0x88, 0xF6, 0xD0,
-               0x96, 0xCC, 0x88, 0xF6, 0xD0, 0xB6, 0xCC, 0x88,
-               0xF6, 0xD0, 0x97, 0xCC, 0x88, 0xF6, 0xD0, 0xB7,
-               0xCC, 0x88, 0xF6, 0xD0, 0x98, 0xCC, 0x84, 0xF6,
-               0xD0, 0xB8, 0xCC, 0x84, 0xF6, 0xD0, 0x98, 0xCC,
-               0x88, 0xF6, 0xD0, 0xB8, 0xCC, 0x88, 0xF6, 0xD0,
-               0x9E, 0xCC, 0x88, 0xF6, 0xD0, 0xBE, 0xCC, 0x88,
-               0xF6, 0xD3, 0xA8, 0xCC, 0x88, 0xF6, 0xD3, 0xA9,
-               0xCC, 0x88, 0xF6, 0xD0, 0xAD, 0xCC, 0x88, 0xF6,
-               0xD1, 0x8D, 0xCC, 0x88, 0xF6, 0xD0, 0xA3, 0xCC,
-               0x84, 0xF6, 0xD1, 0x83, 0xCC, 0x84, 0xF6, 0xD0,
-               0xA3, 0xCC, 0x88, 0xF6, 0xD1, 0x83, 0xCC, 0x88,
-               0xF6, 0xD0, 0xA3, 0xCC, 0x8B, 0xF6, 0xD1, 0x83,
-               0xCC, 0x8B, 0xF6, 0xD0, 0xA7, 0xCC, 0x88, 0xF6,
-               0xD1, 0x87, 0xCC, 0x88, 0xF6, 0xD0, 0xAB, 0xCC,
-               0x88, 0xF6, 0xD1, 0x8B, 0xCC, 0x88, 0xD5, 0xA5,
-               0xD6, 0x82, 0xF6, 0xD8, 0xA7, 0xD9, 0x93, 0xF6,
-               0xD8, 0xA7, 0xD9, 0x94, 0xF6, 0xD9, 0x88, 0xD9,
-               0x94, 0xF6, 0xD8, 0xA7, 0xD9, 0x95, 0xF6, 0xD9,
-               0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0xB4, 0xD9,
-               0x88, 0xD9, 0xB4, 0xDB, 0x87, 0xD9, 0xB4, 0xD9,
-               0x8A, 0xD9, 0xB4, 0xF6, 0xDB, 0x95, 0xD9, 0x94,
-               0xF6, 0xDB, 0x81, 0xD9, 0x94, 0xF6, 0xDB, 0x92,
-               0xD9, 0x94, 0xF6, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4,
-               0xBC, 0xF6, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC,
-               0xF6, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0xF6,
-               0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0,
-               0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4,
-               0x97, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x9C,
-               0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0xA1, 0xE0,
-               0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0xA2, 0xE0, 0xA4,
-               0xBC, 0xF6, 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC,
-               0xF6, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0xF6,
-               0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0xF6, 0xE0,
-               0xA7, 0x87, 0xE0, 0xA7, 0x97, 0xF6, 0xE0, 0xA6,
-               0xA1, 0xE0, 0xA6, 0xBC, 0xF6, 0xE0, 0xA6, 0xA2,
-               0xE0, 0xA6, 0xBC, 0xF6, 0xE0, 0xA6, 0xAF, 0xE0,
-               0xA6, 0xBC, 0xF6, 0xE0, 0xA8, 0xB2, 0xE0, 0xA8,
-               0xBC, 0xF6, 0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC,
-               0xF6, 0xE0, 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0xF6,
-               0xE0, 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0,
-               0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8,
-               0xAB, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xAD, 0x87,
-               0xE0, 0xAD, 0x96, 0xF6, 0xE0, 0xAD, 0x87, 0xE0,
-               0xAC, 0xBE, 0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAD,
-               0x97, 0xF6, 0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC,
-               0xF6, 0xE0, 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0xF6,
-               0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0xF6, 0xE0,
-               0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0xF6, 0xE0, 0xAF,
-               0x87, 0xE0, 0xAE, 0xBE, 0xF6, 0xE0, 0xAF, 0x86,
-               0xE0, 0xAF, 0x97, 0xF6, 0xE0, 0xB1, 0x86, 0xE0,
-               0xB1, 0x96, 0xF6, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3,
-               0x95, 0xF6, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95,
-               0xF6, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0xF6,
-               0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xF6, 0xE0,
-               0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, 0xB3, 0x95,
-               0xF6, 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0xF6,
-               0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0xF6, 0xE0,
-               0xB5, 0x86, 0xE0, 0xB5, 0x97, 0xF6, 0xE0, 0xB7,
-               0x99, 0xE0, 0xB7, 0x8A, 0xF6, 0xE0, 0xB7, 0x99,
-               0xE0, 0xB7, 0x8F, 0xF6, 0xE0, 0xB7, 0x99, 0xE0,
-               0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0xF6, 0xE0, 0xB7,
-               0x99, 0xE0, 0xB7, 0x9F, 0xE0, 0xB9, 0x8D, 0xE0,
-               0xB8, 0xB2, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2,
-               0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0xE0, 0xBA,
-               0xAB, 0xE0, 0xBA, 0xA1, 0xE0, 0xBC, 0x8B, 0xF6,
-               0xE0, 0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0,
-               0xBD, 0x8C, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD,
-               0x91, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x96,
-               0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x9B, 0xE0,
-               0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x80, 0xE0, 0xBE,
-               0xB5, 0xF6, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2,
-               0xF6, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xF6,
-               0xE0, 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0xE0, 0xBE,
-               0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6,
-               0xE0, 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0xE0, 0xBE,
-               0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6,
-               0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0,
-               0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE,
-               0x9C, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xA1,
-               0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xA6, 0xE0,
-               0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,
-               0xB7, 0xF6, 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5,
-               0xF6, 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0xE1,
-               0x83, 0x9C, 0xF6, 0xE1, 0xAC, 0x85, 0xE1, 0xAC,
-               0xB5, 0xF6, 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5,
-               0xF6, 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0xF6,
-               0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0xF6, 0xE1,
-               0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0xF6, 0xE1, 0xAC,
-               0x91, 0xE1, 0xAC, 0xB5, 0xF6, 0xE1, 0xAC, 0xBA,
-               0xE1, 0xAC, 0xB5, 0xF6, 0xE1, 0xAC, 0xBC, 0xE1,
-               0xAC, 0xB5, 0xF6, 0xE1, 0xAC, 0xBE, 0xE1, 0xAC,
-               0xB5, 0xF6, 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5,
-               0xF6, 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x41,
-               0xC3, 0x86, 0x42, 0x44, 0x45, 0xC6, 0x8E, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0xC8, 0xA2, 0x50, 0x52, 0x54, 0x55, 0x57, 0x61,
-               0xC9, 0x90, 0xC9, 0x91, 0xE1, 0xB4, 0x82, 0x62,
-               0x64, 0x65, 0xC9, 0x99, 0xC9, 0x9B, 0xC9, 0x9C,
-               0x67, 0x6B, 0x6D, 0xC5, 0x8B, 0x6F, 0xC9, 0x94,
-               0xE1, 0xB4, 0x96, 0xE1, 0xB4, 0x97, 0x70, 0x74,
-               0x75, 0xE1, 0xB4, 0x9D, 0xC9, 0xAF, 0x76, 0xE1,
-               0xB4, 0xA5, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4,
-               0xCF, 0x86, 0xCF, 0x87, 0x69, 0x72, 0x75, 0x76,
-               0xCE, 0xB2, 0xCE, 0xB3, 0xCF, 0x81, 0xCF, 0x86,
-               0xCF, 0x87, 0xD0, 0xBD, 0xC9, 0x92, 0x63, 0xC9,
-               0x95, 0xC3, 0xB0, 0xC9, 0x9C, 0x66, 0xC9, 0x9F,
-               0xC9, 0xA1, 0xC9, 0xA5, 0xC9, 0xA8, 0xC9, 0xA9,
-               0xC9, 0xAA, 0xE1, 0xB5, 0xBB, 0xCA, 0x9D, 0xC9,
-               0xAD, 0xE1, 0xB6, 0x85, 0xCA, 0x9F, 0xC9, 0xB1,
-               0xC9, 0xB0, 0xC9, 0xB2, 0xC9, 0xB3, 0xC9, 0xB4,
-               0xC9, 0xB5, 0xC9, 0xB8, 0xCA, 0x82, 0xCA, 0x83,
-               0xC6, 0xAB, 0xCA, 0x89, 0xCA, 0x8A, 0xE1, 0xB4,
-               0x9C, 0xCA, 0x8B, 0xCA, 0x8C, 0x7A, 0xCA, 0x90,
-               0xCA, 0x91, 0xCA, 0x92, 0xCE, 0xB8, 0xF6, 0x41,
-               0xCC, 0xA5, 0xF6, 0x61, 0xCC, 0xA5, 0xF6, 0x42,
-               0xCC, 0x87, 0xF6, 0x62, 0xCC, 0x87, 0xF6, 0x42,
-               0xCC, 0xA3, 0xF6, 0x62, 0xCC, 0xA3, 0xF6, 0x42,
-               0xCC, 0xB1, 0xF6, 0x62, 0xCC, 0xB1, 0xF6, 0x43,
-               0xCC, 0xA7, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0xA7,
-               0xCC, 0x81, 0xF6, 0x44, 0xCC, 0x87, 0xF6, 0x64,
-               0xCC, 0x87, 0xF6, 0x44, 0xCC, 0xA3, 0xF6, 0x64,
-               0xCC, 0xA3, 0xF6, 0x44, 0xCC, 0xB1, 0xF6, 0x64,
-               0xCC, 0xB1, 0xF6, 0x44, 0xCC, 0xA7, 0xF6, 0x64,
-               0xCC, 0xA7, 0xF6, 0x44, 0xCC, 0xAD, 0xF6, 0x64,
-               0xCC, 0xAD, 0xF6, 0x45, 0xCC, 0x84, 0xCC, 0x80,
-               0xF6, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xF6, 0x45,
-               0xCC, 0x84, 0xCC, 0x81, 0xF6, 0x65, 0xCC, 0x84,
-               0xCC, 0x81, 0xF6, 0x45, 0xCC, 0xAD, 0xF6, 0x65,
-               0xCC, 0xAD, 0xF6, 0x45, 0xCC, 0xB0, 0xF6, 0x65,
-               0xCC, 0xB0, 0xF6, 0x45, 0xCC, 0xA7, 0xCC, 0x86,
-               0xF6, 0x65, 0xCC, 0xA7, 0xCC, 0x86, 0xF6, 0x46,
-               0xCC, 0x87, 0xF6, 0x66, 0xCC, 0x87, 0xF6, 0x47,
-               0xCC, 0x84, 0xF6, 0x67, 0xCC, 0x84, 0xF6, 0x48,
-               0xCC, 0x87, 0xF6, 0x68, 0xCC, 0x87, 0xF6, 0x48,
-               0xCC, 0xA3, 0xF6, 0x68, 0xCC, 0xA3, 0xF6, 0x48,
-               0xCC, 0x88, 0xF6, 0x68, 0xCC, 0x88, 0xF6, 0x48,
-               0xCC, 0xA7, 0xF6, 0x68, 0xCC, 0xA7, 0xF6, 0x48,
-               0xCC, 0xAE, 0xF6, 0x68, 0xCC, 0xAE, 0xF6, 0x49,
-               0xCC, 0xB0, 0xF6, 0x69, 0xCC, 0xB0, 0xF6, 0x49,
-               0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x69, 0xCC, 0x88,
-               0xCC, 0x81, 0xF6, 0x4B, 0xCC, 0x81, 0xF6, 0x6B,
-               0xCC, 0x81, 0xF6, 0x4B, 0xCC, 0xA3, 0xF6, 0x6B,
-               0xCC, 0xA3, 0xF6, 0x4B, 0xCC, 0xB1, 0xF6, 0x6B,
-               0xCC, 0xB1, 0xF6, 0x4C, 0xCC, 0xA3, 0xF6, 0x6C,
-               0xCC, 0xA3, 0xF6, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,
-               0xF6, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xF6, 0x4C,
-               0xCC, 0xB1, 0xF6, 0x6C, 0xCC, 0xB1, 0xF6, 0x4C,
-               0xCC, 0xAD, 0xF6, 0x6C, 0xCC, 0xAD, 0xF6, 0x4D,
-               0xCC, 0x81, 0xF6, 0x6D, 0xCC, 0x81, 0xF6, 0x4D,
-               0xCC, 0x87, 0xF6, 0x6D, 0xCC, 0x87, 0xF6, 0x4D,
-               0xCC, 0xA3, 0xF6, 0x6D, 0xCC, 0xA3, 0xF6, 0x4E,
-               0xCC, 0x87, 0xF6, 0x6E, 0xCC, 0x87, 0xF6, 0x4E,
-               0xCC, 0xA3, 0xF6, 0x6E, 0xCC, 0xA3, 0xF6, 0x4E,
-               0xCC, 0xB1, 0xF6, 0x6E, 0xCC, 0xB1, 0xF6, 0x4E,
-               0xCC, 0xAD, 0xF6, 0x6E, 0xCC, 0xAD, 0xF6, 0x4F,
-               0xCC, 0x83, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x83,
-               0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x83, 0xCC, 0x88,
-               0xF6, 0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xF6, 0x4F,
-               0xCC, 0x84, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x84,
-               0xCC, 0x80, 0xF6, 0x4F, 0xCC, 0x84, 0xCC, 0x81,
-               0xF6, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xF6, 0x50,
-               0xCC, 0x81, 0xF6, 0x70, 0xCC, 0x81, 0xF6, 0x50,
-               0xCC, 0x87, 0xF6, 0x70, 0xCC, 0x87, 0xF6, 0x52,
-               0xCC, 0x87, 0xF6, 0x72, 0xCC, 0x87, 0xF6, 0x52,
-               0xCC, 0xA3, 0xF6, 0x72, 0xCC, 0xA3, 0xF6, 0x52,
-               0xCC, 0xA3, 0xCC, 0x84, 0xF6, 0x72, 0xCC, 0xA3,
-               0xCC, 0x84, 0xF6, 0x52, 0xCC, 0xB1, 0xF6, 0x72,
-               0xCC, 0xB1, 0xF6, 0x53, 0xCC, 0x87, 0xF6, 0x73,
-               0xCC, 0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xF6, 0x73,
-               0xCC, 0xA3, 0xF6, 0x53, 0xCC, 0x81, 0xCC, 0x87,
-               0xF6, 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xF6, 0x53,
-               0xCC, 0x8C, 0xCC, 0x87, 0xF6, 0x73, 0xCC, 0x8C,
-               0xCC, 0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xCC, 0x87,
-               0xF6, 0x73, 0xCC, 0xA3, 0xCC, 0x87, 0xF6, 0x54,
-               0xCC, 0x87, 0xF6, 0x74, 0xCC, 0x87, 0xF6, 0x54,
-               0xCC, 0xA3, 0xF6, 0x74, 0xCC, 0xA3, 0xF6, 0x54,
-               0xCC, 0xB1, 0xF6, 0x74, 0xCC, 0xB1, 0xF6, 0x54,
-               0xCC, 0xAD, 0xF6, 0x74, 0xCC, 0xAD, 0xF6, 0x55,
-               0xCC, 0xA4, 0xF6, 0x75, 0xCC, 0xA4, 0xF6, 0x55,
-               0xCC, 0xB0, 0xF6, 0x75, 0xCC, 0xB0, 0xF6, 0x55,
-               0xCC, 0xAD, 0xF6, 0x75, 0xCC, 0xAD, 0xF6, 0x55,
-               0xCC, 0x83, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x83,
-               0xCC, 0x81, 0xF6, 0x55, 0xCC, 0x84, 0xCC, 0x88,
-               0xF6, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xF6, 0x56,
-               0xCC, 0x83, 0xF6, 0x76, 0xCC, 0x83, 0xF6, 0x56,
-               0xCC, 0xA3, 0xF6, 0x76, 0xCC, 0xA3, 0xF6, 0x57,
-               0xCC, 0x80, 0xF6, 0x77, 0xCC, 0x80, 0xF6, 0x57,
-               0xCC, 0x81, 0xF6, 0x77, 0xCC, 0x81, 0xF6, 0x57,
-               0xCC, 0x88, 0xF6, 0x77, 0xCC, 0x88, 0xF6, 0x57,
-               0xCC, 0x87, 0xF6, 0x77, 0xCC, 0x87, 0xF6, 0x57,
-               0xCC, 0xA3, 0xF6, 0x77, 0xCC, 0xA3, 0xF6, 0x58,
-               0xCC, 0x87, 0xF6, 0x78, 0xCC, 0x87, 0xF6, 0x58,
-               0xCC, 0x88, 0xF6, 0x78, 0xCC, 0x88, 0xF6, 0x59,
-               0xCC, 0x87, 0xF6, 0x79, 0xCC, 0x87, 0xF6, 0x5A,
-               0xCC, 0x82, 0xF6, 0x7A, 0xCC, 0x82, 0xF6, 0x5A,
-               0xCC, 0xA3, 0xF6, 0x7A, 0xCC, 0xA3, 0xF6, 0x5A,
-               0xCC, 0xB1, 0xF6, 0x7A, 0xCC, 0xB1, 0xF6, 0x68,
-               0xCC, 0xB1, 0xF6, 0x74, 0xCC, 0x88, 0xF6, 0x77,
-               0xCC, 0x8A, 0xF6, 0x79, 0xCC, 0x8A, 0x61, 0xCA,
-               0xBE, 0xF5, 0x05, 0xC5, 0xBF, 0xCC, 0x87, 0x73,
-               0xCC, 0x87, 0xF6, 0x41, 0xCC, 0xA3, 0xF6, 0x61,
-               0xCC, 0xA3, 0xF6, 0x41, 0xCC, 0x89, 0xF6, 0x61,
-               0xCC, 0x89, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x81,
-               0xF6, 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x41,
-               0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x61, 0xCC, 0x82,
-               0xCC, 0x80, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x89,
-               0xF6, 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x41,
-               0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x82,
-               0xCC, 0x83, 0xF6, 0x41, 0xCC, 0xA3, 0xCC, 0x82,
-               0xF6, 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x41,
-               0xCC, 0x86, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x86,
-               0xCC, 0x81, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x80,
-               0xF6, 0x61, 0xCC, 0x86, 0xCC, 0x80, 0xF6, 0x41,
-               0xCC, 0x86, 0xCC, 0x89, 0xF6, 0x61, 0xCC, 0x86,
-               0xCC, 0x89, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x83,
-               0xF6, 0x61, 0xCC, 0x86, 0xCC, 0x83, 0xF6, 0x41,
-               0xCC, 0xA3, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0xA3,
-               0xCC, 0x86, 0xF6, 0x45, 0xCC, 0xA3, 0xF6, 0x65,
-               0xCC, 0xA3, 0xF6, 0x45, 0xCC, 0x89, 0xF6, 0x65,
-               0xCC, 0x89, 0xF6, 0x45, 0xCC, 0x83, 0xF6, 0x65,
-               0xCC, 0x83, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x81,
-               0xF6, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x45,
-               0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x82,
-               0xCC, 0x80, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x89,
-               0xF6, 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x45,
-               0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x65, 0xCC, 0x82,
-               0xCC, 0x83, 0xF6, 0x45, 0xCC, 0xA3, 0xCC, 0x82,
-               0xF6, 0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x49,
-               0xCC, 0x89, 0xF6, 0x69, 0xCC, 0x89, 0xF6, 0x49,
-               0xCC, 0xA3, 0xF6, 0x69, 0xCC, 0xA3, 0xF6, 0x4F,
-               0xCC, 0xA3, 0xF6, 0x6F, 0xCC, 0xA3, 0xF6, 0x4F,
-               0xCC, 0x89, 0xF6, 0x6F, 0xCC, 0x89, 0xF6, 0x4F,
-               0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82,
-               0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x80,
-               0xF6, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x4F,
-               0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x6F, 0xCC, 0x82,
-               0xCC, 0x89, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x83,
-               0xF6, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x4F,
-               0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x6F, 0xCC, 0xA3,
-               0xCC, 0x82, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x81,
-               0xF6, 0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xF6, 0x4F,
-               0xCC, 0x9B, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x9B,
-               0xCC, 0x80, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x89,
-               0xF6, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xF6, 0x4F,
-               0xCC, 0x9B, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x9B,
-               0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,
-               0xF6, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xF6, 0x55,
-               0xCC, 0xA3, 0xF6, 0x75, 0xCC, 0xA3, 0xF6, 0x55,
-               0xCC, 0x89, 0xF6, 0x75, 0xCC, 0x89, 0xF6, 0x55,
-               0xCC, 0x9B, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x9B,
-               0xCC, 0x81, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x80,
-               0xF6, 0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xF6, 0x55,
-               0xCC, 0x9B, 0xCC, 0x89, 0xF6, 0x75, 0xCC, 0x9B,
-               0xCC, 0x89, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x83,
-               0xF6, 0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xF6, 0x55,
-               0xCC, 0x9B, 0xCC, 0xA3, 0xF6, 0x75, 0xCC, 0x9B,
-               0xCC, 0xA3, 0xF6, 0x59, 0xCC, 0x80, 0xF6, 0x79,
-               0xCC, 0x80, 0xF6, 0x59, 0xCC, 0xA3, 0xF6, 0x79,
-               0xCC, 0xA3, 0xF6, 0x59, 0xCC, 0x89, 0xF6, 0x79,
-               0xCC, 0x89, 0xF6, 0x59, 0xCC, 0x83, 0xF6, 0x79,
-               0xCC, 0x83, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xF6,
-               0xCE, 0xB1, 0xCC, 0x94, 0xF6, 0xCE, 0xB1, 0xCC,
-               0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x94,
-               0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCC,
-               0x81, 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81,
-               0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xF6,
-               0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE,
-               0x91, 0xCC, 0x93, 0xF6, 0xCE, 0x91, 0xCC, 0x94,
-               0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xF6,
-               0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE,
-               0x91, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0x91,
-               0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCC,
-               0x93, 0xCD, 0x82, 0xF6, 0xCE, 0x91, 0xCC, 0x94,
-               0xCD, 0x82, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xF6,
-               0xCE, 0xB5, 0xCC, 0x94, 0xF6, 0xCE, 0xB5, 0xCC,
-               0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x94,
-               0xCC, 0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xCC,
-               0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81,
-               0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xF6, 0xCE, 0x95,
-               0xCC, 0x94, 0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xCC,
-               0x80, 0xF6, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80,
-               0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xF6,
-               0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE,
-               0xB7, 0xCC, 0x93, 0xF6, 0xCE, 0xB7, 0xCC, 0x94,
-               0xF6, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xF6,
-               0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE,
-               0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB7,
-               0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC,
-               0x93, 0xCD, 0x82, 0xF6, 0xCE, 0xB7, 0xCC, 0x94,
-               0xCD, 0x82, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xF6,
-               0xCE, 0x97, 0xCC, 0x94, 0xF6, 0xCE, 0x97, 0xCC,
-               0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x94,
-               0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC,
-               0x81, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81,
-               0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xF6,
-               0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE,
-               0xB9, 0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0xCC, 0x94,
-               0xF6, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xF6,
-               0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE,
-               0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB9,
-               0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC,
-               0x93, 0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x94,
-               0xCD, 0x82, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xF6,
-               0xCE, 0x99, 0xCC, 0x94, 0xF6, 0xCE, 0x99, 0xCC,
-               0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x94,
-               0xCC, 0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xCC,
-               0x81, 0xF6, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81,
-               0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xF6,
-               0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE,
-               0xBF, 0xCC, 0x93, 0xF6, 0xCE, 0xBF, 0xCC, 0x94,
-               0xF6, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xF6,
-               0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE,
-               0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xBF,
-               0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC,
-               0x93, 0xF6, 0xCE, 0x9F, 0xCC, 0x94, 0xF6, 0xCE,
-               0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x9F,
-               0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC,
-               0x93, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, 0x94,
-               0xCC, 0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xF6,
-               0xCF, 0x85, 0xCC, 0x94, 0xF6, 0xCF, 0x85, 0xCC,
-               0x93, 0xCC, 0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x94,
-               0xCC, 0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xCC,
-               0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81,
-               0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xF6,
-               0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE,
-               0xA5, 0xCC, 0x94, 0xF6, 0xCE, 0xA5, 0xCC, 0x94,
-               0xCC, 0x80, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCC,
-               0x81, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82,
-               0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xF6, 0xCF, 0x89,
-               0xCC, 0x94, 0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCC,
-               0x80, 0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80,
-               0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xF6,
-               0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCF,
-               0x89, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCF, 0x89,
-               0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xA9, 0xCC,
-               0x93, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xF6, 0xCE,
-               0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xA9,
-               0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC,
-               0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x94,
-               0xCC, 0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD,
-               0x82, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82,
-               0xF6, 0xCE, 0xB1, 0xCC, 0x80, 0xF6, 0xCE, 0xB1,
-               0xCC, 0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x80, 0xF6,
-               0xCE, 0xB5, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC,
-               0x80, 0xF6, 0xCE, 0xB7, 0xCC, 0x81, 0xF6, 0xCE,
-               0xB9, 0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC, 0x81,
-               0xF6, 0xCE, 0xBF, 0xCC, 0x80, 0xF6, 0xCE, 0xBF,
-               0xCC, 0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x80, 0xF6,
-               0xCF, 0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC,
-               0x80, 0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xF6, 0xCE,
-               0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB1,
-               0xCC, 0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC,
-               0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB1,
-               0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE,
-               0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
-               0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
-               0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
-               0x85, 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82,
-               0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCD,
-               0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85,
-               0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
-               0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80,
-               0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC,
-               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94,
-               0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC,
-               0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x91,
-               0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE,
-               0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB7,
-               0xCC, 0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC,
-               0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7,
-               0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE,
-               0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
-               0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
-               0xF6, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
-               0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82,
-               0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCD,
-               0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85,
-               0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
-               0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80,
-               0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC,
-               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94,
-               0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC,
-               0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x97,
-               0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCF,
-               0x89, 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCF, 0x89,
-               0xCC, 0x94, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC,
-               0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89,
-               0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF,
-               0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6,
-               0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
-               0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
-               0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82,
-               0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD,
-               0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85,
-               0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
-               0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80,
-               0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,
-               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94,
-               0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC,
-               0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xA9,
-               0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE,
-               0xB1, 0xCC, 0x86, 0xF6, 0xCE, 0xB1, 0xCC, 0x84,
-               0xF6, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xF6,
-               0xCE, 0xB1, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC,
-               0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCD, 0x82,
-               0xF6, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xF6,
-               0xCE, 0x91, 0xCC, 0x86, 0xF6, 0xCE, 0x91, 0xCC,
-               0x84, 0xF6, 0xCE, 0x91, 0xCC, 0x80, 0xF6, 0xCE,
-               0x91, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCD, 0x85,
-               0x20, 0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0x20, 0xCC,
-               0x93, 0x20, 0xCD, 0x82, 0xF5, 0x05, 0xC2, 0xA8,
-               0xCD, 0x82, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xF6,
-               0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE,
-               0xB7, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x81,
-               0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCD, 0x82, 0xF6,
-               0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE,
-               0x95, 0xCC, 0x80, 0xF6, 0xCE, 0x95, 0xCC, 0x81,
-               0xF6, 0xCE, 0x97, 0xCC, 0x80, 0xF6, 0xCE, 0x97,
-               0xCC, 0x81, 0xF6, 0xCE, 0x97, 0xCD, 0x85, 0xF5,
-               0x06, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0x20, 0xCC,
-               0x93, 0xCC, 0x80, 0xF5, 0x06, 0xE1, 0xBE, 0xBF,
-               0xCC, 0x81, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xF5,
-               0x06, 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0x20, 0xCC,
-               0x93, 0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x86,
-               0xF6, 0xCE, 0xB9, 0xCC, 0x84, 0xF6, 0xCE, 0xB9,
-               0xCC, 0x88, 0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC,
-               0x88, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCD, 0x82,
-               0xF6, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xF6,
-               0xCE, 0x99, 0xCC, 0x86, 0xF6, 0xCE, 0x99, 0xCC,
-               0x84, 0xF6, 0xCE, 0x99, 0xCC, 0x80, 0xF6, 0xCE,
-               0x99, 0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE,
-               0xCC, 0x80, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xF5,
-               0x06, 0xE1, 0xBF, 0xBE, 0xCC, 0x81, 0x20, 0xCC,
-               0x94, 0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE,
-               0xCD, 0x82, 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xF6,
-               0xCF, 0x85, 0xCC, 0x86, 0xF6, 0xCF, 0x85, 0xCC,
-               0x84, 0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80,
-               0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6,
-               0xCF, 0x81, 0xCC, 0x93, 0xF6, 0xCF, 0x81, 0xCC,
-               0x94, 0xF6, 0xCF, 0x85, 0xCD, 0x82, 0xF6, 0xCF,
-               0x85, 0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE, 0xA5,
-               0xCC, 0x86, 0xF6, 0xCE, 0xA5, 0xCC, 0x84, 0xF6,
-               0xCE, 0xA5, 0xCC, 0x80, 0xF6, 0xCE, 0xA5, 0xCC,
-               0x81, 0xF6, 0xCE, 0xA1, 0xCC, 0x94, 0xF5, 0x05,
-               0xC2, 0xA8, 0xCC, 0x80, 0x20, 0xCC, 0x88, 0xCC,
-               0x80, 0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81, 0x20,
-               0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x60, 0xF6, 0xCF,
-               0x89, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89,
-               0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xCD,
-               0x85, 0xF6, 0xCF, 0x89, 0xCD, 0x82, 0xF6, 0xCF,
-               0x89, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x9F,
-               0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC, 0x81, 0xF6,
-               0xCE, 0xA9, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC,
-               0x81, 0xF6, 0xCE, 0xA9, 0xCD, 0x85, 0xF5, 0x03,
-               0xC2, 0xB4, 0x20, 0xCC, 0x81, 0x20, 0xCC, 0x94,
-               0xF5, 0x04, 0xE2, 0x80, 0x82, 0x20, 0xF5, 0x04,
-               0xE2, 0x80, 0x83, 0x20, 0x20, 0x20, 0x20, 0x20,
-               0x20, 0x20, 0x20, 0x20, 0x20, 0xE2, 0x80, 0x90,
-               0x20, 0xCC, 0xB3, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
-               0x2E, 0x20, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
-               0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80,
-               0xB2, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,
-               0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5,
-               0x21, 0x21, 0x20, 0xCC, 0x85, 0x3F, 0x3F, 0x3F,
-               0x21, 0x21, 0x3F, 0xE2, 0x80, 0xB2, 0xE2, 0x80,
-               0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x20,
-               0x30, 0x69, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
-               0x2B, 0xE2, 0x88, 0x92, 0x3D, 0x28, 0x29, 0x6E,
-               0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
-               0x38, 0x39, 0x2B, 0xE2, 0x88, 0x92, 0x3D, 0x28,
-               0x29, 0x61, 0x65, 0x6F, 0x78, 0xC9, 0x99, 0x52,
-               0x73, 0x61, 0x2F, 0x63, 0x61, 0x2F, 0x73, 0x43,
-               0xC2, 0xB0, 0x43, 0x63, 0x2F, 0x6F, 0x63, 0x2F,
-               0x75, 0xC6, 0x90, 0xC2, 0xB0, 0x46, 0x67, 0x48,
-               0x48, 0x48, 0x68, 0xC4, 0xA7, 0x49, 0x49, 0x4C,
-               0x6C, 0x4E, 0x4E, 0x6F, 0x50, 0x51, 0x52, 0x52,
-               0x52, 0x53, 0x4D, 0x54, 0x45, 0x4C, 0x54, 0x4D,
-               0x5A, 0xF6, 0xCE, 0xA9, 0x5A, 0xF6, 0x4B, 0xF6,
-               0x41, 0xCC, 0x8A, 0x42, 0x43, 0x65, 0x45, 0x46,
-               0x4D, 0x6F, 0xD7, 0x90, 0xD7, 0x91, 0xD7, 0x92,
-               0xD7, 0x93, 0x69, 0x46, 0x41, 0x58, 0xCF, 0x80,
-               0xCE, 0xB3, 0xCE, 0x93, 0xCE, 0xA0, 0xE2, 0x88,
-               0x91, 0x44, 0x64, 0x65, 0x69, 0x6A, 0x31, 0xE2,
-               0x81, 0x84, 0x33, 0x32, 0xE2, 0x81, 0x84, 0x33,
-               0x31, 0xE2, 0x81, 0x84, 0x35, 0x32, 0xE2, 0x81,
-               0x84, 0x35, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x34,
-               0xE2, 0x81, 0x84, 0x35, 0x31, 0xE2, 0x81, 0x84,
-               0x36, 0x35, 0xE2, 0x81, 0x84, 0x36, 0x31, 0xE2,
-               0x81, 0x84, 0x38, 0x33, 0xE2, 0x81, 0x84, 0x38,
-               0x35, 0xE2, 0x81, 0x84, 0x38, 0x37, 0xE2, 0x81,
-               0x84, 0x38, 0x31, 0xE2, 0x81, 0x84, 0x49, 0x49,
-               0x49, 0x49, 0x49, 0x49, 0x49, 0x56, 0x56, 0x56,
-               0x49, 0x56, 0x49, 0x49, 0x56, 0x49, 0x49, 0x49,
-               0x49, 0x58, 0x58, 0x58, 0x49, 0x58, 0x49, 0x49,
-               0x4C, 0x43, 0x44, 0x4D, 0x69, 0x69, 0x69, 0x69,
-               0x69, 0x69, 0x69, 0x76, 0x76, 0x76, 0x69, 0x76,
-               0x69, 0x69, 0x76, 0x69, 0x69, 0x69, 0x69, 0x78,
-               0x78, 0x78, 0x69, 0x78, 0x69, 0x69, 0x6C, 0x63,
-               0x64, 0x6D, 0xF6, 0xE2, 0x86, 0x90, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x86, 0x94, 0xCC, 0xB8, 0xF6, 0xE2, 0x87, 0x90,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x87, 0x94, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x87, 0x92, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x88, 0x83, 0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0x88,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0x8B, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x88, 0xA5, 0xCC, 0xB8, 0xE2, 0x88, 0xAB, 0xE2,
-               0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
-               0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAE, 0xE2, 0x88,
-               0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2,
-               0x88, 0xAE, 0xF6, 0xE2, 0x88, 0xBC, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x89, 0x83, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x89, 0x85, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x88,
-               0xCC, 0xB8, 0xF6, 0x3D, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x89, 0xA1, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x8D,
-               0xCC, 0xB8, 0xF6, 0x3C, 0xCC, 0xB8, 0xF6, 0x3E,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xA4, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x89, 0xB2, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB3,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB6, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x89, 0xB7, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x89, 0xBA, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBB,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x82, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x8A, 0x86, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x87,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x8A, 0xA9, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xAB,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBC, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x8A, 0x91, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x92,
-               0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB2, 0xCC, 0xB8,
-               0xF6, 0xE2, 0x8A, 0xB3, 0xCC, 0xB8, 0xF6, 0xE2,
-               0x8A, 0xB4, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB5,
-               0xCC, 0xB8, 0xF6, 0xE3, 0x80, 0x88, 0xF6, 0xE3,
-               0x80, 0x89, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
-               0x37, 0x38, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31,
-               0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, 0x31,
-               0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32,
-               0x30, 0x28, 0x31, 0x29, 0x28, 0x32, 0x29, 0x28,
-               0x33, 0x29, 0x28, 0x34, 0x29, 0x28, 0x35, 0x29,
-               0x28, 0x36, 0x29, 0x28, 0x37, 0x29, 0x28, 0x38,
-               0x29, 0x28, 0x39, 0x29, 0x28, 0x31, 0x30, 0x29,
-               0x28, 0x31, 0x31, 0x29, 0x28, 0x31, 0x32, 0x29,
-               0x28, 0x31, 0x33, 0x29, 0x28, 0x31, 0x34, 0x29,
-               0x28, 0x31, 0x35, 0x29, 0x28, 0x31, 0x36, 0x29,
-               0x28, 0x31, 0x37, 0x29, 0x28, 0x31, 0x38, 0x29,
-               0x28, 0x31, 0x39, 0x29, 0x28, 0x32, 0x30, 0x29,
-               0x31, 0x2E, 0x32, 0x2E, 0x33, 0x2E, 0x34, 0x2E,
-               0x35, 0x2E, 0x36, 0x2E, 0x37, 0x2E, 0x38, 0x2E,
-               0x39, 0x2E, 0x31, 0x30, 0x2E, 0x31, 0x31, 0x2E,
-               0x31, 0x32, 0x2E, 0x31, 0x33, 0x2E, 0x31, 0x34,
-               0x2E, 0x31, 0x35, 0x2E, 0x31, 0x36, 0x2E, 0x31,
-               0x37, 0x2E, 0x31, 0x38, 0x2E, 0x31, 0x39, 0x2E,
-               0x32, 0x30, 0x2E, 0x28, 0x61, 0x29, 0x28, 0x62,
-               0x29, 0x28, 0x63, 0x29, 0x28, 0x64, 0x29, 0x28,
-               0x65, 0x29, 0x28, 0x66, 0x29, 0x28, 0x67, 0x29,
-               0x28, 0x68, 0x29, 0x28, 0x69, 0x29, 0x28, 0x6A,
-               0x29, 0x28, 0x6B, 0x29, 0x28, 0x6C, 0x29, 0x28,
-               0x6D, 0x29, 0x28, 0x6E, 0x29, 0x28, 0x6F, 0x29,
-               0x28, 0x70, 0x29, 0x28, 0x71, 0x29, 0x28, 0x72,
-               0x29, 0x28, 0x73, 0x29, 0x28, 0x74, 0x29, 0x28,
-               0x75, 0x29, 0x28, 0x76, 0x29, 0x28, 0x77, 0x29,
-               0x28, 0x78, 0x29, 0x28, 0x79, 0x29, 0x28, 0x7A,
-               0x29, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x30, 0xE2, 0x88,
-               0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2,
-               0x88, 0xAB, 0x3A, 0x3A, 0x3D, 0x3D, 0x3D, 0x3D,
-               0x3D, 0x3D, 0xF6, 0xE2, 0xAB, 0x9D, 0xCC, 0xB8,
-               0xE2, 0xB5, 0xA1, 0xE6, 0xAF, 0x8D, 0xE9, 0xBE,
-               0x9F, 0xE4, 0xB8, 0x80, 0xE4, 0xB8, 0xA8, 0xE4,
-               0xB8, 0xB6, 0xE4, 0xB8, 0xBF, 0xE4, 0xB9, 0x99,
-               0xE4, 0xBA, 0x85, 0xE4, 0xBA, 0x8C, 0xE4, 0xBA,
-               0xA0, 0xE4, 0xBA, 0xBA, 0xE5, 0x84, 0xBF, 0xE5,
-               0x85, 0xA5, 0xE5, 0x85, 0xAB, 0xE5, 0x86, 0x82,
-               0xE5, 0x86, 0x96, 0xE5, 0x86, 0xAB, 0xE5, 0x87,
-               0xA0, 0xE5, 0x87, 0xB5, 0xE5, 0x88, 0x80, 0xE5,
-               0x8A, 0x9B, 0xE5, 0x8B, 0xB9, 0xE5, 0x8C, 0x95,
-               0xE5, 0x8C, 0x9A, 0xE5, 0x8C, 0xB8, 0xE5, 0x8D,
-               0x81, 0xE5, 0x8D, 0x9C, 0xE5, 0x8D, 0xA9, 0xE5,
-               0x8E, 0x82, 0xE5, 0x8E, 0xB6, 0xE5, 0x8F, 0x88,
-               0xE5, 0x8F, 0xA3, 0xE5, 0x9B, 0x97, 0xE5, 0x9C,
-               0x9F, 0xE5, 0xA3, 0xAB, 0xE5, 0xA4, 0x82, 0xE5,
-               0xA4, 0x8A, 0xE5, 0xA4, 0x95, 0xE5, 0xA4, 0xA7,
-               0xE5, 0xA5, 0xB3, 0xE5, 0xAD, 0x90, 0xE5, 0xAE,
-               0x80, 0xE5, 0xAF, 0xB8, 0xE5, 0xB0, 0x8F, 0xE5,
-               0xB0, 0xA2, 0xE5, 0xB0, 0xB8, 0xE5, 0xB1, 0xAE,
-               0xE5, 0xB1, 0xB1, 0xE5, 0xB7, 0x9B, 0xE5, 0xB7,
-               0xA5, 0xE5, 0xB7, 0xB1, 0xE5, 0xB7, 0xBE, 0xE5,
-               0xB9, 0xB2, 0xE5, 0xB9, 0xBA, 0xE5, 0xB9, 0xBF,
-               0xE5, 0xBB, 0xB4, 0xE5, 0xBB, 0xBE, 0xE5, 0xBC,
-               0x8B, 0xE5, 0xBC, 0x93, 0xE5, 0xBD, 0x90, 0xE5,
-               0xBD, 0xA1, 0xE5, 0xBD, 0xB3, 0xE5, 0xBF, 0x83,
-               0xE6, 0x88, 0x88, 0xE6, 0x88, 0xB6, 0xE6, 0x89,
-               0x8B, 0xE6, 0x94, 0xAF, 0xE6, 0x94, 0xB4, 0xE6,
-               0x96, 0x87, 0xE6, 0x96, 0x97, 0xE6, 0x96, 0xA4,
-               0xE6, 0x96, 0xB9, 0xE6, 0x97, 0xA0, 0xE6, 0x97,
-               0xA5, 0xE6, 0x9B, 0xB0, 0xE6, 0x9C, 0x88, 0xE6,
-               0x9C, 0xA8, 0xE6, 0xAC, 0xA0, 0xE6, 0xAD, 0xA2,
-               0xE6, 0xAD, 0xB9, 0xE6, 0xAE, 0xB3, 0xE6, 0xAF,
-               0x8B, 0xE6, 0xAF, 0x94, 0xE6, 0xAF, 0x9B, 0xE6,
-               0xB0, 0x8F, 0xE6, 0xB0, 0x94, 0xE6, 0xB0, 0xB4,
-               0xE7, 0x81, 0xAB, 0xE7, 0x88, 0xAA, 0xE7, 0x88,
-               0xB6, 0xE7, 0x88, 0xBB, 0xE7, 0x88, 0xBF, 0xE7,
-               0x89, 0x87, 0xE7, 0x89, 0x99, 0xE7, 0x89, 0x9B,
-               0xE7, 0x8A, 0xAC, 0xE7, 0x8E, 0x84, 0xE7, 0x8E,
-               0x89, 0xE7, 0x93, 0x9C, 0xE7, 0x93, 0xA6, 0xE7,
-               0x94, 0x98, 0xE7, 0x94, 0x9F, 0xE7, 0x94, 0xA8,
-               0xE7, 0x94, 0xB0, 0xE7, 0x96, 0x8B, 0xE7, 0x96,
-               0x92, 0xE7, 0x99, 0xB6, 0xE7, 0x99, 0xBD, 0xE7,
-               0x9A, 0xAE, 0xE7, 0x9A, 0xBF, 0xE7, 0x9B, 0xAE,
-               0xE7, 0x9F, 0x9B, 0xE7, 0x9F, 0xA2, 0xE7, 0x9F,
-               0xB3, 0xE7, 0xA4, 0xBA, 0xE7, 0xA6, 0xB8, 0xE7,
-               0xA6, 0xBE, 0xE7, 0xA9, 0xB4, 0xE7, 0xAB, 0x8B,
-               0xE7, 0xAB, 0xB9, 0xE7, 0xB1, 0xB3, 0xE7, 0xB3,
-               0xB8, 0xE7, 0xBC, 0xB6, 0xE7, 0xBD, 0x91, 0xE7,
-               0xBE, 0x8A, 0xE7, 0xBE, 0xBD, 0xE8, 0x80, 0x81,
-               0xE8, 0x80, 0x8C, 0xE8, 0x80, 0x92, 0xE8, 0x80,
-               0xB3, 0xE8, 0x81, 0xBF, 0xE8, 0x82, 0x89, 0xE8,
-               0x87, 0xA3, 0xE8, 0x87, 0xAA, 0xE8, 0x87, 0xB3,
-               0xE8, 0x87, 0xBC, 0xE8, 0x88, 0x8C, 0xE8, 0x88,
-               0x9B, 0xE8, 0x88, 0x9F, 0xE8, 0x89, 0xAE, 0xE8,
-               0x89, 0xB2, 0xE8, 0x89, 0xB8, 0xE8, 0x99, 0x8D,
-               0xE8, 0x99, 0xAB, 0xE8, 0xA1, 0x80, 0xE8, 0xA1,
-               0x8C, 0xE8, 0xA1, 0xA3, 0xE8, 0xA5, 0xBE, 0xE8,
-               0xA6, 0x8B, 0xE8, 0xA7, 0x92, 0xE8, 0xA8, 0x80,
-               0xE8, 0xB0, 0xB7, 0xE8, 0xB1, 0x86, 0xE8, 0xB1,
-               0x95, 0xE8, 0xB1, 0xB8, 0xE8, 0xB2, 0x9D, 0xE8,
-               0xB5, 0xA4, 0xE8, 0xB5, 0xB0, 0xE8, 0xB6, 0xB3,
-               0xE8, 0xBA, 0xAB, 0xE8, 0xBB, 0x8A, 0xE8, 0xBE,
-               0x9B, 0xE8, 0xBE, 0xB0, 0xE8, 0xBE, 0xB5, 0xE9,
-               0x82, 0x91, 0xE9, 0x85, 0x89, 0xE9, 0x87, 0x86,
-               0xE9, 0x87, 0x8C, 0xE9, 0x87, 0x91, 0xE9, 0x95,
-               0xB7, 0xE9, 0x96, 0x80, 0xE9, 0x98, 0x9C, 0xE9,
-               0x9A, 0xB6, 0xE9, 0x9A, 0xB9, 0xE9, 0x9B, 0xA8,
-               0xE9, 0x9D, 0x91, 0xE9, 0x9D, 0x9E, 0xE9, 0x9D,
-               0xA2, 0xE9, 0x9D, 0xA9, 0xE9, 0x9F, 0x8B, 0xE9,
-               0x9F, 0xAD, 0xE9, 0x9F, 0xB3, 0xE9, 0xA0, 0x81,
-               0xE9, 0xA2, 0xA8, 0xE9, 0xA3, 0x9B, 0xE9, 0xA3,
-               0x9F, 0xE9, 0xA6, 0x96, 0xE9, 0xA6, 0x99, 0xE9,
-               0xA6, 0xAC, 0xE9, 0xAA, 0xA8, 0xE9, 0xAB, 0x98,
-               0xE9, 0xAB, 0x9F, 0xE9, 0xAC, 0xA5, 0xE9, 0xAC,
-               0xAF, 0xE9, 0xAC, 0xB2, 0xE9, 0xAC, 0xBC, 0xE9,
-               0xAD, 0x9A, 0xE9, 0xB3, 0xA5, 0xE9, 0xB9, 0xB5,
-               0xE9, 0xB9, 0xBF, 0xE9, 0xBA, 0xA5, 0xE9, 0xBA,
-               0xBB, 0xE9, 0xBB, 0x83, 0xE9, 0xBB, 0x8D, 0xE9,
-               0xBB, 0x91, 0xE9, 0xBB, 0xB9, 0xE9, 0xBB, 0xBD,
-               0xE9, 0xBC, 0x8E, 0xE9, 0xBC, 0x93, 0xE9, 0xBC,
-               0xA0, 0xE9, 0xBC, 0xBB, 0xE9, 0xBD, 0x8A, 0xE9,
-               0xBD, 0x92, 0xE9, 0xBE, 0x8D, 0xE9, 0xBE, 0x9C,
-               0xE9, 0xBE, 0xA0, 0x20, 0xE3, 0x80, 0x92, 0xE5,
-               0x8D, 0x81, 0xE5, 0x8D, 0x84, 0xE5, 0x8D, 0x85,
-               0xF6, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x81, 0x8F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81,
-               0x91, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x93,
-               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x95, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x81, 0x97, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x81, 0x9F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81,
-               0xA1, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA4,
-               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA6, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA8, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0xF6,
-               0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x81, 0xB2, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x81,
-               0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xB5,
-               0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x81, 0xB8, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x81, 0xB8, 0xE3, 0x82,
-               0x9A, 0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0xF6,
-               0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x20, 0xE3,
-               0x82, 0x99, 0x20, 0xE3, 0x82, 0x9A, 0xF6, 0xE3,
-               0x82, 0x9D, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0x88,
-               0xE3, 0x82, 0x8A, 0xF6, 0xE3, 0x82, 0xAB, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x82, 0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82,
-               0xB7, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xB9,
-               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBB, 0xE3,
-               0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBD, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x83, 0x86, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83,
-               0x88, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x8F,
-               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x8F, 0xE3,
-               0x82, 0x9A, 0xF6, 0xE3, 0x83, 0x92, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
-               0xF6, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0xF6, 0xE3,
-               0x83, 0x98, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83,
-               0x98, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x83, 0x9B,
-               0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x9B, 0xE3,
-               0x82, 0x9A, 0xF6, 0xE3, 0x82, 0xA6, 0xE3, 0x82,
-               0x99, 0xF6, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99,
-               0xF6, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0xF6,
-               0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0xF6, 0xE3,
-               0x83, 0xB2, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83,
-               0xBD, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB3, 0xE3,
-               0x83, 0x88, 0xE1, 0x84, 0x80, 0xE1, 0x84, 0x81,
-               0xE1, 0x86, 0xAA, 0xE1, 0x84, 0x82, 0xE1, 0x86,
-               0xAC, 0xE1, 0x86, 0xAD, 0xE1, 0x84, 0x83, 0xE1,
-               0x84, 0x84, 0xE1, 0x84, 0x85, 0xE1, 0x86, 0xB0,
-               0xE1, 0x86, 0xB1, 0xE1, 0x86, 0xB2, 0xE1, 0x86,
-               0xB3, 0xE1, 0x86, 0xB4, 0xE1, 0x86, 0xB5, 0xE1,
-               0x84, 0x9A, 0xE1, 0x84, 0x86, 0xE1, 0x84, 0x87,
-               0xE1, 0x84, 0x88, 0xE1, 0x84, 0xA1, 0xE1, 0x84,
-               0x89, 0xE1, 0x84, 0x8A, 0xE1, 0x84, 0x8B, 0xE1,
-               0x84, 0x8C, 0xE1, 0x84, 0x8D, 0xE1, 0x84, 0x8E,
-               0xE1, 0x84, 0x8F, 0xE1, 0x84, 0x90, 0xE1, 0x84,
-               0x91, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE1,
-               0x85, 0xA2, 0xE1, 0x85, 0xA3, 0xE1, 0x85, 0xA4,
-               0xE1, 0x85, 0xA5, 0xE1, 0x85, 0xA6, 0xE1, 0x85,
-               0xA7, 0xE1, 0x85, 0xA8, 0xE1, 0x85, 0xA9, 0xE1,
-               0x85, 0xAA, 0xE1, 0x85, 0xAB, 0xE1, 0x85, 0xAC,
-               0xE1, 0x85, 0xAD, 0xE1, 0x85, 0xAE, 0xE1, 0x85,
-               0xAF, 0xE1, 0x85, 0xB0, 0xE1, 0x85, 0xB1, 0xE1,
-               0x85, 0xB2, 0xE1, 0x85, 0xB3, 0xE1, 0x85, 0xB4,
-               0xE1, 0x85, 0xB5, 0xE1, 0x85, 0xA0, 0xE1, 0x84,
-               0x94, 0xE1, 0x84, 0x95, 0xE1, 0x87, 0x87, 0xE1,
-               0x87, 0x88, 0xE1, 0x87, 0x8C, 0xE1, 0x87, 0x8E,
-               0xE1, 0x87, 0x93, 0xE1, 0x87, 0x97, 0xE1, 0x87,
-               0x99, 0xE1, 0x84, 0x9C, 0xE1, 0x87, 0x9D, 0xE1,
-               0x87, 0x9F, 0xE1, 0x84, 0x9D, 0xE1, 0x84, 0x9E,
-               0xE1, 0x84, 0xA0, 0xE1, 0x84, 0xA2, 0xE1, 0x84,
-               0xA3, 0xE1, 0x84, 0xA7, 0xE1, 0x84, 0xA9, 0xE1,
-               0x84, 0xAB, 0xE1, 0x84, 0xAC, 0xE1, 0x84, 0xAD,
-               0xE1, 0x84, 0xAE, 0xE1, 0x84, 0xAF, 0xE1, 0x84,
-               0xB2, 0xE1, 0x84, 0xB6, 0xE1, 0x85, 0x80, 0xE1,
-               0x85, 0x87, 0xE1, 0x85, 0x8C, 0xE1, 0x87, 0xB1,
-               0xE1, 0x87, 0xB2, 0xE1, 0x85, 0x97, 0xE1, 0x85,
-               0x98, 0xE1, 0x85, 0x99, 0xE1, 0x86, 0x84, 0xE1,
-               0x86, 0x85, 0xE1, 0x86, 0x88, 0xE1, 0x86, 0x91,
-               0xE1, 0x86, 0x92, 0xE1, 0x86, 0x94, 0xE1, 0x86,
-               0x9E, 0xE1, 0x86, 0xA1, 0xE4, 0xB8, 0x80, 0xE4,
-               0xBA, 0x8C, 0xE4, 0xB8, 0x89, 0xE5, 0x9B, 0x9B,
-               0xE4, 0xB8, 0x8A, 0xE4, 0xB8, 0xAD, 0xE4, 0xB8,
-               0x8B, 0xE7, 0x94, 0xB2, 0xE4, 0xB9, 0x99, 0xE4,
-               0xB8, 0x99, 0xE4, 0xB8, 0x81, 0xE5, 0xA4, 0xA9,
-               0xE5, 0x9C, 0xB0, 0xE4, 0xBA, 0xBA, 0x28, 0xE1,
-               0x84, 0x80, 0x29, 0x28, 0xE1, 0x84, 0x82, 0x29,
-               0x28, 0xE1, 0x84, 0x83, 0x29, 0x28, 0xE1, 0x84,
-               0x85, 0x29, 0x28, 0xE1, 0x84, 0x86, 0x29, 0x28,
-               0xE1, 0x84, 0x87, 0x29, 0x28, 0xE1, 0x84, 0x89,
-               0x29, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x28, 0xE1,
-               0x84, 0x8C, 0x29, 0x28, 0xE1, 0x84, 0x8E, 0x29,
-               0x28, 0xE1, 0x84, 0x8F, 0x29, 0x28, 0xE1, 0x84,
-               0x90, 0x29, 0x28, 0xE1, 0x84, 0x91, 0x29, 0x28,
-               0xE1, 0x84, 0x92, 0x29, 0x28, 0xE1, 0x84, 0x80,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x82,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x83,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x85,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x86,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x87,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x89,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8B,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8C,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8E,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8F,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x90,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x91,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x92,
-               0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8C,
-               0xE1, 0x85, 0xAE, 0x29, 0x28, 0xE1, 0x84, 0x8B,
-               0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85,
-               0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x28, 0xE1, 0x84,
-               0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1,
-               0x85, 0xAE, 0x29, 0x28, 0xE4, 0xB8, 0x80, 0x29,
-               0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x28, 0xE4, 0xB8,
-               0x89, 0x29, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x28,
-               0xE4, 0xBA, 0x94, 0x29, 0x28, 0xE5, 0x85, 0xAD,
-               0x29, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x28, 0xE5,
-               0x85, 0xAB, 0x29, 0x28, 0xE4, 0xB9, 0x9D, 0x29,
-               0x28, 0xE5, 0x8D, 0x81, 0x29, 0x28, 0xE6, 0x9C,
-               0x88, 0x29, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x28,
-               0xE6, 0xB0, 0xB4, 0x29, 0x28, 0xE6, 0x9C, 0xA8,
-               0x29, 0x28, 0xE9, 0x87, 0x91, 0x29, 0x28, 0xE5,
-               0x9C, 0x9F, 0x29, 0x28, 0xE6, 0x97, 0xA5, 0x29,
-               0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x28, 0xE6, 0x9C,
-               0x89, 0x29, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x28,
-               0xE5, 0x90, 0x8D, 0x29, 0x28, 0xE7, 0x89, 0xB9,
-               0x29, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x28, 0xE7,
-               0xA5, 0x9D, 0x29, 0x28, 0xE5, 0x8A, 0xB4, 0x29,
-               0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x28, 0xE5, 0x91,
-               0xBC, 0x29, 0x28, 0xE5, 0xAD, 0xA6, 0x29, 0x28,
-               0xE7, 0x9B, 0xA3, 0x29, 0x28, 0xE4, 0xBC, 0x81,
-               0x29, 0x28, 0xE8, 0xB3, 0x87, 0x29, 0x28, 0xE5,
-               0x8D, 0x94, 0x29, 0x28, 0xE7, 0xA5, 0xAD, 0x29,
-               0x28, 0xE4, 0xBC, 0x91, 0x29, 0x28, 0xE8, 0x87,
-               0xAA, 0x29, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x50,
-               0x54, 0x45, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33,
-               0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37,
-               0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31,
-               0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35,
-               0xE1, 0x84, 0x80, 0xE1, 0x84, 0x82, 0xE1, 0x84,
-               0x83, 0xE1, 0x84, 0x85, 0xE1, 0x84, 0x86, 0xE1,
-               0x84, 0x87, 0xE1, 0x84, 0x89, 0xE1, 0x84, 0x8B,
-               0xE1, 0x84, 0x8C, 0xE1, 0x84, 0x8E, 0xE1, 0x84,
-               0x8F, 0xE1, 0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1,
-               0x84, 0x92, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1,
-               0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0xE1, 0x84,
-               0x83, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x85, 0xE1,
-               0x85, 0xA1, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1,
-               0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0xE1, 0x84,
-               0x89, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x8B, 0xE1,
-               0x85, 0xA1, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1,
-               0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x84,
-               0x8F, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x90, 0xE1,
-               0x85, 0xA1, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1,
-               0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE1, 0x84,
-               0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1,
-               0x84, 0x80, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C,
-               0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85,
-               0xB4, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0xE4,
-               0xB8, 0x80, 0xE4, 0xBA, 0x8C, 0xE4, 0xB8, 0x89,
-               0xE5, 0x9B, 0x9B, 0xE4, 0xBA, 0x94, 0xE5, 0x85,
-               0xAD, 0xE4, 0xB8, 0x83, 0xE5, 0x85, 0xAB, 0xE4,
-               0xB9, 0x9D, 0xE5, 0x8D, 0x81, 0xE6, 0x9C, 0x88,
-               0xE7, 0x81, 0xAB, 0xE6, 0xB0, 0xB4, 0xE6, 0x9C,
-               0xA8, 0xE9, 0x87, 0x91, 0xE5, 0x9C, 0x9F, 0xE6,
-               0x97, 0xA5, 0xE6, 0xA0, 0xAA, 0xE6, 0x9C, 0x89,
-               0xE7, 0xA4, 0xBE, 0xE5, 0x90, 0x8D, 0xE7, 0x89,
-               0xB9, 0xE8, 0xB2, 0xA1, 0xE7, 0xA5, 0x9D, 0xE5,
-               0x8A, 0xB4, 0xE7, 0xA7, 0x98, 0xE7, 0x94, 0xB7,
-               0xE5, 0xA5, 0xB3, 0xE9, 0x81, 0xA9, 0xE5, 0x84,
-               0xAA, 0xE5, 0x8D, 0xB0, 0xE6, 0xB3, 0xA8, 0xE9,
-               0xA0, 0x85, 0xE4, 0xBC, 0x91, 0xE5, 0x86, 0x99,
-               0xE6, 0xAD, 0xA3, 0xE4, 0xB8, 0x8A, 0xE4, 0xB8,
-               0xAD, 0xE4, 0xB8, 0x8B, 0xE5, 0xB7, 0xA6, 0xE5,
-               0x8F, 0xB3, 0xE5, 0x8C, 0xBB, 0xE5, 0xAE, 0x97,
-               0xE5, 0xAD, 0xA6, 0xE7, 0x9B, 0xA3, 0xE4, 0xBC,
-               0x81, 0xE8, 0xB3, 0x87, 0xE5, 0x8D, 0x94, 0xE5,
-               0xA4, 0x9C, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38,
-               0x33, 0x39, 0x34, 0x30, 0x34, 0x31, 0x34, 0x32,
-               0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36,
-               0x34, 0x37, 0x34, 0x38, 0x34, 0x39, 0x35, 0x30,
-               0x31, 0xE6, 0x9C, 0x88, 0x32, 0xE6, 0x9C, 0x88,
-               0x33, 0xE6, 0x9C, 0x88, 0x34, 0xE6, 0x9C, 0x88,
-               0x35, 0xE6, 0x9C, 0x88, 0x36, 0xE6, 0x9C, 0x88,
-               0x37, 0xE6, 0x9C, 0x88, 0x38, 0xE6, 0x9C, 0x88,
-               0x39, 0xE6, 0x9C, 0x88, 0x31, 0x30, 0xE6, 0x9C,
-               0x88, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x31, 0x32,
-               0xE6, 0x9C, 0x88, 0x48, 0x67, 0x65, 0x72, 0x67,
-               0x65, 0x56, 0x4C, 0x54, 0x44, 0xE3, 0x82, 0xA2,
-               0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xA6, 0xE3, 0x82,
-               0xA8, 0xE3, 0x82, 0xAA, 0xE3, 0x82, 0xAB, 0xE3,
-               0x82, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xB1,
-               0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB5, 0xE3, 0x82,
-               0xB7, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xBB, 0xE3,
-               0x82, 0xBD, 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0x81,
-               0xE3, 0x83, 0x84, 0xE3, 0x83, 0x86, 0xE3, 0x83,
-               0x88, 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8B, 0xE3,
-               0x83, 0x8C, 0xE3, 0x83, 0x8D, 0xE3, 0x83, 0x8E,
-               0xE3, 0x83, 0x8F, 0xE3, 0x83, 0x92, 0xE3, 0x83,
-               0x95, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0x9B, 0xE3,
-               0x83, 0x9E, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xA0,
-               0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xA2, 0xE3, 0x83,
-               0xA4, 0xE3, 0x83, 0xA6, 0xE3, 0x83, 0xA8, 0xE3,
-               0x83, 0xA9, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xAB,
-               0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAD, 0xE3, 0x83,
-               0xAF, 0xE3, 0x83, 0xB0, 0xE3, 0x83, 0xB1, 0xE3,
-               0x83, 0xB2, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F,
-               0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-               0x88, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,
-               0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x82, 0xA2,
-               0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,
-               0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xA2, 0xE3,
-               0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xA4,
-               0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
-               0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3,
-               0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0xA6,
-               0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
-               0xA8, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xAF, 0xE3,
-               0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,
-               0xE3, 0x82, 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82,
-               0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAA, 0xE3,
-               0x83, 0xB3, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xAA,
-               0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0xE3, 0x82,
-               0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0xE3,
-               0x82, 0xAB, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83,
-               0xE3, 0x83, 0x88, 0xE3, 0x82, 0xAB, 0xE3, 0x83,
-               0xAD, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,
-               0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAD,
-               0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
-               0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0xE3,
-               0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB,
-               0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
-               0x99, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, 0xE3,
-               0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xAA,
-               0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
-               0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, 0xE3,
-               0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAD,
-               0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAD, 0xE3, 0x83,
-               0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,
-               0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x82, 0xAD,
-               0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,
-               0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0xE3,
-               0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF,
-               0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82,
-               0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3,
-               0x83, 0xA0, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,
-               0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83,
-               0x88, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3,
-               0x83, 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99,
-               0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0xE3, 0x82,
-               0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,
-               0x83, 0x8D, 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC,
-               0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xB3, 0xE3, 0x83,
-               0xAB, 0xE3, 0x83, 0x8A, 0xE3, 0x82, 0xB3, 0xE3,
-               0x83, 0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,
-               0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
-               0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xB5, 0xE3,
-               0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC,
-               0xE3, 0x83, 0xA0, 0xE3, 0x82, 0xB7, 0xE3, 0x83,
-               0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3,
-               0x82, 0x99, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3,
-               0xE3, 0x83, 0x81, 0xE3, 0x82, 0xBB, 0xE3, 0x83,
-               0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xBF, 0xE3,
-               0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9,
-               0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82,
-               0xB7, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3,
-               0x83, 0xAB, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3,
-               0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0xE3, 0x83,
-               0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3,
-               0x83, 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84,
-               0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
-               0xBC, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,
-               0x83, 0x88, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A,
-               0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84, 0xE3, 0x83,
-               0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3,
-               0x83, 0xAC, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92,
-               0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82,
-               0xB9, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0xE3,
-               0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF,
-               0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82,
-               0x9A, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x92, 0xE3,
-               0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95,
-               0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
-               0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3,
-               0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,
-               0xE3, 0x83, 0x88, 0xE3, 0x83, 0x95, 0xE3, 0x82,
-               0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3,
-               0x82, 0xA7, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95,
-               0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
-               0x98, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3,
-               0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x98,
-               0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0xE3, 0x83,
-               0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3,
-               0x83, 0x92, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB,
-               0xE3, 0x83, 0x84, 0xE3, 0x83, 0x98, 0xE3, 0x82,
-               0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0xE3,
-               0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
-               0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-               0x98, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3,
-               0x82, 0xBF, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,
-               0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
-               0x88, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0xE3,
-               0x83, 0xAB, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x9B,
-               0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
-               0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3,
-               0x82, 0x99, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC,
-               0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x9B, 0xE3, 0x83,
-               0xBC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0xE3,
-               0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD,
-               0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
-               0xAB, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3,
-               0x83, 0x8F, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB,
-               0xE3, 0x82, 0xAF, 0xE3, 0x83, 0x9E, 0xE3, 0x83,
-               0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7, 0xE3,
-               0x83, 0xB3, 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF,
-               0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
-               0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x9F, 0xE3,
-               0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,
-               0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
-               0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3,
-               0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99,
-               0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
-               0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
-               0x83, 0xAB, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC,
-               0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83,
-               0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3,
-               0x83, 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3,
-               0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83,
-               0x88, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xAA, 0xE3,
-               0x83, 0xA9, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92,
-               0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
-               0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3,
-               0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xAC,
-               0xE3, 0x83, 0xA0, 0xE3, 0x83, 0xAC, 0xE3, 0x83,
-               0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3,
-               0x82, 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0xAF,
-               0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x30, 0xE7,
-               0x82, 0xB9, 0x31, 0xE7, 0x82, 0xB9, 0x32, 0xE7,
-               0x82, 0xB9, 0x33, 0xE7, 0x82, 0xB9, 0x34, 0xE7,
-               0x82, 0xB9, 0x35, 0xE7, 0x82, 0xB9, 0x36, 0xE7,
-               0x82, 0xB9, 0x37, 0xE7, 0x82, 0xB9, 0x38, 0xE7,
-               0x82, 0xB9, 0x39, 0xE7, 0x82, 0xB9, 0x31, 0x30,
-               0xE7, 0x82, 0xB9, 0x31, 0x31, 0xE7, 0x82, 0xB9,
-               0x31, 0x32, 0xE7, 0x82, 0xB9, 0x31, 0x33, 0xE7,
-               0x82, 0xB9, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x31,
-               0x35, 0xE7, 0x82, 0xB9, 0x31, 0x36, 0xE7, 0x82,
-               0xB9, 0x31, 0x37, 0xE7, 0x82, 0xB9, 0x31, 0x38,
-               0xE7, 0x82, 0xB9, 0x31, 0x39, 0xE7, 0x82, 0xB9,
-               0x32, 0x30, 0xE7, 0x82, 0xB9, 0x32, 0x31, 0xE7,
-               0x82, 0xB9, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x32,
-               0x33, 0xE7, 0x82, 0xB9, 0x32, 0x34, 0xE7, 0x82,
-               0xB9, 0x68, 0x50, 0x61, 0x64, 0x61, 0x41, 0x55,
-               0x62, 0x61, 0x72, 0x6F, 0x56, 0x70, 0x63, 0x64,
-               0x6D, 0x64, 0x6D, 0x32, 0x64, 0x6D, 0x33, 0x49,
-               0x55, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, 0xE6,
-               0x98, 0xAD, 0xE5, 0x92, 0x8C, 0xE5, 0xA4, 0xA7,
-               0xE6, 0xAD, 0xA3, 0xE6, 0x98, 0x8E, 0xE6, 0xB2,
-               0xBB, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,
-               0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x70, 0x41, 0x6E,
-               0x41, 0xCE, 0xBC, 0x41, 0x6D, 0x41, 0x6B, 0x41,
-               0x4B, 0x42, 0x4D, 0x42, 0x47, 0x42, 0x63, 0x61,
-               0x6C, 0x6B, 0x63, 0x61, 0x6C, 0x70, 0x46, 0x6E,
-               0x46, 0xCE, 0xBC, 0x46, 0xCE, 0xBC, 0x67, 0x6D,
-               0x67, 0x6B, 0x67, 0x48, 0x7A, 0x6B, 0x48, 0x7A,
-               0x4D, 0x48, 0x7A, 0x47, 0x48, 0x7A, 0x54, 0x48,
-               0x7A, 0xCE, 0xBC, 0x6C, 0x6D, 0x6C, 0x64, 0x6C,
-               0x6B, 0x6C, 0x66, 0x6D, 0x6E, 0x6D, 0xCE, 0xBC,
-               0x6D, 0x6D, 0x6D, 0x63, 0x6D, 0x6B, 0x6D, 0x6D,
-               0x6D, 0x32, 0x63, 0x6D, 0x32, 0x6D, 0x32, 0x6B,
-               0x6D, 0x32, 0x6D, 0x6D, 0x33, 0x63, 0x6D, 0x33,
-               0x6D, 0x33, 0x6B, 0x6D, 0x33, 0x6D, 0xE2, 0x88,
-               0x95, 0x73, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x32,
-               0x50, 0x61, 0x6B, 0x50, 0x61, 0x4D, 0x50, 0x61,
-               0x47, 0x50, 0x61, 0x72, 0x61, 0x64, 0x72, 0x61,
-               0x64, 0xE2, 0x88, 0x95, 0x73, 0x72, 0x61, 0x64,
-               0xE2, 0x88, 0x95, 0x73, 0x32, 0x70, 0x73, 0x6E,
-               0x73, 0xCE, 0xBC, 0x73, 0x6D, 0x73, 0x70, 0x56,
-               0x6E, 0x56, 0xCE, 0xBC, 0x56, 0x6D, 0x56, 0x6B,
-               0x56, 0x4D, 0x56, 0x70, 0x57, 0x6E, 0x57, 0xCE,
-               0xBC, 0x57, 0x6D, 0x57, 0x6B, 0x57, 0x4D, 0x57,
-               0x6B, 0xCE, 0xA9, 0x4D, 0xCE, 0xA9, 0x61, 0x2E,
-               0x6D, 0x2E, 0x42, 0x71, 0x63, 0x63, 0x63, 0x64,
-               0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x43, 0x6F,
-               0x2E, 0x64, 0x42, 0x47, 0x79, 0x68, 0x61, 0x48,
-               0x50, 0x69, 0x6E, 0x4B, 0x4B, 0x4B, 0x4D, 0x6B,
-               0x74, 0x6C, 0x6D, 0x6C, 0x6E, 0x6C, 0x6F, 0x67,
-               0x6C, 0x78, 0x6D, 0x62, 0x6D, 0x69, 0x6C, 0x6D,
-               0x6F, 0x6C, 0x50, 0x48, 0x70, 0x2E, 0x6D, 0x2E,
-               0x50, 0x50, 0x4D, 0x50, 0x52, 0x73, 0x72, 0x53,
-               0x76, 0x57, 0x62, 0x56, 0xE2, 0x88, 0x95, 0x6D,
-               0x41, 0xE2, 0x88, 0x95, 0x6D, 0x31, 0xE6, 0x97,
-               0xA5, 0x32, 0xE6, 0x97, 0xA5, 0x33, 0xE6, 0x97,
-               0xA5, 0x34, 0xE6, 0x97, 0xA5, 0x35, 0xE6, 0x97,
-               0xA5, 0x36, 0xE6, 0x97, 0xA5, 0x37, 0xE6, 0x97,
-               0xA5, 0x38, 0xE6, 0x97, 0xA5, 0x39, 0xE6, 0x97,
-               0xA5, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x31, 0x31,
-               0xE6, 0x97, 0xA5, 0x31, 0x32, 0xE6, 0x97, 0xA5,
-               0x31, 0x33, 0xE6, 0x97, 0xA5, 0x31, 0x34, 0xE6,
-               0x97, 0xA5, 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x31,
-               0x36, 0xE6, 0x97, 0xA5, 0x31, 0x37, 0xE6, 0x97,
-               0xA5, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x31, 0x39,
-               0xE6, 0x97, 0xA5, 0x32, 0x30, 0xE6, 0x97, 0xA5,
-               0x32, 0x31, 0xE6, 0x97, 0xA5, 0x32, 0x32, 0xE6,
-               0x97, 0xA5, 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x32,
-               0x34, 0xE6, 0x97, 0xA5, 0x32, 0x35, 0xE6, 0x97,
-               0xA5, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x32, 0x37,
-               0xE6, 0x97, 0xA5, 0x32, 0x38, 0xE6, 0x97, 0xA5,
-               0x32, 0x39, 0xE6, 0x97, 0xA5, 0x33, 0x30, 0xE6,
-               0x97, 0xA5, 0x33, 0x31, 0xE6, 0x97, 0xA5, 0x67,
-               0x61, 0x6C, 0xF6, 0xE8, 0xB1, 0x88, 0xF6, 0xE6,
-               0x9B, 0xB4, 0xF6, 0xE8, 0xBB, 0x8A, 0xF6, 0xE8,
-               0xB3, 0x88, 0xF6, 0xE6, 0xBB, 0x91, 0xF6, 0xE4,
-               0xB8, 0xB2, 0xF6, 0xE5, 0x8F, 0xA5, 0xF6, 0xE9,
-               0xBE, 0x9C, 0xF6, 0xE9, 0xBE, 0x9C, 0xF6, 0xE5,
-               0xA5, 0x91, 0xF6, 0xE9, 0x87, 0x91, 0xF6, 0xE5,
-               0x96, 0x87, 0xF6, 0xE5, 0xA5, 0x88, 0xF6, 0xE6,
-               0x87, 0xB6, 0xF6, 0xE7, 0x99, 0xA9, 0xF6, 0xE7,
-               0xBE, 0x85, 0xF6, 0xE8, 0x98, 0xBF, 0xF6, 0xE8,
-               0x9E, 0xBA, 0xF6, 0xE8, 0xA3, 0xB8, 0xF6, 0xE9,
-               0x82, 0x8F, 0xF6, 0xE6, 0xA8, 0x82, 0xF6, 0xE6,
-               0xB4, 0x9B, 0xF6, 0xE7, 0x83, 0x99, 0xF6, 0xE7,
-               0x8F, 0x9E, 0xF6, 0xE8, 0x90, 0xBD, 0xF6, 0xE9,
-               0x85, 0xAA, 0xF6, 0xE9, 0xA7, 0xB1, 0xF6, 0xE4,
-               0xBA, 0x82, 0xF6, 0xE5, 0x8D, 0xB5, 0xF6, 0xE6,
-               0xAC, 0x84, 0xF6, 0xE7, 0x88, 0x9B, 0xF6, 0xE8,
-               0x98, 0xAD, 0xF6, 0xE9, 0xB8, 0x9E, 0xF6, 0xE5,
-               0xB5, 0x90, 0xF6, 0xE6, 0xBF, 0xAB, 0xF6, 0xE8,
-               0x97, 0x8D, 0xF6, 0xE8, 0xA5, 0xA4, 0xF6, 0xE6,
-               0x8B, 0x89, 0xF6, 0xE8, 0x87, 0x98, 0xF6, 0xE8,
-               0xA0, 0x9F, 0xF6, 0xE5, 0xBB, 0x8A, 0xF6, 0xE6,
-               0x9C, 0x97, 0xF6, 0xE6, 0xB5, 0xAA, 0xF6, 0xE7,
-               0x8B, 0xBC, 0xF6, 0xE9, 0x83, 0x8E, 0xF6, 0xE4,
-               0xBE, 0x86, 0xF6, 0xE5, 0x86, 0xB7, 0xF6, 0xE5,
-               0x8B, 0x9E, 0xF6, 0xE6, 0x93, 0x84, 0xF6, 0xE6,
-               0xAB, 0x93, 0xF6, 0xE7, 0x88, 0x90, 0xF6, 0xE7,
-               0x9B, 0xA7, 0xF6, 0xE8, 0x80, 0x81, 0xF6, 0xE8,
-               0x98, 0x86, 0xF6, 0xE8, 0x99, 0x9C, 0xF6, 0xE8,
-               0xB7, 0xAF, 0xF6, 0xE9, 0x9C, 0xB2, 0xF6, 0xE9,
-               0xAD, 0xAF, 0xF6, 0xE9, 0xB7, 0xBA, 0xF6, 0xE7,
-               0xA2, 0x8C, 0xF6, 0xE7, 0xA5, 0xBF, 0xF6, 0xE7,
-               0xB6, 0xA0, 0xF6, 0xE8, 0x8F, 0x89, 0xF6, 0xE9,
-               0x8C, 0x84, 0xF6, 0xE9, 0xB9, 0xBF, 0xF6, 0xE8,
-               0xAB, 0x96, 0xF6, 0xE5, 0xA3, 0x9F, 0xF6, 0xE5,
-               0xBC, 0x84, 0xF6, 0xE7, 0xB1, 0xA0, 0xF6, 0xE8,
-               0x81, 0xBE, 0xF6, 0xE7, 0x89, 0xA2, 0xF6, 0xE7,
-               0xA3, 0x8A, 0xF6, 0xE8, 0xB3, 0x82, 0xF6, 0xE9,
-               0x9B, 0xB7, 0xF6, 0xE5, 0xA3, 0x98, 0xF6, 0xE5,
-               0xB1, 0xA2, 0xF6, 0xE6, 0xA8, 0x93, 0xF6, 0xE6,
-               0xB7, 0x9A, 0xF6, 0xE6, 0xBC, 0x8F, 0xF6, 0xE7,
-               0xB4, 0xAF, 0xF6, 0xE7, 0xB8, 0xB7, 0xF6, 0xE9,
-               0x99, 0x8B, 0xF6, 0xE5, 0x8B, 0x92, 0xF6, 0xE8,
-               0x82, 0x8B, 0xF6, 0xE5, 0x87, 0x9C, 0xF6, 0xE5,
-               0x87, 0x8C, 0xF6, 0xE7, 0xA8, 0x9C, 0xF6, 0xE7,
-               0xB6, 0xBE, 0xF6, 0xE8, 0x8F, 0xB1, 0xF6, 0xE9,
-               0x99, 0xB5, 0xF6, 0xE8, 0xAE, 0x80, 0xF6, 0xE6,
-               0x8B, 0x8F, 0xF6, 0xE6, 0xA8, 0x82, 0xF6, 0xE8,
-               0xAB, 0xBE, 0xF6, 0xE4, 0xB8, 0xB9, 0xF6, 0xE5,
-               0xAF, 0xA7, 0xF6, 0xE6, 0x80, 0x92, 0xF6, 0xE7,
-               0x8E, 0x87, 0xF6, 0xE7, 0x95, 0xB0, 0xF6, 0xE5,
-               0x8C, 0x97, 0xF6, 0xE7, 0xA3, 0xBB, 0xF6, 0xE4,
-               0xBE, 0xBF, 0xF6, 0xE5, 0xBE, 0xA9, 0xF6, 0xE4,
-               0xB8, 0x8D, 0xF6, 0xE6, 0xB3, 0x8C, 0xF6, 0xE6,
-               0x95, 0xB8, 0xF6, 0xE7, 0xB4, 0xA2, 0xF6, 0xE5,
-               0x8F, 0x83, 0xF6, 0xE5, 0xA1, 0x9E, 0xF6, 0xE7,
-               0x9C, 0x81, 0xF6, 0xE8, 0x91, 0x89, 0xF6, 0xE8,
-               0xAA, 0xAA, 0xF6, 0xE6, 0xAE, 0xBA, 0xF6, 0xE8,
-               0xBE, 0xB0, 0xF6, 0xE6, 0xB2, 0x88, 0xF6, 0xE6,
-               0x8B, 0xBE, 0xF6, 0xE8, 0x8B, 0xA5, 0xF6, 0xE6,
-               0x8E, 0xA0, 0xF6, 0xE7, 0x95, 0xA5, 0xF6, 0xE4,
-               0xBA, 0xAE, 0xF6, 0xE5, 0x85, 0xA9, 0xF6, 0xE5,
-               0x87, 0x89, 0xF6, 0xE6, 0xA2, 0x81, 0xF6, 0xE7,
-               0xB3, 0xA7, 0xF6, 0xE8, 0x89, 0xAF, 0xF6, 0xE8,
-               0xAB, 0x92, 0xF6, 0xE9, 0x87, 0x8F, 0xF6, 0xE5,
-               0x8B, 0xB5, 0xF6, 0xE5, 0x91, 0x82, 0xF6, 0xE5,
-               0xA5, 0xB3, 0xF6, 0xE5, 0xBB, 0xAC, 0xF6, 0xE6,
-               0x97, 0x85, 0xF6, 0xE6, 0xBF, 0xBE, 0xF6, 0xE7,
-               0xA4, 0xAA, 0xF6, 0xE9, 0x96, 0xAD, 0xF6, 0xE9,
-               0xA9, 0xAA, 0xF6, 0xE9, 0xBA, 0x97, 0xF6, 0xE9,
-               0xBB, 0x8E, 0xF6, 0xE5, 0x8A, 0x9B, 0xF6, 0xE6,
-               0x9B, 0x86, 0xF6, 0xE6, 0xAD, 0xB7, 0xF6, 0xE8,
-               0xBD, 0xA2, 0xF6, 0xE5, 0xB9, 0xB4, 0xF6, 0xE6,
-               0x86, 0x90, 0xF6, 0xE6, 0x88, 0x80, 0xF6, 0xE6,
-               0x92, 0x9A, 0xF6, 0xE6, 0xBC, 0xA3, 0xF6, 0xE7,
-               0x85, 0x89, 0xF6, 0xE7, 0x92, 0x89, 0xF6, 0xE7,
-               0xA7, 0x8A, 0xF6, 0xE7, 0xB7, 0xB4, 0xF6, 0xE8,
-               0x81, 0xAF, 0xF6, 0xE8, 0xBC, 0xA6, 0xF6, 0xE8,
-               0x93, 0xAE, 0xF6, 0xE9, 0x80, 0xA3, 0xF6, 0xE9,
-               0x8D, 0x8A, 0xF6, 0xE5, 0x88, 0x97, 0xF6, 0xE5,
-               0x8A, 0xA3, 0xF6, 0xE5, 0x92, 0xBD, 0xF6, 0xE7,
-               0x83, 0x88, 0xF6, 0xE8, 0xA3, 0x82, 0xF6, 0xE8,
-               0xAA, 0xAA, 0xF6, 0xE5, 0xBB, 0x89, 0xF6, 0xE5,
-               0xBF, 0xB5, 0xF6, 0xE6, 0x8D, 0xBB, 0xF6, 0xE6,
-               0xAE, 0xAE, 0xF6, 0xE7, 0xB0, 0xBE, 0xF6, 0xE7,
-               0x8D, 0xB5, 0xF6, 0xE4, 0xBB, 0xA4, 0xF6, 0xE5,
-               0x9B, 0xB9, 0xF6, 0xE5, 0xAF, 0xA7, 0xF6, 0xE5,
-               0xB6, 0xBA, 0xF6, 0xE6, 0x80, 0x9C, 0xF6, 0xE7,
-               0x8E, 0xB2, 0xF6, 0xE7, 0x91, 0xA9, 0xF6, 0xE7,
-               0xBE, 0x9A, 0xF6, 0xE8, 0x81, 0x86, 0xF6, 0xE9,
-               0x88, 0xB4, 0xF6, 0xE9, 0x9B, 0xB6, 0xF6, 0xE9,
-               0x9D, 0x88, 0xF6, 0xE9, 0xA0, 0x98, 0xF6, 0xE4,
-               0xBE, 0x8B, 0xF6, 0xE7, 0xA6, 0xAE, 0xF6, 0xE9,
-               0x86, 0xB4, 0xF6, 0xE9, 0x9A, 0xB8, 0xF6, 0xE6,
-               0x83, 0xA1, 0xF6, 0xE4, 0xBA, 0x86, 0xF6, 0xE5,
-               0x83, 0x9A, 0xF6, 0xE5, 0xAF, 0xAE, 0xF6, 0xE5,
-               0xB0, 0xBF, 0xF6, 0xE6, 0x96, 0x99, 0xF6, 0xE6,
-               0xA8, 0x82, 0xF6, 0xE7, 0x87, 0x8E, 0xF6, 0xE7,
-               0x99, 0x82, 0xF6, 0xE8, 0x93, 0xBC, 0xF6, 0xE9,
-               0x81, 0xBC, 0xF6, 0xE9, 0xBE, 0x8D, 0xF6, 0xE6,
-               0x9A, 0x88, 0xF6, 0xE9, 0x98, 0xAE, 0xF6, 0xE5,
-               0x8A, 0x89, 0xF6, 0xE6, 0x9D, 0xBB, 0xF6, 0xE6,
-               0x9F, 0xB3, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6,
-               0xBA, 0x9C, 0xF6, 0xE7, 0x90, 0x89, 0xF6, 0xE7,
-               0x95, 0x99, 0xF6, 0xE7, 0xA1, 0xAB, 0xF6, 0xE7,
-               0xB4, 0x90, 0xF6, 0xE9, 0xA1, 0x9E, 0xF6, 0xE5,
-               0x85, 0xAD, 0xF6, 0xE6, 0x88, 0xAE, 0xF6, 0xE9,
-               0x99, 0xB8, 0xF6, 0xE5, 0x80, 0xAB, 0xF6, 0xE5,
-               0xB4, 0x99, 0xF6, 0xE6, 0xB7, 0xAA, 0xF6, 0xE8,
-               0xBC, 0xAA, 0xF6, 0xE5, 0xBE, 0x8B, 0xF6, 0xE6,
-               0x85, 0x84, 0xF6, 0xE6, 0xA0, 0x97, 0xF6, 0xE7,
-               0x8E, 0x87, 0xF6, 0xE9, 0x9A, 0x86, 0xF6, 0xE5,
-               0x88, 0xA9, 0xF6, 0xE5, 0x90, 0x8F, 0xF6, 0xE5,
-               0xB1, 0xA5, 0xF6, 0xE6, 0x98, 0x93, 0xF6, 0xE6,
-               0x9D, 0x8E, 0xF6, 0xE6, 0xA2, 0xA8, 0xF6, 0xE6,
-               0xB3, 0xA5, 0xF6, 0xE7, 0x90, 0x86, 0xF6, 0xE7,
-               0x97, 0xA2, 0xF6, 0xE7, 0xBD, 0xB9, 0xF6, 0xE8,
-               0xA3, 0x8F, 0xF6, 0xE8, 0xA3, 0xA1, 0xF6, 0xE9,
-               0x87, 0x8C, 0xF6, 0xE9, 0x9B, 0xA2, 0xF6, 0xE5,
-               0x8C, 0xBF, 0xF6, 0xE6, 0xBA, 0xBA, 0xF6, 0xE5,
-               0x90, 0x9D, 0xF6, 0xE7, 0x87, 0x90, 0xF6, 0xE7,
-               0x92, 0x98, 0xF6, 0xE8, 0x97, 0xBA, 0xF6, 0xE9,
-               0x9A, 0xA3, 0xF6, 0xE9, 0xB1, 0x97, 0xF6, 0xE9,
-               0xBA, 0x9F, 0xF6, 0xE6, 0x9E, 0x97, 0xF6, 0xE6,
-               0xB7, 0x8B, 0xF6, 0xE8, 0x87, 0xA8, 0xF6, 0xE7,
-               0xAB, 0x8B, 0xF6, 0xE7, 0xAC, 0xA0, 0xF6, 0xE7,
-               0xB2, 0x92, 0xF6, 0xE7, 0x8B, 0x80, 0xF6, 0xE7,
-               0x82, 0x99, 0xF6, 0xE8, 0xAD, 0x98, 0xF6, 0xE4,
-               0xBB, 0x80, 0xF6, 0xE8, 0x8C, 0xB6, 0xF6, 0xE5,
-               0x88, 0xBA, 0xF6, 0xE5, 0x88, 0x87, 0xF6, 0xE5,
-               0xBA, 0xA6, 0xF6, 0xE6, 0x8B, 0x93, 0xF6, 0xE7,
-               0xB3, 0x96, 0xF6, 0xE5, 0xAE, 0x85, 0xF6, 0xE6,
-               0xB4, 0x9E, 0xF6, 0xE6, 0x9A, 0xB4, 0xF6, 0xE8,
-               0xBC, 0xBB, 0xF6, 0xE8, 0xA1, 0x8C, 0xF6, 0xE9,
-               0x99, 0x8D, 0xF6, 0xE8, 0xA6, 0x8B, 0xF6, 0xE5,
-               0xBB, 0x93, 0xF6, 0xE5, 0x85, 0x80, 0xF6, 0xE5,
-               0x97, 0x80, 0xF6, 0xE5, 0xA1, 0x9A, 0xF6, 0xE6,
-               0x99, 0xB4, 0xF6, 0xE5, 0x87, 0x9E, 0xF6, 0xE7,
-               0x8C, 0xAA, 0xF6, 0xE7, 0x9B, 0x8A, 0xF6, 0xE7,
-               0xA4, 0xBC, 0xF6, 0xE7, 0xA5, 0x9E, 0xF6, 0xE7,
-               0xA5, 0xA5, 0xF6, 0xE7, 0xA6, 0x8F, 0xF6, 0xE9,
-               0x9D, 0x96, 0xF6, 0xE7, 0xB2, 0xBE, 0xF6, 0xE7,
-               0xBE, 0xBD, 0xF6, 0xE8, 0x98, 0x92, 0xF6, 0xE8,
-               0xAB, 0xB8, 0xF6, 0xE9, 0x80, 0xB8, 0xF6, 0xE9,
-               0x83, 0xBD, 0xF6, 0xE9, 0xA3, 0xAF, 0xF6, 0xE9,
-               0xA3, 0xBC, 0xF6, 0xE9, 0xA4, 0xA8, 0xF6, 0xE9,
-               0xB6, 0xB4, 0xF6, 0xE4, 0xBE, 0xAE, 0xF6, 0xE5,
-               0x83, 0xA7, 0xF6, 0xE5, 0x85, 0x8D, 0xF6, 0xE5,
-               0x8B, 0x89, 0xF6, 0xE5, 0x8B, 0xA4, 0xF6, 0xE5,
-               0x8D, 0x91, 0xF6, 0xE5, 0x96, 0x9D, 0xF6, 0xE5,
-               0x98, 0x86, 0xF6, 0xE5, 0x99, 0xA8, 0xF6, 0xE5,
-               0xA1, 0x80, 0xF6, 0xE5, 0xA2, 0xA8, 0xF6, 0xE5,
-               0xB1, 0xA4, 0xF6, 0xE5, 0xB1, 0xAE, 0xF6, 0xE6,
-               0x82, 0x94, 0xF6, 0xE6, 0x85, 0xA8, 0xF6, 0xE6,
-               0x86, 0x8E, 0xF6, 0xE6, 0x87, 0xB2, 0xF6, 0xE6,
-               0x95, 0x8F, 0xF6, 0xE6, 0x97, 0xA2, 0xF6, 0xE6,
-               0x9A, 0x91, 0xF6, 0xE6, 0xA2, 0x85, 0xF6, 0xE6,
-               0xB5, 0xB7, 0xF6, 0xE6, 0xB8, 0x9A, 0xF6, 0xE6,
-               0xBC, 0xA2, 0xF6, 0xE7, 0x85, 0xAE, 0xF6, 0xE7,
-               0x88, 0xAB, 0xF6, 0xE7, 0x90, 0xA2, 0xF6, 0xE7,
-               0xA2, 0x91, 0xF6, 0xE7, 0xA4, 0xBE, 0xF6, 0xE7,
-               0xA5, 0x89, 0xF6, 0xE7, 0xA5, 0x88, 0xF6, 0xE7,
-               0xA5, 0x90, 0xF6, 0xE7, 0xA5, 0x96, 0xF6, 0xE7,
-               0xA5, 0x9D, 0xF6, 0xE7, 0xA6, 0x8D, 0xF6, 0xE7,
-               0xA6, 0x8E, 0xF6, 0xE7, 0xA9, 0x80, 0xF6, 0xE7,
-               0xAA, 0x81, 0xF6, 0xE7, 0xAF, 0x80, 0xF6, 0xE7,
-               0xB7, 0xB4, 0xF6, 0xE7, 0xB8, 0x89, 0xF6, 0xE7,
-               0xB9, 0x81, 0xF6, 0xE7, 0xBD, 0xB2, 0xF6, 0xE8,
-               0x80, 0x85, 0xF6, 0xE8, 0x87, 0xAD, 0xF6, 0xE8,
-               0x89, 0xB9, 0xF6, 0xE8, 0x89, 0xB9, 0xF6, 0xE8,
-               0x91, 0x97, 0xF6, 0xE8, 0xA4, 0x90, 0xF6, 0xE8,
-               0xA6, 0x96, 0xF6, 0xE8, 0xAC, 0x81, 0xF6, 0xE8,
-               0xAC, 0xB9, 0xF6, 0xE8, 0xB3, 0x93, 0xF6, 0xE8,
-               0xB4, 0x88, 0xF6, 0xE8, 0xBE, 0xB6, 0xF6, 0xE9,
-               0x80, 0xB8, 0xF6, 0xE9, 0x9B, 0xA3, 0xF6, 0xE9,
-               0x9F, 0xBF, 0xF6, 0xE9, 0xA0, 0xBB, 0xF6, 0xE4,
-               0xB8, 0xA6, 0xF6, 0xE5, 0x86, 0xB5, 0xF6, 0xE5,
-               0x85, 0xA8, 0xF6, 0xE4, 0xBE, 0x80, 0xF6, 0xE5,
-               0x85, 0x85, 0xF6, 0xE5, 0x86, 0x80, 0xF6, 0xE5,
-               0x8B, 0x87, 0xF6, 0xE5, 0x8B, 0xBA, 0xF6, 0xE5,
-               0x96, 0x9D, 0xF6, 0xE5, 0x95, 0x95, 0xF6, 0xE5,
-               0x96, 0x99, 0xF6, 0xE5, 0x97, 0xA2, 0xF6, 0xE5,
-               0xA1, 0x9A, 0xF6, 0xE5, 0xA2, 0xB3, 0xF6, 0xE5,
-               0xA5, 0x84, 0xF6, 0xE5, 0xA5, 0x94, 0xF6, 0xE5,
-               0xA9, 0xA2, 0xF6, 0xE5, 0xAC, 0xA8, 0xF6, 0xE5,
-               0xBB, 0x92, 0xF6, 0xE5, 0xBB, 0x99, 0xF6, 0xE5,
-               0xBD, 0xA9, 0xF6, 0xE5, 0xBE, 0xAD, 0xF6, 0xE6,
-               0x83, 0x98, 0xF6, 0xE6, 0x85, 0x8E, 0xF6, 0xE6,
-               0x84, 0x88, 0xF6, 0xE6, 0x86, 0x8E, 0xF6, 0xE6,
-               0x85, 0xA0, 0xF6, 0xE6, 0x87, 0xB2, 0xF6, 0xE6,
-               0x88, 0xB4, 0xF6, 0xE6, 0x8F, 0x84, 0xF6, 0xE6,
-               0x90, 0x9C, 0xF6, 0xE6, 0x91, 0x92, 0xF6, 0xE6,
-               0x95, 0x96, 0xF6, 0xE6, 0x99, 0xB4, 0xF6, 0xE6,
-               0x9C, 0x97, 0xF6, 0xE6, 0x9C, 0x9B, 0xF6, 0xE6,
-               0x9D, 0x96, 0xF6, 0xE6, 0xAD, 0xB9, 0xF6, 0xE6,
-               0xAE, 0xBA, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6,
-               0xBB, 0x9B, 0xF6, 0xE6, 0xBB, 0x8B, 0xF6, 0xE6,
-               0xBC, 0xA2, 0xF6, 0xE7, 0x80, 0x9E, 0xF6, 0xE7,
-               0x85, 0xAE, 0xF6, 0xE7, 0x9E, 0xA7, 0xF6, 0xE7,
-               0x88, 0xB5, 0xF6, 0xE7, 0x8A, 0xAF, 0xF6, 0xE7,
-               0x8C, 0xAA, 0xF6, 0xE7, 0x91, 0xB1, 0xF6, 0xE7,
-               0x94, 0x86, 0xF6, 0xE7, 0x94, 0xBB, 0xF6, 0xE7,
-               0x98, 0x9D, 0xF6, 0xE7, 0x98, 0x9F, 0xF6, 0xE7,
-               0x9B, 0x8A, 0xF6, 0xE7, 0x9B, 0x9B, 0xF6, 0xE7,
-               0x9B, 0xB4, 0xF6, 0xE7, 0x9D, 0x8A, 0xF6, 0xE7,
-               0x9D, 0x80, 0xF6, 0xE7, 0xA3, 0x8C, 0xF6, 0xE7,
-               0xAA, 0xB1, 0xF6, 0xE7, 0xAF, 0x80, 0xF6, 0xE7,
-               0xB1, 0xBB, 0xF6, 0xE7, 0xB5, 0x9B, 0xF6, 0xE7,
-               0xB7, 0xB4, 0xF6, 0xE7, 0xBC, 0xBE, 0xF6, 0xE8,
-               0x80, 0x85, 0xF6, 0xE8, 0x8D, 0x92, 0xF6, 0xE8,
-               0x8F, 0xAF, 0xF6, 0xE8, 0x9D, 0xB9, 0xF6, 0xE8,
-               0xA5, 0x81, 0xF6, 0xE8, 0xA6, 0x86, 0xF6, 0xE8,
-               0xA6, 0x96, 0xF6, 0xE8, 0xAA, 0xBF, 0xF6, 0xE8,
-               0xAB, 0xB8, 0xF6, 0xE8, 0xAB, 0x8B, 0xF6, 0xE8,
-               0xAC, 0x81, 0xF6, 0xE8, 0xAB, 0xBE, 0xF6, 0xE8,
-               0xAB, 0xAD, 0xF6, 0xE8, 0xAC, 0xB9, 0xF6, 0xE8,
-               0xAE, 0x8A, 0xF6, 0xE8, 0xB4, 0x88, 0xF6, 0xE8,
-               0xBC, 0xB8, 0xF6, 0xE9, 0x81, 0xB2, 0xF6, 0xE9,
-               0x86, 0x99, 0xF6, 0xE9, 0x89, 0xB6, 0xF6, 0xE9,
-               0x99, 0xBC, 0xF6, 0xE9, 0x9B, 0xA3, 0xF6, 0xE9,
-               0x9D, 0x96, 0xF6, 0xE9, 0x9F, 0x9B, 0xF6, 0xE9,
-               0x9F, 0xBF, 0xF6, 0xE9, 0xA0, 0x8B, 0xF6, 0xE9,
-               0xA0, 0xBB, 0xF6, 0xE9, 0xAC, 0x92, 0xF6, 0xE9,
-               0xBE, 0x9C, 0xF6, 0xF0, 0xA2, 0xA1, 0x8A, 0xF6,
-               0xF0, 0xA2, 0xA1, 0x84, 0xF6, 0xF0, 0xA3, 0x8F,
-               0x95, 0xF6, 0xE3, 0xAE, 0x9D, 0xF6, 0xE4, 0x80,
-               0x98, 0xF6, 0xE4, 0x80, 0xB9, 0xF6, 0xF0, 0xA5,
-               0x89, 0x89, 0xF6, 0xF0, 0xA5, 0xB3, 0x90, 0xF6,
-               0xF0, 0xA7, 0xBB, 0x93, 0xF6, 0xE9, 0xBD, 0x83,
-               0xF6, 0xE9, 0xBE, 0x8E, 0x66, 0x66, 0x66, 0x69,
-               0x66, 0x6C, 0x66, 0x66, 0x69, 0x66, 0x66, 0x6C,
-               0x73, 0x74, 0x73, 0x74, 0xD5, 0xB4, 0xD5, 0xB6,
-               0xD5, 0xB4, 0xD5, 0xA5, 0xD5, 0xB4, 0xD5, 0xAB,
-               0xD5, 0xBE, 0xD5, 0xB6, 0xD5, 0xB4, 0xD5, 0xAD,
-               0xF6, 0xD7, 0x99, 0xD6, 0xB4, 0xF6, 0xD7, 0xB2,
-               0xD6, 0xB7, 0xD7, 0xA2, 0xD7, 0x90, 0xD7, 0x93,
-               0xD7, 0x94, 0xD7, 0x9B, 0xD7, 0x9C, 0xD7, 0x9D,
-               0xD7, 0xA8, 0xD7, 0xAA, 0x2B, 0xF6, 0xD7, 0xA9,
-               0xD7, 0x81, 0xF6, 0xD7, 0xA9, 0xD7, 0x82, 0xF6,
-               0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0xF6, 0xD7,
-               0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0xF6, 0xD7, 0x90,
-               0xD6, 0xB7, 0xF6, 0xD7, 0x90, 0xD6, 0xB8, 0xF6,
-               0xD7, 0x90, 0xD6, 0xBC, 0xF6, 0xD7, 0x91, 0xD6,
-               0xBC, 0xF6, 0xD7, 0x92, 0xD6, 0xBC, 0xF6, 0xD7,
-               0x93, 0xD6, 0xBC, 0xF6, 0xD7, 0x94, 0xD6, 0xBC,
-               0xF6, 0xD7, 0x95, 0xD6, 0xBC, 0xF6, 0xD7, 0x96,
-               0xD6, 0xBC, 0xF6, 0xD7, 0x98, 0xD6, 0xBC, 0xF6,
-               0xD7, 0x99, 0xD6, 0xBC, 0xF6, 0xD7, 0x9A, 0xD6,
-               0xBC, 0xF6, 0xD7, 0x9B, 0xD6, 0xBC, 0xF6, 0xD7,
-               0x9C, 0xD6, 0xBC, 0xF6, 0xD7, 0x9E, 0xD6, 0xBC,
-               0xF6, 0xD7, 0xA0, 0xD6, 0xBC, 0xF6, 0xD7, 0xA1,
-               0xD6, 0xBC, 0xF6, 0xD7, 0xA3, 0xD6, 0xBC, 0xF6,
-               0xD7, 0xA4, 0xD6, 0xBC, 0xF6, 0xD7, 0xA6, 0xD6,
-               0xBC, 0xF6, 0xD7, 0xA7, 0xD6, 0xBC, 0xF6, 0xD7,
-               0xA8, 0xD6, 0xBC, 0xF6, 0xD7, 0xA9, 0xD6, 0xBC,
-               0xF6, 0xD7, 0xAA, 0xD6, 0xBC, 0xF6, 0xD7, 0x95,
-               0xD6, 0xB9, 0xF6, 0xD7, 0x91, 0xD6, 0xBF, 0xF6,
-               0xD7, 0x9B, 0xD6, 0xBF, 0xF6, 0xD7, 0xA4, 0xD6,
-               0xBF, 0xD7, 0x90, 0xD7, 0x9C, 0xD9, 0xB1, 0xD9,
-               0xB1, 0xD9, 0xBB, 0xD9, 0xBB, 0xD9, 0xBB, 0xD9,
-               0xBB, 0xD9, 0xBE, 0xD9, 0xBE, 0xD9, 0xBE, 0xD9,
-               0xBE, 0xDA, 0x80, 0xDA, 0x80, 0xDA, 0x80, 0xDA,
-               0x80, 0xD9, 0xBA, 0xD9, 0xBA, 0xD9, 0xBA, 0xD9,
-               0xBA, 0xD9, 0xBF, 0xD9, 0xBF, 0xD9, 0xBF, 0xD9,
-               0xBF, 0xD9, 0xB9, 0xD9, 0xB9, 0xD9, 0xB9, 0xD9,
-               0xB9, 0xDA, 0xA4, 0xDA, 0xA4, 0xDA, 0xA4, 0xDA,
-               0xA4, 0xDA, 0xA6, 0xDA, 0xA6, 0xDA, 0xA6, 0xDA,
-               0xA6, 0xDA, 0x84, 0xDA, 0x84, 0xDA, 0x84, 0xDA,
-               0x84, 0xDA, 0x83, 0xDA, 0x83, 0xDA, 0x83, 0xDA,
-               0x83, 0xDA, 0x86, 0xDA, 0x86, 0xDA, 0x86, 0xDA,
-               0x86, 0xDA, 0x87, 0xDA, 0x87, 0xDA, 0x87, 0xDA,
-               0x87, 0xDA, 0x8D, 0xDA, 0x8D, 0xDA, 0x8C, 0xDA,
-               0x8C, 0xDA, 0x8E, 0xDA, 0x8E, 0xDA, 0x88, 0xDA,
-               0x88, 0xDA, 0x98, 0xDA, 0x98, 0xDA, 0x91, 0xDA,
-               0x91, 0xDA, 0xA9, 0xDA, 0xA9, 0xDA, 0xA9, 0xDA,
-               0xA9, 0xDA, 0xAF, 0xDA, 0xAF, 0xDA, 0xAF, 0xDA,
-               0xAF, 0xDA, 0xB3, 0xDA, 0xB3, 0xDA, 0xB3, 0xDA,
-               0xB3, 0xDA, 0xB1, 0xDA, 0xB1, 0xDA, 0xB1, 0xDA,
-               0xB1, 0xDA, 0xBA, 0xDA, 0xBA, 0xDA, 0xBB, 0xDA,
-               0xBB, 0xDA, 0xBB, 0xDA, 0xBB, 0xDB, 0x95, 0xD9,
-               0x94, 0xDB, 0x95, 0xD9, 0x94, 0xDB, 0x81, 0xDB,
-               0x81, 0xDB, 0x81, 0xDB, 0x81, 0xDA, 0xBE, 0xDA,
-               0xBE, 0xDA, 0xBE, 0xDA, 0xBE, 0xDB, 0x92, 0xDB,
-               0x92, 0xDB, 0x92, 0xD9, 0x94, 0xDB, 0x92, 0xD9,
-               0x94, 0xDA, 0xAD, 0xDA, 0xAD, 0xDA, 0xAD, 0xDA,
-               0xAD, 0xDB, 0x87, 0xDB, 0x87, 0xDB, 0x86, 0xDB,
-               0x86, 0xDB, 0x88, 0xDB, 0x88, 0xDB, 0x87, 0xD9,
-               0xB4, 0xDB, 0x8B, 0xDB, 0x8B, 0xDB, 0x85, 0xDB,
-               0x85, 0xDB, 0x89, 0xDB, 0x89, 0xDB, 0x90, 0xDB,
-               0x90, 0xDB, 0x90, 0xDB, 0x90, 0xD9, 0x89, 0xD9,
-               0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9,
-               0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x8A, 0xD9,
-               0x94, 0xDB, 0x95, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
-               0x95, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0xD9,
-               0x8A, 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x8A, 0xD9,
-               0x94, 0xDB, 0x87, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
-               0x87, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0xD9,
-               0x8A, 0xD9, 0x94, 0xDB, 0x86, 0xD9, 0x8A, 0xD9,
-               0x94, 0xDB, 0x88, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
-               0x88, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0xD9,
-               0x8A, 0xD9, 0x94, 0xDB, 0x90, 0xD9, 0x8A, 0xD9,
-               0x94, 0xDB, 0x90, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
-               0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xD9,
-               0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xDB, 0x8C, 0xDB,
-               0x8C, 0xDB, 0x8C, 0xDB, 0x8C, 0xD9, 0x8A, 0xD9,
-               0x94, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
-               0xAD, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9,
-               0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xD9, 0x8A, 0xD9,
-               0x94, 0xD9, 0x8A, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8,
-               0xA8, 0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8,
-               0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x89, 0xD8,
-               0xA8, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD8,
-               0xAA, 0xD8, 0xAD, 0xD8, 0xAA, 0xD8, 0xAE, 0xD8,
-               0xAA, 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x89, 0xD8,
-               0xAA, 0xD9, 0x8A, 0xD8, 0xAB, 0xD8, 0xAC, 0xD8,
-               0xAB, 0xD9, 0x85, 0xD8, 0xAB, 0xD9, 0x89, 0xD8,
-               0xAB, 0xD9, 0x8A, 0xD8, 0xAC, 0xD8, 0xAD, 0xD8,
-               0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8,
-               0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD8,
-               0xAE, 0xD8, 0xAD, 0xD8, 0xAE, 0xD9, 0x85, 0xD8,
-               0xB3, 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,
-               0xB3, 0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,
-               0xB5, 0xD8, 0xAD, 0xD8, 0xB5, 0xD9, 0x85, 0xD8,
-               0xB6, 0xD8, 0xAC, 0xD8, 0xB6, 0xD8, 0xAD, 0xD8,
-               0xB6, 0xD8, 0xAE, 0xD8, 0xB6, 0xD9, 0x85, 0xD8,
-               0xB7, 0xD8, 0xAD, 0xD8, 0xB7, 0xD9, 0x85, 0xD8,
-               0xB8, 0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8,
-               0xB9, 0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8,
-               0xBA, 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9,
-               0x81, 0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9,
-               0x81, 0xD9, 0x85, 0xD9, 0x81, 0xD9, 0x89, 0xD9,
-               0x81, 0xD9, 0x8A, 0xD9, 0x82, 0xD8, 0xAD, 0xD9,
-               0x82, 0xD9, 0x85, 0xD9, 0x82, 0xD9, 0x89, 0xD9,
-               0x82, 0xD9, 0x8A, 0xD9, 0x83, 0xD8, 0xA7, 0xD9,
-               0x83, 0xD8, 0xAC, 0xD9, 0x83, 0xD8, 0xAD, 0xD9,
-               0x83, 0xD8, 0xAE, 0xD9, 0x83, 0xD9, 0x84, 0xD9,
-               0x83, 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x89, 0xD9,
-               0x83, 0xD9, 0x8A, 0xD9, 0x84, 0xD8, 0xAC, 0xD9,
-               0x84, 0xD8, 0xAD, 0xD9, 0x84, 0xD8, 0xAE, 0xD9,
-               0x84, 0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x89, 0xD9,
-               0x84, 0xD9, 0x8A, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
-               0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9,
-               0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x89, 0xD9,
-               0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
-               0x86, 0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9,
-               0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x89, 0xD9,
-               0x86, 0xD9, 0x8A, 0xD9, 0x87, 0xD8, 0xAC, 0xD9,
-               0x87, 0xD9, 0x85, 0xD9, 0x87, 0xD9, 0x89, 0xD9,
-               0x87, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9,
-               0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9,
-               0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x89, 0xD9,
-               0x8A, 0xD9, 0x8A, 0xD8, 0xB0, 0xD9, 0xB0, 0xD8,
-               0xB1, 0xD9, 0xB0, 0xD9, 0x89, 0xD9, 0xB0, 0x20,
-               0xD9, 0x8C, 0xD9, 0x91, 0x20, 0xD9, 0x8D, 0xD9,
-               0x91, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x20, 0xD9,
-               0x8F, 0xD9, 0x91, 0x20, 0xD9, 0x90, 0xD9, 0x91,
-               0x20, 0xD9, 0x91, 0xD9, 0xB0, 0xD9, 0x8A, 0xD9,
-               0x94, 0xD8, 0xB1, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
-               0xB2, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9,
-               0x8A, 0xD9, 0x94, 0xD9, 0x86, 0xD9, 0x8A, 0xD9,
-               0x94, 0xD9, 0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
-               0x8A, 0xD8, 0xA8, 0xD8, 0xB1, 0xD8, 0xA8, 0xD8,
-               0xB2, 0xD8, 0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9,
-               0x86, 0xD8, 0xA8, 0xD9, 0x89, 0xD8, 0xA8, 0xD9,
-               0x8A, 0xD8, 0xAA, 0xD8, 0xB1, 0xD8, 0xAA, 0xD8,
-               0xB2, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA, 0xD9,
-               0x86, 0xD8, 0xAA, 0xD9, 0x89, 0xD8, 0xAA, 0xD9,
-               0x8A, 0xD8, 0xAB, 0xD8, 0xB1, 0xD8, 0xAB, 0xD8,
-               0xB2, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAB, 0xD9,
-               0x86, 0xD8, 0xAB, 0xD9, 0x89, 0xD8, 0xAB, 0xD9,
-               0x8A, 0xD9, 0x81, 0xD9, 0x89, 0xD9, 0x81, 0xD9,
-               0x8A, 0xD9, 0x82, 0xD9, 0x89, 0xD9, 0x82, 0xD9,
-               0x8A, 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x83, 0xD9,
-               0x84, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x83, 0xD9,
-               0x89, 0xD9, 0x83, 0xD9, 0x8A, 0xD9, 0x84, 0xD9,
-               0x85, 0xD9, 0x84, 0xD9, 0x89, 0xD9, 0x84, 0xD9,
-               0x8A, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x85, 0xD9,
-               0x85, 0xD9, 0x86, 0xD8, 0xB1, 0xD9, 0x86, 0xD8,
-               0xB2, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9,
-               0x86, 0xD9, 0x86, 0xD9, 0x89, 0xD9, 0x86, 0xD9,
-               0x8A, 0xD9, 0x89, 0xD9, 0xB0, 0xD9, 0x8A, 0xD8,
-               0xB1, 0xD9, 0x8A, 0xD8, 0xB2, 0xD9, 0x8A, 0xD9,
-               0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x8A, 0xD9,
-               0x89, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9,
-               0x94, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
-               0xAD, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0xD9,
-               0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9,
-               0x94, 0xD9, 0x87, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8,
-               0xA8, 0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8,
-               0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x87, 0xD8,
-               0xAA, 0xD8, 0xAC, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8,
-               0xAA, 0xD8, 0xAE, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,
-               0xAA, 0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8,
-               0xAC, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
-               0xAD, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x85, 0xD8,
-               0xAE, 0xD8, 0xAC, 0xD8, 0xAE, 0xD9, 0x85, 0xD8,
-               0xB3, 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,
-               0xB3, 0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,
-               0xB5, 0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAE, 0xD8,
-               0xB5, 0xD9, 0x85, 0xD8, 0xB6, 0xD8, 0xAC, 0xD8,
-               0xB6, 0xD8, 0xAD, 0xD8, 0xB6, 0xD8, 0xAE, 0xD8,
-               0xB6, 0xD9, 0x85, 0xD8, 0xB7, 0xD8, 0xAD, 0xD8,
-               0xB8, 0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8,
-               0xB9, 0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8,
-               0xBA, 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9,
-               0x81, 0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9,
-               0x81, 0xD9, 0x85, 0xD9, 0x82, 0xD8, 0xAD, 0xD9,
-               0x82, 0xD9, 0x85, 0xD9, 0x83, 0xD8, 0xAC, 0xD9,
-               0x83, 0xD8, 0xAD, 0xD9, 0x83, 0xD8, 0xAE, 0xD9,
-               0x83, 0xD9, 0x84, 0xD9, 0x83, 0xD9, 0x85, 0xD9,
-               0x84, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
-               0x84, 0xD8, 0xAE, 0xD9, 0x84, 0xD9, 0x85, 0xD9,
-               0x84, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
-               0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9,
-               0x85, 0xD9, 0x85, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
-               0x86, 0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9,
-               0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9,
-               0x87, 0xD8, 0xAC, 0xD9, 0x87, 0xD9, 0x85, 0xD9,
-               0x87, 0xD9, 0xB0, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9,
-               0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9,
-               0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9,
-               0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9,
-               0x94, 0xD9, 0x87, 0xD8, 0xA8, 0xD9, 0x85, 0xD8,
-               0xA8, 0xD9, 0x87, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,
-               0xAA, 0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8,
-               0xAB, 0xD9, 0x87, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,
-               0xB3, 0xD9, 0x87, 0xD8, 0xB4, 0xD9, 0x85, 0xD8,
-               0xB4, 0xD9, 0x87, 0xD9, 0x83, 0xD9, 0x84, 0xD9,
-               0x83, 0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x85, 0xD9,
-               0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9,
-               0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9,
-               0x80, 0xD9, 0x8E, 0xD9, 0x91, 0xD9, 0x80, 0xD9,
-               0x8F, 0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x90, 0xD9,
-               0x91, 0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9,
-               0x8A, 0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9,
-               0x8A, 0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9,
-               0x8A, 0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9,
-               0x8A, 0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9,
-               0x8A, 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9,
-               0x8A, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9,
-               0x8A, 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9,
-               0x8A, 0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9,
-               0x8A, 0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9,
-               0x8A, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8,
-               0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9,
-               0x85, 0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8,
-               0xB1, 0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8,
-               0xB1, 0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9,
-               0x8A, 0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9,
-               0x8A, 0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9,
-               0x8A, 0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9,
-               0x8A, 0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9,
-               0x8A, 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9,
-               0x8A, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9,
-               0x8A, 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9,
-               0x8A, 0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9,
-               0x8A, 0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9,
-               0x8A, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8,
-               0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9,
-               0x85, 0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8,
-               0xB1, 0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8,
-               0xB1, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8,
-               0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9,
-               0x85, 0xD8, 0xB3, 0xD9, 0x87, 0xD8, 0xB4, 0xD9,
-               0x87, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xB3, 0xD8,
-               0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3, 0xD8,
-               0xAE, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8,
-               0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB7, 0xD9,
-               0x85, 0xD8, 0xB8, 0xD9, 0x85, 0xD8, 0xA7, 0xD9,
-               0x8B, 0xD8, 0xA7, 0xD9, 0x8B, 0xD8, 0xAA, 0xD8,
-               0xAC, 0xD9, 0x85, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8,
-               0xAC, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8,
-               0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAA, 0xD8,
-               0xAE, 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,
-               0xAC, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0xD8,
-               0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9,
-               0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
-               0xAD, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0xD8,
-               0xAD, 0xD9, 0x85, 0xD9, 0x89, 0xD8, 0xB3, 0xD8,
-               0xAD, 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8,
-               0xAD, 0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0xD8,
-               0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xB3, 0xD9,
-               0x85, 0xD8, 0xAD, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,
-               0xAC, 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0xD8,
-               0xB3, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB5, 0xD8,
-               0xAD, 0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8,
-               0xAD, 0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0xD8,
-               0xB4, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB4, 0xD8,
-               0xAD, 0xD9, 0x85, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9,
-               0x8A, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0xD8,
-               0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9,
-               0x85, 0xD9, 0x85, 0xD8, 0xB4, 0xD9, 0x85, 0xD9,
-               0x85, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0xD8,
-               0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB6, 0xD8,
-               0xAE, 0xD9, 0x85, 0xD8, 0xB7, 0xD9, 0x85, 0xD8,
-               0xAD, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0xD8,
-               0xB7, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB7, 0xD9,
-               0x85, 0xD9, 0x8A, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9,
-               0x85, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0xD8,
-               0xB9, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB9, 0xD9,
-               0x85, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x85, 0xD9,
-               0x85, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0xD8,
-               0xBA, 0xD9, 0x85, 0xD9, 0x89, 0xD9, 0x81, 0xD8,
-               0xAE, 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAE, 0xD9,
-               0x85, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9,
-               0x82, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x84, 0xD8,
-               0xAD, 0xD9, 0x85, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
-               0x8A, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0xD9,
-               0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0xD9, 0x84, 0xD8,
-               0xAC, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAE, 0xD9,
-               0x85, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0xD9,
-               0x84, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x84, 0xD9,
-               0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAD, 0xD8,
-               0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD9,
-               0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0xD9, 0x85, 0xD8,
-               0xAC, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
-               0x85, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9,
-               0x85, 0xD8, 0xAE, 0xD9, 0x85, 0xD9, 0x85, 0xD8,
-               0xAC, 0xD8, 0xAE, 0xD9, 0x87, 0xD9, 0x85, 0xD8,
-               0xAC, 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
-               0x86, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x86, 0xD8,
-               0xAD, 0xD9, 0x89, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
-               0x85, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0xD9,
-               0x86, 0xD8, 0xAC, 0xD9, 0x89, 0xD9, 0x86, 0xD9,
-               0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x85, 0xD9,
-               0x89, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
-               0x8A, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xA8, 0xD8,
-               0xAE, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9,
-               0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0xD8,
-               0xAA, 0xD8, 0xAE, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8,
-               0xAE, 0xD9, 0x89, 0xD8, 0xAA, 0xD9, 0x85, 0xD9,
-               0x8A, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0xD8,
-               0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xAC, 0xD8,
-               0xAD, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x85, 0xD9,
-               0x89, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0xD8,
-               0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xB4, 0xD8,
-               0xAD, 0xD9, 0x8A, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,
-               0x8A, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9,
-               0x84, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8,
-               0xAD, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9,
-               0x8A, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9,
-               0x85, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x82, 0xD9,
-               0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAD, 0xD9,
-               0x8A, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9,
-               0x84, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB9, 0xD9,
-               0x85, 0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9,
-               0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9,
-               0x85, 0xD8, 0xAE, 0xD9, 0x8A, 0xD9, 0x84, 0xD8,
-               0xAC, 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x85, 0xD9,
-               0x85, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0xD9,
-               0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8,
-               0xAD, 0xD9, 0x8A, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9,
-               0x8A, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9,
-               0x81, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xA8, 0xD8,
-               0xAD, 0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9,
-               0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
-               0xB5, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB3, 0xD8,
-               0xAE, 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
-               0x8A, 0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0xD9,
-               0x82, 0xD9, 0x84, 0xDB, 0x92, 0xD8, 0xA7, 0xD9,
-               0x84, 0xD9, 0x84, 0xD9, 0x87, 0xD8, 0xA7, 0xD9,
-               0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0xD9, 0x85, 0xD8,
-               0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0xD8, 0xB5, 0xD9,
-               0x84, 0xD8, 0xB9, 0xD9, 0x85, 0xD8, 0xB1, 0xD8,
-               0xB3, 0xD9, 0x88, 0xD9, 0x84, 0xD8, 0xB9, 0xD9,
-               0x84, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x88, 0xD8,
-               0xB3, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xB5, 0xD9,
-               0x84, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x84, 0xD9,
-               0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84,
-               0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9,
-               0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3,
-               0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x84,
-               0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9,
-               0x84, 0xD9, 0x87, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8,
-               0xA7, 0xD9, 0x84, 0x2C, 0xE3, 0x80, 0x81, 0xE3,
-               0x80, 0x82, 0x3A, 0x3B, 0x21, 0x3F, 0xE3, 0x80,
-               0x96, 0xE3, 0x80, 0x97, 0x2E, 0x2E, 0x2E, 0x2E,
-               0x2E, 0xE2, 0x80, 0x94, 0xE2, 0x80, 0x93, 0x5F,
-               0x5F, 0x28, 0x29, 0x7B, 0x7D, 0xE3, 0x80, 0x94,
-               0xE3, 0x80, 0x95, 0xE3, 0x80, 0x90, 0xE3, 0x80,
-               0x91, 0xE3, 0x80, 0x8A, 0xE3, 0x80, 0x8B, 0xE3,
-               0x80, 0x88, 0xE3, 0x80, 0x89, 0xE3, 0x80, 0x8C,
-               0xE3, 0x80, 0x8D, 0xE3, 0x80, 0x8E, 0xE3, 0x80,
-               0x8F, 0x5B, 0x5D, 0x20, 0xCC, 0x85, 0x20, 0xCC,
-               0x85, 0x20, 0xCC, 0x85, 0x20, 0xCC, 0x85, 0x5F,
-               0x5F, 0x5F, 0x2C, 0xE3, 0x80, 0x81, 0x2E, 0x3B,
-               0x3A, 0x3F, 0x21, 0xE2, 0x80, 0x94, 0x28, 0x29,
-               0x7B, 0x7D, 0xE3, 0x80, 0x94, 0xE3, 0x80, 0x95,
-               0x23, 0x26, 0x2A, 0x2B, 0x2D, 0x3C, 0x3E, 0x3D,
-               0x5C, 0x24, 0x25, 0x40, 0x20, 0xD9, 0x8B, 0xD9,
-               0x80, 0xD9, 0x8B, 0x20, 0xD9, 0x8C, 0x20, 0xD9,
-               0x8D, 0x20, 0xD9, 0x8E, 0xD9, 0x80, 0xD9, 0x8E,
-               0x20, 0xD9, 0x8F, 0xD9, 0x80, 0xD9, 0x8F, 0x20,
-               0xD9, 0x90, 0xD9, 0x80, 0xD9, 0x90, 0x20, 0xD9,
-               0x91, 0xD9, 0x80, 0xD9, 0x91, 0x20, 0xD9, 0x92,
-               0xD9, 0x80, 0xD9, 0x92, 0xD8, 0xA1, 0xD8, 0xA7,
-               0xD9, 0x93, 0xD8, 0xA7, 0xD9, 0x93, 0xD8, 0xA7,
-               0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x94, 0xD9, 0x88,
-               0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x94, 0xD8, 0xA7,
-               0xD9, 0x95, 0xD8, 0xA7, 0xD9, 0x95, 0xD9, 0x8A,
-               0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A,
-               0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7,
-               0xD8, 0xA7, 0xD8, 0xA8, 0xD8, 0xA8, 0xD8, 0xA8,
-               0xD8, 0xA8, 0xD8, 0xA9, 0xD8, 0xA9, 0xD8, 0xAA,
-               0xD8, 0xAA, 0xD8, 0xAA, 0xD8, 0xAA, 0xD8, 0xAB,
-               0xD8, 0xAB, 0xD8, 0xAB, 0xD8, 0xAB, 0xD8, 0xAC,
-               0xD8, 0xAC, 0xD8, 0xAC, 0xD8, 0xAC, 0xD8, 0xAD,
-               0xD8, 0xAD, 0xD8, 0xAD, 0xD8, 0xAD, 0xD8, 0xAE,
-               0xD8, 0xAE, 0xD8, 0xAE, 0xD8, 0xAE, 0xD8, 0xAF,
-               0xD8, 0xAF, 0xD8, 0xB0, 0xD8, 0xB0, 0xD8, 0xB1,
-               0xD8, 0xB1, 0xD8, 0xB2, 0xD8, 0xB2, 0xD8, 0xB3,
-               0xD8, 0xB3, 0xD8, 0xB3, 0xD8, 0xB3, 0xD8, 0xB4,
-               0xD8, 0xB4, 0xD8, 0xB4, 0xD8, 0xB4, 0xD8, 0xB5,
-               0xD8, 0xB5, 0xD8, 0xB5, 0xD8, 0xB5, 0xD8, 0xB6,
-               0xD8, 0xB6, 0xD8, 0xB6, 0xD8, 0xB6, 0xD8, 0xB7,
-               0xD8, 0xB7, 0xD8, 0xB7, 0xD8, 0xB7, 0xD8, 0xB8,
-               0xD8, 0xB8, 0xD8, 0xB8, 0xD8, 0xB8, 0xD8, 0xB9,
-               0xD8, 0xB9, 0xD8, 0xB9, 0xD8, 0xB9, 0xD8, 0xBA,
-               0xD8, 0xBA, 0xD8, 0xBA, 0xD8, 0xBA, 0xD9, 0x81,
-               0xD9, 0x81, 0xD9, 0x81, 0xD9, 0x81, 0xD9, 0x82,
-               0xD9, 0x82, 0xD9, 0x82, 0xD9, 0x82, 0xD9, 0x83,
-               0xD9, 0x83, 0xD9, 0x83, 0xD9, 0x83, 0xD9, 0x84,
-               0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x85,
-               0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x86,
-               0xD9, 0x86, 0xD9, 0x86, 0xD9, 0x86, 0xD9, 0x87,
-               0xD9, 0x87, 0xD9, 0x87, 0xD9, 0x87, 0xD9, 0x88,
-               0xD9, 0x88, 0xD9, 0x89, 0xD9, 0x89, 0xD9, 0x8A,
-               0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x84,
-               0xD8, 0xA7, 0xD9, 0x93, 0xD9, 0x84, 0xD8, 0xA7,
-               0xD9, 0x93, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94,
-               0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xD9, 0x84,
-               0xD8, 0xA7, 0xD9, 0x95, 0xD9, 0x84, 0xD8, 0xA7,
-               0xD9, 0x95, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84,
-               0xD8, 0xA7, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26,
-               0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
-               0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
-               0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E,
-               0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
-               0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
-               0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56,
-               0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E,
-               0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
-               0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E,
-               0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
-               0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E,
-               0xE2, 0xA6, 0x85, 0xE2, 0xA6, 0x86, 0xE3, 0x80,
-               0x82, 0xE3, 0x80, 0x8C, 0xE3, 0x80, 0x8D, 0xE3,
-               0x80, 0x81, 0xE3, 0x83, 0xBB, 0xE3, 0x83, 0xB2,
-               0xE3, 0x82, 0xA1, 0xE3, 0x82, 0xA3, 0xE3, 0x82,
-               0xA5, 0xE3, 0x82, 0xA7, 0xE3, 0x82, 0xA9, 0xE3,
-               0x83, 0xA3, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xA7,
-               0xE3, 0x83, 0x83, 0xE3, 0x83, 0xBC, 0xE3, 0x82,
-               0xA2, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xA6, 0xE3,
-               0x82, 0xA8, 0xE3, 0x82, 0xAA, 0xE3, 0x82, 0xAB,
-               0xE3, 0x82, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82,
-               0xB1, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB5, 0xE3,
-               0x82, 0xB7, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xBB,
-               0xE3, 0x82, 0xBD, 0xE3, 0x82, 0xBF, 0xE3, 0x83,
-               0x81, 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x86, 0xE3,
-               0x83, 0x88, 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8B,
-               0xE3, 0x83, 0x8C, 0xE3, 0x83, 0x8D, 0xE3, 0x83,
-               0x8E, 0xE3, 0x83, 0x8F, 0xE3, 0x83, 0x92, 0xE3,
-               0x83, 0x95, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0x9B,
-               0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x9F, 0xE3, 0x83,
-               0xA0, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xA2, 0xE3,
-               0x83, 0xA4, 0xE3, 0x83, 0xA6, 0xE3, 0x83, 0xA8,
-               0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xAA, 0xE3, 0x83,
-               0xAB, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAD, 0xE3,
-               0x83, 0xAF, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0x99,
-               0xE3, 0x82, 0x9A, 0xE1, 0x85, 0xA0, 0xE1, 0x84,
-               0x80, 0xE1, 0x84, 0x81, 0xE1, 0x86, 0xAA, 0xE1,
-               0x84, 0x82, 0xE1, 0x86, 0xAC, 0xE1, 0x86, 0xAD,
-               0xE1, 0x84, 0x83, 0xE1, 0x84, 0x84, 0xE1, 0x84,
-               0x85, 0xE1, 0x86, 0xB0, 0xE1, 0x86, 0xB1, 0xE1,
-               0x86, 0xB2, 0xE1, 0x86, 0xB3, 0xE1, 0x86, 0xB4,
-               0xE1, 0x86, 0xB5, 0xE1, 0x84, 0x9A, 0xE1, 0x84,
-               0x86, 0xE1, 0x84, 0x87, 0xE1, 0x84, 0x88, 0xE1,
-               0x84, 0xA1, 0xE1, 0x84, 0x89, 0xE1, 0x84, 0x8A,
-               0xE1, 0x84, 0x8B, 0xE1, 0x84, 0x8C, 0xE1, 0x84,
-               0x8D, 0xE1, 0x84, 0x8E, 0xE1, 0x84, 0x8F, 0xE1,
-               0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1, 0x84, 0x92,
-               0xE1, 0x85, 0xA1, 0xE1, 0x85, 0xA2, 0xE1, 0x85,
-               0xA3, 0xE1, 0x85, 0xA4, 0xE1, 0x85, 0xA5, 0xE1,
-               0x85, 0xA6, 0xE1, 0x85, 0xA7, 0xE1, 0x85, 0xA8,
-               0xE1, 0x85, 0xA9, 0xE1, 0x85, 0xAA, 0xE1, 0x85,
-               0xAB, 0xE1, 0x85, 0xAC, 0xE1, 0x85, 0xAD, 0xE1,
-               0x85, 0xAE, 0xE1, 0x85, 0xAF, 0xE1, 0x85, 0xB0,
-               0xE1, 0x85, 0xB1, 0xE1, 0x85, 0xB2, 0xE1, 0x85,
-               0xB3, 0xE1, 0x85, 0xB4, 0xE1, 0x85, 0xB5, 0xC2,
-               0xA2, 0xC2, 0xA3, 0xC2, 0xAC, 0x20, 0xCC, 0x84,
-               0xC2, 0xA6, 0xC2, 0xA5, 0xE2, 0x82, 0xA9, 0xE2,
-               0x94, 0x82, 0xE2, 0x86, 0x90, 0xE2, 0x86, 0x91,
-               0xE2, 0x86, 0x92, 0xE2, 0x86, 0x93, 0xE2, 0x96,
-               0xA0, 0xE2, 0x97, 0x8B, 0xF6, 0xF0, 0x9D, 0x85,
-               0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xF6, 0xF0, 0x9D,
-               0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF6, 0xF0,
-               0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
-               0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x85, 0x98,
-               0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF,
-               0xF6, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
-               0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xF6, 0xF0, 0x9D,
-               0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,
-               0x85, 0xB1, 0xF6, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
-               0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xF6,
-               0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,
-               0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85,
-               0xA5, 0xF6, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,
-               0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xF6, 0xF0,
-               0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
-               0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x86, 0xB9,
-               0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF,
-               0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85,
-               0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0x41, 0x42, 0x43,
-               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
-               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
-               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E,
-               0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
-               0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44,
-               0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C,
-               0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54,
-               0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, 0x62,
-               0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A,
-               0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72,
-               0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A,
-               0x41, 0x43, 0x44, 0x47, 0x4A, 0x4B, 0x4E, 0x4F,
-               0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
-               0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x66, 0x68,
-               0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44,
-               0x45, 0x46, 0x47, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
-               0x4F, 0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
-               0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E,
-               0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
-               0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44, 0x45,
-               0x46, 0x47, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4F,
-               0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
-               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
-               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
-               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
-               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
-               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
-               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
-               0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
-               0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
-               0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65,
-               0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D,
-               0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
-               0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43,
-               0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B,
-               0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53,
-               0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61,
-               0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
-               0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71,
-               0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
-               0x7A, 0xC4, 0xB1, 0xC8, 0xB7, 0xCE, 0x91, 0xCE,
-               0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE,
-               0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE,
-               0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE,
-               0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE,
-               0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE,
-               0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2,
-               0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3,
-               0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7,
-               0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB,
-               0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF,
-               0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83,
-               0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87,
-               0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE,
-               0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF,
-               0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE,
-               0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE,
-               0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE,
-               0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE,
-               0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE,
-               0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE,
-               0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87,
-               0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4,
-               0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8,
-               0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC,
-               0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80,
-               0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84,
-               0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88,
-               0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE,
-               0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF,
-               0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE,
-               0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE,
-               0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE,
-               0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE,
-               0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE,
-               0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE,
-               0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1,
-               0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5,
-               0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9,
-               0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD,
-               0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81,
-               0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85,
-               0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89,
-               0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE,
-               0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE,
-               0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE,
-               0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE,
-               0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE,
-               0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE,
-               0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE,
-               0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE,
-               0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2,
-               0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6,
-               0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA,
-               0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE,
-               0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82,
-               0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86,
-               0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88,
-               0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF,
-               0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE,
-               0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE,
-               0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE,
-               0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE,
-               0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE,
-               0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE,
-               0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2,
-               0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3,
-               0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7,
-               0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB,
-               0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF,
-               0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83,
-               0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87,
-               0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE,
-               0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF,
-               0x81, 0xCF, 0x80, 0xCF, 0x9C, 0xCF, 0x9D, 0x30,
-               0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
-               0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
-               0x37, 0x38, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34,
-               0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x31, 0x32,
-               0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30,
-               0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
-               0x39, 0xF6, 0xE4, 0xB8, 0xBD, 0xF6, 0xE4, 0xB8,
-               0xB8, 0xF6, 0xE4, 0xB9, 0x81, 0xF6, 0xF0, 0xA0,
-               0x84, 0xA2, 0xF6, 0xE4, 0xBD, 0xA0, 0xF6, 0xE4,
-               0xBE, 0xAE, 0xF6, 0xE4, 0xBE, 0xBB, 0xF6, 0xE5,
-               0x80, 0x82, 0xF6, 0xE5, 0x81, 0xBA, 0xF6, 0xE5,
-               0x82, 0x99, 0xF6, 0xE5, 0x83, 0xA7, 0xF6, 0xE5,
-               0x83, 0x8F, 0xF6, 0xE3, 0x92, 0x9E, 0xF6, 0xF0,
-               0xA0, 0x98, 0xBA, 0xF6, 0xE5, 0x85, 0x8D, 0xF6,
-               0xE5, 0x85, 0x94, 0xF6, 0xE5, 0x85, 0xA4, 0xF6,
-               0xE5, 0x85, 0xB7, 0xF6, 0xF0, 0xA0, 0x94, 0x9C,
-               0xF6, 0xE3, 0x92, 0xB9, 0xF6, 0xE5, 0x85, 0xA7,
-               0xF6, 0xE5, 0x86, 0x8D, 0xF6, 0xF0, 0xA0, 0x95,
-               0x8B, 0xF6, 0xE5, 0x86, 0x97, 0xF6, 0xE5, 0x86,
-               0xA4, 0xF6, 0xE4, 0xBB, 0x8C, 0xF6, 0xE5, 0x86,
-               0xAC, 0xF6, 0xE5, 0x86, 0xB5, 0xF6, 0xF0, 0xA9,
-               0x87, 0x9F, 0xF6, 0xE5, 0x87, 0xB5, 0xF6, 0xE5,
-               0x88, 0x83, 0xF6, 0xE3, 0x93, 0x9F, 0xF6, 0xE5,
-               0x88, 0xBB, 0xF6, 0xE5, 0x89, 0x86, 0xF6, 0xE5,
-               0x89, 0xB2, 0xF6, 0xE5, 0x89, 0xB7, 0xF6, 0xE3,
-               0x94, 0x95, 0xF6, 0xE5, 0x8B, 0x87, 0xF6, 0xE5,
-               0x8B, 0x89, 0xF6, 0xE5, 0x8B, 0xA4, 0xF6, 0xE5,
-               0x8B, 0xBA, 0xF6, 0xE5, 0x8C, 0x85, 0xF6, 0xE5,
-               0x8C, 0x86, 0xF6, 0xE5, 0x8C, 0x97, 0xF6, 0xE5,
-               0x8D, 0x89, 0xF6, 0xE5, 0x8D, 0x91, 0xF6, 0xE5,
-               0x8D, 0x9A, 0xF6, 0xE5, 0x8D, 0xB3, 0xF6, 0xE5,
-               0x8D, 0xBD, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xE5,
-               0x8D, 0xBF, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xF0,
-               0xA0, 0xA8, 0xAC, 0xF6, 0xE7, 0x81, 0xB0, 0xF6,
-               0xE5, 0x8F, 0x8A, 0xF6, 0xE5, 0x8F, 0x9F, 0xF6,
-               0xF0, 0xA0, 0xAD, 0xA3, 0xF6, 0xE5, 0x8F, 0xAB,
-               0xF6, 0xE5, 0x8F, 0xB1, 0xF6, 0xE5, 0x90, 0x86,
-               0xF6, 0xE5, 0x92, 0x9E, 0xF6, 0xE5, 0x90, 0xB8,
-               0xF6, 0xE5, 0x91, 0x88, 0xF6, 0xE5, 0x91, 0xA8,
-               0xF6, 0xE5, 0x92, 0xA2, 0xF6, 0xE5, 0x93, 0xB6,
-               0xF6, 0xE5, 0x94, 0x90, 0xF6, 0xE5, 0x95, 0x93,
-               0xF6, 0xE5, 0x95, 0xA3, 0xF6, 0xE5, 0x96, 0x84,
-               0xF6, 0xE5, 0x96, 0x84, 0xF6, 0xE5, 0x96, 0x99,
-               0xF6, 0xE5, 0x96, 0xAB, 0xF6, 0xE5, 0x96, 0xB3,
-               0xF6, 0xE5, 0x97, 0x82, 0xF6, 0xE5, 0x9C, 0x96,
-               0xF6, 0xE5, 0x98, 0x86, 0xF6, 0xE5, 0x9C, 0x97,
-               0xF6, 0xE5, 0x99, 0x91, 0xF6, 0xE5, 0x99, 0xB4,
-               0xF6, 0xE5, 0x88, 0x87, 0xF6, 0xE5, 0xA3, 0xAE,
-               0xF6, 0xE5, 0x9F, 0x8E, 0xF6, 0xE5, 0x9F, 0xB4,
-               0xF6, 0xE5, 0xA0, 0x8D, 0xF6, 0xE5, 0x9E, 0x8B,
-               0xF6, 0xE5, 0xA0, 0xB2, 0xF6, 0xE5, 0xA0, 0xB1,
-               0xF6, 0xE5, 0xA2, 0xAC, 0xF6, 0xF0, 0xA1, 0x93,
-               0xA4, 0xF6, 0xE5, 0xA3, 0xB2, 0xF6, 0xE5, 0xA3,
-               0xB7, 0xF6, 0xE5, 0xA4, 0x86, 0xF6, 0xE5, 0xA4,
-               0x9A, 0xF6, 0xE5, 0xA4, 0xA2, 0xF6, 0xE5, 0xA5,
-               0xA2, 0xF6, 0xF0, 0xA1, 0x9A, 0xA8, 0xF6, 0xF0,
-               0xA1, 0x9B, 0xAA, 0xF6, 0xE5, 0xA7, 0xAC, 0xF6,
-               0xE5, 0xA8, 0x9B, 0xF6, 0xE5, 0xA8, 0xA7, 0xF6,
-               0xE5, 0xA7, 0x98, 0xF6, 0xE5, 0xA9, 0xA6, 0xF6,
-               0xE3, 0x9B, 0xAE, 0xF6, 0xE3, 0x9B, 0xBC, 0xF6,
-               0xE5, 0xAC, 0x88, 0xF6, 0xE5, 0xAC, 0xBE, 0xF6,
-               0xE5, 0xAC, 0xBE, 0xF6, 0xF0, 0xA1, 0xA7, 0x88,
-               0xF6, 0xE5, 0xAF, 0x83, 0xF6, 0xE5, 0xAF, 0x98,
-               0xF6, 0xE5, 0xAF, 0xA7, 0xF6, 0xE5, 0xAF, 0xB3,
-               0xF6, 0xF0, 0xA1, 0xAC, 0x98, 0xF6, 0xE5, 0xAF,
-               0xBF, 0xF6, 0xE5, 0xB0, 0x86, 0xF6, 0xE5, 0xBD,
-               0x93, 0xF6, 0xE5, 0xB0, 0xA2, 0xF6, 0xE3, 0x9E,
-               0x81, 0xF6, 0xE5, 0xB1, 0xA0, 0xF6, 0xE5, 0xB1,
-               0xAE, 0xF6, 0xE5, 0xB3, 0x80, 0xF6, 0xE5, 0xB2,
-               0x8D, 0xF6, 0xF0, 0xA1, 0xB7, 0xA4, 0xF6, 0xE5,
-               0xB5, 0x83, 0xF6, 0xF0, 0xA1, 0xB7, 0xA6, 0xF6,
-               0xE5, 0xB5, 0xAE, 0xF6, 0xE5, 0xB5, 0xAB, 0xF6,
-               0xE5, 0xB5, 0xBC, 0xF6, 0xE5, 0xB7, 0xA1, 0xF6,
-               0xE5, 0xB7, 0xA2, 0xF6, 0xE3, 0xA0, 0xAF, 0xF6,
-               0xE5, 0xB7, 0xBD, 0xF6, 0xE5, 0xB8, 0xA8, 0xF6,
-               0xE5, 0xB8, 0xBD, 0xF6, 0xE5, 0xB9, 0xA9, 0xF6,
-               0xE3, 0xA1, 0xA2, 0xF6, 0xF0, 0xA2, 0x86, 0x83,
-               0xF6, 0xE3, 0xA1, 0xBC, 0xF6, 0xE5, 0xBA, 0xB0,
-               0xF6, 0xE5, 0xBA, 0xB3, 0xF6, 0xE5, 0xBA, 0xB6,
-               0xF6, 0xE5, 0xBB, 0x8A, 0xF6, 0xF0, 0xAA, 0x8E,
-               0x92, 0xF6, 0xE5, 0xBB, 0xBE, 0xF6, 0xF0, 0xA2,
-               0x8C, 0xB1, 0xF6, 0xF0, 0xA2, 0x8C, 0xB1, 0xF6,
-               0xE8, 0x88, 0x81, 0xF6, 0xE5, 0xBC, 0xA2, 0xF6,
-               0xE5, 0xBC, 0xA2, 0xF6, 0xE3, 0xA3, 0x87, 0xF6,
-               0xF0, 0xA3, 0x8A, 0xB8, 0xF6, 0xF0, 0xA6, 0x87,
-               0x9A, 0xF6, 0xE5, 0xBD, 0xA2, 0xF6, 0xE5, 0xBD,
-               0xAB, 0xF6, 0xE3, 0xA3, 0xA3, 0xF6, 0xE5, 0xBE,
-               0x9A, 0xF6, 0xE5, 0xBF, 0x8D, 0xF6, 0xE5, 0xBF,
-               0x97, 0xF6, 0xE5, 0xBF, 0xB9, 0xF6, 0xE6, 0x82,
-               0x81, 0xF6, 0xE3, 0xA4, 0xBA, 0xF6, 0xE3, 0xA4,
-               0x9C, 0xF6, 0xE6, 0x82, 0x94, 0xF6, 0xF0, 0xA2,
-               0x9B, 0x94, 0xF6, 0xE6, 0x83, 0x87, 0xF6, 0xE6,
-               0x85, 0x88, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6,
-               0x85, 0x8E, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6,
-               0x85, 0xBA, 0xF6, 0xE6, 0x86, 0x8E, 0xF6, 0xE6,
-               0x86, 0xB2, 0xF6, 0xE6, 0x86, 0xA4, 0xF6, 0xE6,
-               0x86, 0xAF, 0xF6, 0xE6, 0x87, 0x9E, 0xF6, 0xE6,
-               0x87, 0xB2, 0xF6, 0xE6, 0x87, 0xB6, 0xF6, 0xE6,
-               0x88, 0x90, 0xF6, 0xE6, 0x88, 0x9B, 0xF6, 0xE6,
-               0x89, 0x9D, 0xF6, 0xE6, 0x8A, 0xB1, 0xF6, 0xE6,
-               0x8B, 0x94, 0xF6, 0xE6, 0x8D, 0x90, 0xF6, 0xF0,
-               0xA2, 0xAC, 0x8C, 0xF6, 0xE6, 0x8C, 0xBD, 0xF6,
-               0xE6, 0x8B, 0xBC, 0xF6, 0xE6, 0x8D, 0xA8, 0xF6,
-               0xE6, 0x8E, 0x83, 0xF6, 0xE6, 0x8F, 0xA4, 0xF6,
-               0xF0, 0xA2, 0xAF, 0xB1, 0xF6, 0xE6, 0x90, 0xA2,
-               0xF6, 0xE6, 0x8F, 0x85, 0xF6, 0xE6, 0x8E, 0xA9,
-               0xF6, 0xE3, 0xA8, 0xAE, 0xF6, 0xE6, 0x91, 0xA9,
-               0xF6, 0xE6, 0x91, 0xBE, 0xF6, 0xE6, 0x92, 0x9D,
-               0xF6, 0xE6, 0x91, 0xB7, 0xF6, 0xE3, 0xA9, 0xAC,
-               0xF6, 0xE6, 0x95, 0x8F, 0xF6, 0xE6, 0x95, 0xAC,
-               0xF6, 0xF0, 0xA3, 0x80, 0x8A, 0xF6, 0xE6, 0x97,
-               0xA3, 0xF6, 0xE6, 0x9B, 0xB8, 0xF6, 0xE6, 0x99,
-               0x89, 0xF6, 0xE3, 0xAC, 0x99, 0xF6, 0xE6, 0x9A,
-               0x91, 0xF6, 0xE3, 0xAC, 0x88, 0xF6, 0xE3, 0xAB,
-               0xA4, 0xF6, 0xE5, 0x86, 0x92, 0xF6, 0xE5, 0x86,
-               0x95, 0xF6, 0xE6, 0x9C, 0x80, 0xF6, 0xE6, 0x9A,
-               0x9C, 0xF6, 0xE8, 0x82, 0xAD, 0xF6, 0xE4, 0x8F,
-               0x99, 0xF6, 0xE6, 0x9C, 0x97, 0xF6, 0xE6, 0x9C,
-               0x9B, 0xF6, 0xE6, 0x9C, 0xA1, 0xF6, 0xE6, 0x9D,
-               0x9E, 0xF6, 0xE6, 0x9D, 0x93, 0xF6, 0xF0, 0xA3,
-               0x8F, 0x83, 0xF6, 0xE3, 0xAD, 0x89, 0xF6, 0xE6,
-               0x9F, 0xBA, 0xF6, 0xE6, 0x9E, 0x85, 0xF6, 0xE6,
-               0xA1, 0x92, 0xF6, 0xE6, 0xA2, 0x85, 0xF6, 0xF0,
-               0xA3, 0x91, 0xAD, 0xF6, 0xE6, 0xA2, 0x8E, 0xF6,
-               0xE6, 0xA0, 0x9F, 0xF6, 0xE6, 0xA4, 0x94, 0xF6,
-               0xE3, 0xAE, 0x9D, 0xF6, 0xE6, 0xA5, 0x82, 0xF6,
-               0xE6, 0xA6, 0xA3, 0xF6, 0xE6, 0xA7, 0xAA, 0xF6,
-               0xE6, 0xAA, 0xA8, 0xF6, 0xF0, 0xA3, 0x9A, 0xA3,
-               0xF6, 0xE6, 0xAB, 0x9B, 0xF6, 0xE3, 0xB0, 0x98,
-               0xF6, 0xE6, 0xAC, 0xA1, 0xF6, 0xF0, 0xA3, 0xA2,
-               0xA7, 0xF6, 0xE6, 0xAD, 0x94, 0xF6, 0xE3, 0xB1,
-               0x8E, 0xF6, 0xE6, 0xAD, 0xB2, 0xF6, 0xE6, 0xAE,
-               0x9F, 0xF6, 0xE6, 0xAE, 0xBA, 0xF6, 0xE6, 0xAE,
-               0xBB, 0xF6, 0xF0, 0xA3, 0xAA, 0x8D, 0xF6, 0xF0,
-               0xA1, 0xB4, 0x8B, 0xF6, 0xF0, 0xA3, 0xAB, 0xBA,
-               0xF6, 0xE6, 0xB1, 0x8E, 0xF6, 0xF0, 0xA3, 0xB2,
-               0xBC, 0xF6, 0xE6, 0xB2, 0xBF, 0xF6, 0xE6, 0xB3,
-               0x8D, 0xF6, 0xE6, 0xB1, 0xA7, 0xF6, 0xE6, 0xB4,
-               0x96, 0xF6, 0xE6, 0xB4, 0xBE, 0xF6, 0xE6, 0xB5,
-               0xB7, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6, 0xB5,
-               0xA9, 0xF6, 0xE6, 0xB5, 0xB8, 0xF6, 0xE6, 0xB6,
-               0x85, 0xF6, 0xF0, 0xA3, 0xB4, 0x9E, 0xF6, 0xE6,
-               0xB4, 0xB4, 0xF6, 0xE6, 0xB8, 0xAF, 0xF6, 0xE6,
-               0xB9, 0xAE, 0xF6, 0xE3, 0xB4, 0xB3, 0xF6, 0xE6,
-               0xBB, 0x8B, 0xF6, 0xE6, 0xBB, 0x87, 0xF6, 0xF0,
-               0xA3, 0xBB, 0x91, 0xF6, 0xE6, 0xB7, 0xB9, 0xF6,
-               0xE6, 0xBD, 0xAE, 0xF6, 0xF0, 0xA3, 0xBD, 0x9E,
-               0xF6, 0xF0, 0xA3, 0xBE, 0x8E, 0xF6, 0xE6, 0xBF,
-               0x86, 0xF6, 0xE7, 0x80, 0xB9, 0xF6, 0xE7, 0x80,
-               0x9E, 0xF6, 0xE7, 0x80, 0x9B, 0xF6, 0xE3, 0xB6,
-               0x96, 0xF6, 0xE7, 0x81, 0x8A, 0xF6, 0xE7, 0x81,
-               0xBD, 0xF6, 0xE7, 0x81, 0xB7, 0xF6, 0xE7, 0x82,
-               0xAD, 0xF6, 0xF0, 0xA0, 0x94, 0xA5, 0xF6, 0xE7,
-               0x85, 0x85, 0xF6, 0xF0, 0xA4, 0x89, 0xA3, 0xF6,
-               0xE7, 0x86, 0x9C, 0xF6, 0xF0, 0xA4, 0x8E, 0xAB,
-               0xF6, 0xE7, 0x88, 0xA8, 0xF6, 0xE7, 0x88, 0xB5,
-               0xF6, 0xE7, 0x89, 0x90, 0xF6, 0xF0, 0xA4, 0x98,
-               0x88, 0xF6, 0xE7, 0x8A, 0x80, 0xF6, 0xE7, 0x8A,
-               0x95, 0xF6, 0xF0, 0xA4, 0x9C, 0xB5, 0xF6, 0xF0,
-               0xA4, 0xA0, 0x94, 0xF6, 0xE7, 0x8D, 0xBA, 0xF6,
-               0xE7, 0x8E, 0x8B, 0xF6, 0xE3, 0xBA, 0xAC, 0xF6,
-               0xE7, 0x8E, 0xA5, 0xF6, 0xE3, 0xBA, 0xB8, 0xF6,
-               0xE3, 0xBA, 0xB8, 0xF6, 0xE7, 0x91, 0x87, 0xF6,
-               0xE7, 0x91, 0x9C, 0xF6, 0xE7, 0x91, 0xB1, 0xF6,
-               0xE7, 0x92, 0x85, 0xF6, 0xE7, 0x93, 0x8A, 0xF6,
-               0xE3, 0xBC, 0x9B, 0xF6, 0xE7, 0x94, 0xA4, 0xF6,
-               0xF0, 0xA4, 0xB0, 0xB6, 0xF6, 0xE7, 0x94, 0xBE,
-               0xF6, 0xF0, 0xA4, 0xB2, 0x92, 0xF6, 0xE7, 0x95,
-               0xB0, 0xF6, 0xF0, 0xA2, 0x86, 0x9F, 0xF6, 0xE7,
-               0x98, 0x90, 0xF6, 0xF0, 0xA4, 0xBE, 0xA1, 0xF6,
-               0xF0, 0xA4, 0xBE, 0xB8, 0xF6, 0xF0, 0xA5, 0x81,
-               0x84, 0xF6, 0xE3, 0xBF, 0xBC, 0xF6, 0xE4, 0x80,
-               0x88, 0xF6, 0xE7, 0x9B, 0xB4, 0xF6, 0xF0, 0xA5,
-               0x83, 0xB3, 0xF6, 0xF0, 0xA5, 0x83, 0xB2, 0xF6,
-               0xF0, 0xA5, 0x84, 0x99, 0xF6, 0xF0, 0xA5, 0x84,
-               0xB3, 0xF6, 0xE7, 0x9C, 0x9E, 0xF6, 0xE7, 0x9C,
-               0x9F, 0xF6, 0xE7, 0x9C, 0x9F, 0xF6, 0xE7, 0x9D,
-               0x8A, 0xF6, 0xE4, 0x80, 0xB9, 0xF6, 0xE7, 0x9E,
-               0x8B, 0xF6, 0xE4, 0x81, 0x86, 0xF6, 0xE4, 0x82,
-               0x96, 0xF6, 0xF0, 0xA5, 0x90, 0x9D, 0xF6, 0xE7,
-               0xA1, 0x8E, 0xF6, 0xE7, 0xA2, 0x8C, 0xF6, 0xE7,
-               0xA3, 0x8C, 0xF6, 0xE4, 0x83, 0xA3, 0xF6, 0xF0,
-               0xA5, 0x98, 0xA6, 0xF6, 0xE7, 0xA5, 0x96, 0xF6,
-               0xF0, 0xA5, 0x9A, 0x9A, 0xF6, 0xF0, 0xA5, 0x9B,
-               0x85, 0xF6, 0xE7, 0xA6, 0x8F, 0xF6, 0xE7, 0xA7,
-               0xAB, 0xF6, 0xE4, 0x84, 0xAF, 0xF6, 0xE7, 0xA9,
-               0x80, 0xF6, 0xE7, 0xA9, 0x8A, 0xF6, 0xE7, 0xA9,
-               0x8F, 0xF6, 0xF0, 0xA5, 0xA5, 0xBC, 0xF6, 0xF0,
-               0xA5, 0xAA, 0xA7, 0xF6, 0xF0, 0xA5, 0xAA, 0xA7,
-               0xF6, 0xE7, 0xAB, 0xAE, 0xF6, 0xE4, 0x88, 0x82,
-               0xF6, 0xF0, 0xA5, 0xAE, 0xAB, 0xF6, 0xE7, 0xAF,
-               0x86, 0xF6, 0xE7, 0xAF, 0x89, 0xF6, 0xE4, 0x88,
-               0xA7, 0xF6, 0xF0, 0xA5, 0xB2, 0x80, 0xF6, 0xE7,
-               0xB3, 0x92, 0xF6, 0xE4, 0x8A, 0xA0, 0xF6, 0xE7,
-               0xB3, 0xA8, 0xF6, 0xE7, 0xB3, 0xA3, 0xF6, 0xE7,
-               0xB4, 0x80, 0xF6, 0xF0, 0xA5, 0xBE, 0x86, 0xF6,
-               0xE7, 0xB5, 0xA3, 0xF6, 0xE4, 0x8C, 0x81, 0xF6,
-               0xE7, 0xB7, 0x87, 0xF6, 0xE7, 0xB8, 0x82, 0xF6,
-               0xE7, 0xB9, 0x85, 0xF6, 0xE4, 0x8C, 0xB4, 0xF6,
-               0xF0, 0xA6, 0x88, 0xA8, 0xF6, 0xF0, 0xA6, 0x89,
-               0x87, 0xF6, 0xE4, 0x8D, 0x99, 0xF6, 0xF0, 0xA6,
-               0x8B, 0x99, 0xF6, 0xE7, 0xBD, 0xBA, 0xF6, 0xF0,
-               0xA6, 0x8C, 0xBE, 0xF6, 0xE7, 0xBE, 0x95, 0xF6,
-               0xE7, 0xBF, 0xBA, 0xF6, 0xE8, 0x80, 0x85, 0xF6,
-               0xF0, 0xA6, 0x93, 0x9A, 0xF6, 0xF0, 0xA6, 0x94,
-               0xA3, 0xF6, 0xE8, 0x81, 0xA0, 0xF6, 0xF0, 0xA6,
-               0x96, 0xA8, 0xF6, 0xE8, 0x81, 0xB0, 0xF6, 0xF0,
-               0xA3, 0x8D, 0x9F, 0xF6, 0xE4, 0x8F, 0x95, 0xF6,
-               0xE8, 0x82, 0xB2, 0xF6, 0xE8, 0x84, 0x83, 0xF6,
-               0xE4, 0x90, 0x8B, 0xF6, 0xE8, 0x84, 0xBE, 0xF6,
-               0xE5, 0xAA, 0xB5, 0xF6, 0xF0, 0xA6, 0x9E, 0xA7,
-               0xF6, 0xF0, 0xA6, 0x9E, 0xB5, 0xF6, 0xF0, 0xA3,
-               0x8E, 0x93, 0xF6, 0xF0, 0xA3, 0x8E, 0x9C, 0xF6,
-               0xE8, 0x88, 0x81, 0xF6, 0xE8, 0x88, 0x84, 0xF6,
-               0xE8, 0xBE, 0x9E, 0xF6, 0xE4, 0x91, 0xAB, 0xF6,
-               0xE8, 0x8A, 0x91, 0xF6, 0xE8, 0x8A, 0x8B, 0xF6,
-               0xE8, 0x8A, 0x9D, 0xF6, 0xE5, 0x8A, 0xB3, 0xF6,
-               0xE8, 0x8A, 0xB1, 0xF6, 0xE8, 0x8A, 0xB3, 0xF6,
-               0xE8, 0x8A, 0xBD, 0xF6, 0xE8, 0x8B, 0xA6, 0xF6,
-               0xF0, 0xA6, 0xAC, 0xBC, 0xF6, 0xE8, 0x8B, 0xA5,
-               0xF6, 0xE8, 0x8C, 0x9D, 0xF6, 0xE8, 0x8D, 0xA3,
-               0xF6, 0xE8, 0x8E, 0xAD, 0xF6, 0xE8, 0x8C, 0xA3,
-               0xF6, 0xE8, 0x8E, 0xBD, 0xF6, 0xE8, 0x8F, 0xA7,
-               0xF6, 0xE8, 0x91, 0x97, 0xF6, 0xE8, 0x8D, 0x93,
-               0xF6, 0xE8, 0x8F, 0x8A, 0xF6, 0xE8, 0x8F, 0x8C,
-               0xF6, 0xE8, 0x8F, 0x9C, 0xF6, 0xF0, 0xA6, 0xB0,
-               0xB6, 0xF6, 0xF0, 0xA6, 0xB5, 0xAB, 0xF6, 0xF0,
-               0xA6, 0xB3, 0x95, 0xF6, 0xE4, 0x94, 0xAB, 0xF6,
-               0xE8, 0x93, 0xB1, 0xF6, 0xE8, 0x93, 0xB3, 0xF6,
-               0xE8, 0x94, 0x96, 0xF6, 0xF0, 0xA7, 0x8F, 0x8A,
-               0xF6, 0xE8, 0x95, 0xA4, 0xF6, 0xF0, 0xA6, 0xBC,
-               0xAC, 0xF6, 0xE4, 0x95, 0x9D, 0xF6, 0xE4, 0x95,
-               0xA1, 0xF6, 0xF0, 0xA6, 0xBE, 0xB1, 0xF6, 0xF0,
-               0xA7, 0x83, 0x92, 0xF6, 0xE4, 0x95, 0xAB, 0xF6,
-               0xE8, 0x99, 0x90, 0xF6, 0xE8, 0x99, 0x9C, 0xF6,
-               0xE8, 0x99, 0xA7, 0xF6, 0xE8, 0x99, 0xA9, 0xF6,
-               0xE8, 0x9A, 0xA9, 0xF6, 0xE8, 0x9A, 0x88, 0xF6,
-               0xE8, 0x9C, 0x8E, 0xF6, 0xE8, 0x9B, 0xA2, 0xF6,
-               0xE8, 0x9D, 0xB9, 0xF6, 0xE8, 0x9C, 0xA8, 0xF6,
-               0xE8, 0x9D, 0xAB, 0xF6, 0xE8, 0x9E, 0x86, 0xF6,
-               0xE4, 0x97, 0x97, 0xF6, 0xE8, 0x9F, 0xA1, 0xF6,
-               0xE8, 0xA0, 0x81, 0xF6, 0xE4, 0x97, 0xB9, 0xF6,
-               0xE8, 0xA1, 0xA0, 0xF6, 0xE8, 0xA1, 0xA3, 0xF6,
-               0xF0, 0xA7, 0x99, 0xA7, 0xF6, 0xE8, 0xA3, 0x97,
-               0xF6, 0xE8, 0xA3, 0x9E, 0xF6, 0xE4, 0x98, 0xB5,
-               0xF6, 0xE8, 0xA3, 0xBA, 0xF6, 0xE3, 0x92, 0xBB,
-               0xF6, 0xF0, 0xA7, 0xA2, 0xAE, 0xF6, 0xF0, 0xA7,
-               0xA5, 0xA6, 0xF6, 0xE4, 0x9A, 0xBE, 0xF6, 0xE4,
-               0x9B, 0x87, 0xF6, 0xE8, 0xAA, 0xA0, 0xF6, 0xE8,
-               0xAB, 0xAD, 0xF6, 0xE8, 0xAE, 0x8A, 0xF6, 0xE8,
-               0xB1, 0x95, 0xF6, 0xF0, 0xA7, 0xB2, 0xA8, 0xF6,
-               0xE8, 0xB2, 0xAB, 0xF6, 0xE8, 0xB3, 0x81, 0xF6,
-               0xE8, 0xB4, 0x9B, 0xF6, 0xE8, 0xB5, 0xB7, 0xF6,
-               0xF0, 0xA7, 0xBC, 0xAF, 0xF6, 0xF0, 0xA0, 0xA0,
-               0x84, 0xF6, 0xE8, 0xB7, 0x8B, 0xF6, 0xE8, 0xB6,
-               0xBC, 0xF6, 0xE8, 0xB7, 0xB0, 0xF6, 0xF0, 0xA0,
-               0xA3, 0x9E, 0xF6, 0xE8, 0xBB, 0x94, 0xF6, 0xE8,
-               0xBC, 0xB8, 0xF6, 0xF0, 0xA8, 0x97, 0x92, 0xF6,
-               0xF0, 0xA8, 0x97, 0xAD, 0xF6, 0xE9, 0x82, 0x94,
-               0xF6, 0xE9, 0x83, 0xB1, 0xF6, 0xE9, 0x84, 0x91,
-               0xF6, 0xF0, 0xA8, 0x9C, 0xAE, 0xF6, 0xE9, 0x84,
-               0x9B, 0xF6, 0xE9, 0x88, 0xB8, 0xF6, 0xE9, 0x8B,
-               0x97, 0xF6, 0xE9, 0x8B, 0x98, 0xF6, 0xE9, 0x89,
-               0xBC, 0xF6, 0xE9, 0x8F, 0xB9, 0xF6, 0xE9, 0x90,
-               0x95, 0xF6, 0xF0, 0xA8, 0xAF, 0xBA, 0xF6, 0xE9,
-               0x96, 0x8B, 0xF6, 0xE4, 0xA6, 0x95, 0xF6, 0xE9,
-               0x96, 0xB7, 0xF6, 0xF0, 0xA8, 0xB5, 0xB7, 0xF6,
-               0xE4, 0xA7, 0xA6, 0xF6, 0xE9, 0x9B, 0x83, 0xF6,
-               0xE5, 0xB6, 0xB2, 0xF6, 0xE9, 0x9C, 0xA3, 0xF6,
-               0xF0, 0xA9, 0x85, 0x85, 0xF6, 0xF0, 0xA9, 0x88,
-               0x9A, 0xF6, 0xE4, 0xA9, 0xAE, 0xF6, 0xE4, 0xA9,
-               0xB6, 0xF6, 0xE9, 0x9F, 0xA0, 0xF6, 0xF0, 0xA9,
-               0x90, 0x8A, 0xF6, 0xE4, 0xAA, 0xB2, 0xF6, 0xF0,
-               0xA9, 0x92, 0x96, 0xF6, 0xE9, 0xA0, 0x8B, 0xF6,
-               0xE9, 0xA0, 0x8B, 0xF6, 0xE9, 0xA0, 0xA9, 0xF6,
-               0xF0, 0xA9, 0x96, 0xB6, 0xF6, 0xE9, 0xA3, 0xA2,
-               0xF6, 0xE4, 0xAC, 0xB3, 0xF6, 0xE9, 0xA4, 0xA9,
-               0xF6, 0xE9, 0xA6, 0xA7, 0xF6, 0xE9, 0xA7, 0x82,
-               0xF6, 0xE9, 0xA7, 0xBE, 0xF6, 0xE4, 0xAF, 0x8E,
-               0xF6, 0xF0, 0xA9, 0xAC, 0xB0, 0xF6, 0xE9, 0xAC,
-               0x92, 0xF6, 0xE9, 0xB1, 0x80, 0xF6, 0xE9, 0xB3,
-               0xBD, 0xF6, 0xE4, 0xB3, 0x8E, 0xF6, 0xE4, 0xB3,
-               0xAD, 0xF6, 0xE9, 0xB5, 0xA7, 0xF6, 0xF0, 0xAA,
-               0x83, 0x8E, 0xF6, 0xE4, 0xB3, 0xB8, 0xF6, 0xF0,
-               0xAA, 0x84, 0x85, 0xF6, 0xF0, 0xAA, 0x88, 0x8E,
-               0xF6, 0xF0, 0xAA, 0x8A, 0x91, 0xF6, 0xE9, 0xBA,
-               0xBB, 0xF6, 0xE4, 0xB5, 0x96, 0xF6, 0xE9, 0xBB,
-               0xB9, 0xF6, 0xE9, 0xBB, 0xBE, 0xF6, 0xE9, 0xBC,
-               0x85, 0xF6, 0xE9, 0xBC, 0x8F, 0xF6, 0xE9, 0xBC,
-               0x96, 0xF6, 0xE9, 0xBC, 0xBB, 0xF6, 0xF0, 0xAA,
-               0x98, 0x80,
-       },
-};
-
-static const uchar_t u8_case_common_b2_tbl[2][2][256] = {
-       {
-               {
-                       0,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, 1,  2,  N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, 3,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       4,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-
-       },
-       {
-               {
-                       0,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, 1,  2,  N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, 3,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-               {
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       4,  N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-                       N_, N_, N_, N_, N_, N_, N_, N_,
-               },
-
-       },
-
-};
-
-static const u8_displacement_t u8_tolower_b3_tbl[2][5][256] = {
-       {
-               {       /* Third byte table 0. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { 0, 0 },
-                       { 1, 60 }, { 2, 123 }, { 3, 185 }, { 4, 257 },
-                       { 5, 321 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 6, 373 }, { 7, 439 },
-                       { 8, 465 }, { 9, 561 }, { 10, 593 }, { 11, 649 },
-                       { 12, 703 }, { 13, 749 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 1. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 14, 795 }, { 15, 891 }, { 16, 987 }, { 17, 1068 },
-                       { 18, 1155 }, { 19, 1245 }, { 20, 1299 }, { 21, 1386 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 2. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 22, 1443 }, { 23, 1448 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 24, 1496 }, { 25, 1526 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 3. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 26, 1574 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 4. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 27, 1652 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-       },
-       {
-               {       /* Third byte table 0. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { 0, 0 },
-                       { 1, 60 }, { 2, 123 }, { 3, 185 }, { 4, 257 },
-                       { 5, 321 }, { 6, 383 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 7, 401 }, { 8, 467 },
-                       { 9, 505 }, { 10, 601 }, { 11, 633 }, { 12, 689 },
-                       { 13, 753 }, { 14, 803 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 1. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 15, 849 }, { 16, 945 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 17, 963 }, { 18, 1059 }, { 19, 1155 }, { 20, 1236 },
-                       { 21, 1323 }, { 22, 1413 }, { 23, 1467 }, { 24, 1554 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 2. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 25, 1611 }, { 26, 1619 }, { 27, 1667 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 28, 1670 }, { 29, 1700 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 30, 1748 }, { 31, 1889 }, { 32, 1911 }, { 33, 2007 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 3. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 34, 2061 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 4. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 35, 2139 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-       },
-};
-
-static const uchar_t u8_tolower_b4_tbl[2][36][257] = {
-       {
-               {       /* Fourth byte table 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,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       46,  48,  50,  52,  54,  56,  58,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,
-               },
-               {       /* Fourth byte table 1. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  26,  26,  28,  28,  30,  30,  32,
-                       32,  34,  34,  36,  36,  38,  38,  40,
-                       40,  42,  42,  44,  44,  46,  46,  48,
-                       48,  49,  49,  51,  51,  53,  53,  55,
-                       55,  55,  57,  57,  59,  59,  61,  61,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,
-               },
-               {       /* Fourth byte table 2. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   4,   4,   6,   6,
-                       8,   8,   8,   10,  10,  12,  12,  14,
-                       14,  16,  16,  18,  18,  20,  20,  22,
-                       22,  24,  24,  26,  26,  28,  28,  30,
-                       30,  32,  32,  34,  34,  36,  36,  38,
-                       38,  40,  40,  42,  42,  44,  44,  46,
-                       46,  48,  48,  50,  50,  52,  52,  54,
-                       54,  56,  58,  58,  60,  60,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,
-               },
-               {       /* Fourth byte table 3. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   4,   4,   6,   6,   8,
-                       10,  10,  12,  14,  16,  16,  16,  18,
-                       20,  22,  24,  24,  26,  28,  28,  30,
-                       32,  34,  34,  34,  34,  36,  38,  38,
-                       40,  42,  42,  44,  44,  46,  46,  48,
-                       50,  50,  52,  52,  52,  54,  54,  56,
-                       58,  58,  60,  62,  64,  64,  66,  66,
-                       68,  70,  70,  70,  70,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,
-               },
-               {       /* Fourth byte table 4. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   2,   4,   4,
-                       6,   8,   8,   10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  28,  30,
-                       30,  32,  32,  34,  34,  36,  36,  38,
-                       38,  40,  40,  42,  42,  44,  44,  46,
-                       46,  46,  48,  50,  50,  52,  52,  54,
-                       56,  58,  58,  60,  60,  62,  62,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 5. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  26,  26,  28,  28,  30,  30,  32,
-                       32,  34,  34,  36,  36,  38,  38,  40,
-                       40,  42,  42,  44,  44,  46,  46,  48,
-                       48,  50,  50,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,
-               },
-               {       /* Fourth byte table 6. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   2,
-                       2,   4,   6,   8,   8,   10,  10,  12,
-                       14,  14,  16,  18,  20,  22,  24,  26,
-                       28,  30,  32,  34,  36,  38,  40,  42,
-                       44,  46,  48,  48,  50,  52,  54,  56,
-                       58,  60,  62,  64,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,
-               },
-               {       /* Fourth byte table 7. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   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,   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,   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,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  24,  24,  24,  24,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,
-               },
-               {       /* Fourth byte table 8. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       48,  50,  52,  54,  56,  58,  60,  62,
-                       64,  66,  68,  70,  72,  74,  76,  78,
-                       80,  82,  84,  86,  88,  90,  92,  94,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 9. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  26,  26,  28,  28,  30,  30,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,
-               },
-               {       /* Fourth byte table 10. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  26,  26,  28,  28,  30,  30,  32,
-                       32,  34,  34,  36,  36,  38,  38,  40,
-                       40,  42,  42,  44,  44,  46,  46,  48,
-                       48,  50,  50,  52,  52,  54,  54,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,
-               },
-               {       /* Fourth byte table 11. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   4,   4,   6,   6,
-                       8,   8,   10,  10,  12,  12,  14,  14,
-                       14,  16,  16,  18,  18,  20,  20,  22,
-                       22,  24,  24,  26,  26,  28,  28,  30,
-                       30,  32,  32,  34,  34,  36,  36,  38,
-                       38,  40,  40,  42,  42,  44,  44,  46,
-                       46,  48,  48,  50,  50,  52,  52,  52,
-                       52,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,
-               },
-               {       /* Fourth byte table 12. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   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,   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,   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,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  18,  20,  22,  24,  26,  28,
-                       30,  32,  34,  36,  38,  40,  42,  44,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,
-               },
-               {       /* Fourth byte table 13. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,
-               },
-               {       /* Fourth byte table 14. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   6,   6,   9,   9,   12,
-                       12,  15,  15,  18,  18,  21,  21,  24,
-                       24,  27,  27,  30,  30,  33,  33,  36,
-                       36,  39,  39,  42,  42,  45,  45,  48,
-                       48,  51,  51,  54,  54,  57,  57,  60,
-                       60,  63,  63,  66,  66,  69,  69,  72,
-                       72,  75,  75,  78,  78,  81,  81,  84,
-                       84,  87,  87,  90,  90,  93,  93,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 15. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   6,   6,   9,   9,   12,
-                       12,  15,  15,  18,  18,  21,  21,  24,
-                       24,  27,  27,  30,  30,  33,  33,  36,
-                       36,  39,  39,  42,  42,  45,  45,  48,
-                       48,  51,  51,  54,  54,  57,  57,  60,
-                       60,  63,  63,  66,  66,  69,  69,  72,
-                       72,  75,  75,  78,  78,  81,  81,  84,
-                       84,  87,  87,  90,  90,  93,  93,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 16. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   6,   6,   9,   9,   12,
-                       12,  15,  15,  18,  18,  21,  21,  24,
-                       24,  27,  27,  30,  30,  33,  33,  33,
-                       33,  33,  33,  33,  33,  33,  33,  33,
-                       33,  36,  36,  39,  39,  42,  42,  45,
-                       45,  48,  48,  51,  51,  54,  54,  57,
-                       57,  60,  60,  63,  63,  66,  66,  69,
-                       69,  72,  72,  75,  75,  78,  78,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,
-               },
-               {       /* Fourth byte table 17. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   6,   6,   9,   9,   12,
-                       12,  15,  15,  18,  18,  21,  21,  24,
-                       24,  27,  27,  30,  30,  33,  33,  36,
-                       36,  39,  39,  42,  42,  45,  45,  48,
-                       48,  51,  51,  54,  54,  57,  57,  60,
-                       60,  63,  63,  66,  66,  69,  69,  72,
-                       72,  75,  75,  78,  78,  81,  81,  84,
-                       84,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,
-               },
-               {       /* Fourth byte table 18. */
-                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  27,  30,  33,  36,  39,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  45,  48,  51,  54,  57,  60,  63,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  69,  72,  75,  78,  81,  84,  87,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,
-               },
-               {       /* Fourth byte table 19. */
-                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  21,  21,  24,  24,  27,  27,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  33,  36,  39,  42,  45,  48,  51,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,
-               },
-               {       /* Fourth byte table 20. */
-                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  75,  78,  81,  84,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,
-               },
-               {       /* Fourth byte table 21. */
-                       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,   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,   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,   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,   3,   6,   9,   12,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  18,  21,  24,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  30,  33,  36,  39,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  45,  48,  51,  54,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,
-               },
-               {       /* Fourth byte table 22. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   2,
-                       2,   2,   2,   3,   5,   5,   5,   5,
-                       5,   5,   5,   5,   5,   5,   5,   5,
-                       5,   5,   5,   5,   5,   5,   5,   5,
-                       5,   5,   5,   5,   5,   5,   5,   5,
-                       5,   5,   5,   5,   5,   5,   5,   5,
-                       5,   5,   5,   5,   5,   5,   5,   5,
-                       5,   5,   5,   5,   5,   5,   5,   5,
-                       5,   5,   5,   5,   5,   5,   5,   5,
-                       5,   5,   5,   5,   5,   5,   5,   5,
-                       5,   5,   5,   5,   5,   5,   5,   5,
-                       5,   5,   5,   5,   5,   5,   5,   5,
-                       5,
-               },
-               {       /* Fourth byte table 23. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,
-               },
-               {       /* Fourth byte table 24. */
-                       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,   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,   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,   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,   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,   3,
-                       6,   9,   12,  15,  18,  21,  24,  27,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,
-               },
-               {       /* Fourth byte table 25. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,
-               },
-               {       /* Fourth byte table 26. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   6,   9,   12,  15,  18,
-                       21,  24,  27,  30,  33,  36,  39,  42,
-                       45,  48,  51,  54,  57,  60,  63,  66,
-                       69,  72,  75,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,
-               },
-               {       /* Fourth byte table 27. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  68,  72,  76,  80,  84,  88,  92,
-                       96,  100, 104, 108, 112, 116, 120, 124,
-                       128, 132, 136, 140, 144, 148, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152, 152, 152, 152, 152, 152, 152, 152,
-                       152,
-               },
-               {       /* Fourth byte table 28. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 29. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 30. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 31. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 32. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 33. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 34. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 35. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-       },
-       {
-               {       /* Fourth byte table 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,   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,   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,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       46,  48,  50,  52,  54,  56,  58,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,  60,  60,  60,  60,  60,  60,  60,
-                       60,
-               },
-               {       /* Fourth byte table 1. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  26,  26,  28,  28,  30,  30,  32,
-                       32,  34,  34,  36,  36,  38,  38,  40,
-                       40,  42,  42,  44,  44,  46,  46,  48,
-                       48,  49,  49,  51,  51,  53,  53,  55,
-                       55,  55,  57,  57,  59,  59,  61,  61,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,
-               },
-               {       /* Fourth byte table 2. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   4,   4,   6,   6,
-                       8,   8,   8,   10,  10,  12,  12,  14,
-                       14,  16,  16,  18,  18,  20,  20,  22,
-                       22,  24,  24,  26,  26,  28,  28,  30,
-                       30,  32,  32,  34,  34,  36,  36,  38,
-                       38,  40,  40,  42,  42,  44,  44,  46,
-                       46,  48,  48,  50,  50,  52,  52,  54,
-                       54,  56,  58,  58,  60,  60,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,
-               },
-               {       /* Fourth byte table 3. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   4,   4,   6,   6,   8,
-                       10,  10,  12,  14,  16,  16,  16,  18,
-                       20,  22,  24,  24,  26,  28,  28,  30,
-                       32,  34,  34,  34,  34,  36,  38,  38,
-                       40,  42,  42,  44,  44,  46,  46,  48,
-                       50,  50,  52,  52,  52,  54,  54,  56,
-                       58,  58,  60,  62,  64,  64,  66,  66,
-                       68,  70,  70,  70,  70,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,
-               },
-               {       /* Fourth byte table 4. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   2,   4,   4,
-                       6,   8,   8,   10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  28,  30,
-                       30,  32,  32,  34,  34,  36,  36,  38,
-                       38,  40,  40,  42,  42,  44,  44,  46,
-                       46,  46,  48,  50,  50,  52,  52,  54,
-                       56,  58,  58,  60,  60,  62,  62,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 5. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  26,  26,  28,  28,  30,  30,  32,
-                       32,  34,  34,  36,  36,  38,  38,  40,
-                       40,  42,  42,  44,  44,  46,  46,  48,
-                       48,  50,  50,  52,  52,  52,  52,  52,
-                       52,  52,  52,  55,  57,  57,  59,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,
-               },
-               {       /* Fourth byte table 6. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   4,   6,   8,   10,
-                       10,  12,  12,  14,  14,  16,  16,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,
-               },
-               {       /* Fourth byte table 7. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   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,   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,   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,   2,
-                       2,   4,   6,   8,   8,   10,  10,  12,
-                       14,  14,  16,  18,  20,  22,  24,  26,
-                       28,  30,  32,  34,  36,  38,  40,  42,
-                       44,  46,  48,  48,  50,  52,  54,  56,
-                       58,  60,  62,  64,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,
-               },
-               {       /* Fourth byte table 8. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  24,  24,  24,  24,  26,  26,  26,
-                       28,  28,  30,  32,  32,  32,  34,  36,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,
-               },
-               {       /* Fourth byte table 9. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       48,  50,  52,  54,  56,  58,  60,  62,
-                       64,  66,  68,  70,  72,  74,  76,  78,
-                       80,  82,  84,  86,  88,  90,  92,  94,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 10. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  26,  26,  28,  28,  30,  30,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,
-               },
-               {       /* Fourth byte table 11. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  26,  26,  28,  28,  30,  30,  32,
-                       32,  34,  34,  36,  36,  38,  38,  40,
-                       40,  42,  42,  44,  44,  46,  46,  48,
-                       48,  50,  50,  52,  52,  54,  54,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,
-               },
-               {       /* Fourth byte table 12. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   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,   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,   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,   2,   4,   4,   6,   6,   8,   8,
-                       10,  10,  12,  12,  14,  14,  16,  16,
-                       16,  18,  18,  20,  20,  22,  22,  24,
-                       24,  26,  26,  28,  28,  30,  30,  32,
-                       32,  34,  34,  36,  36,  38,  38,  40,
-                       40,  42,  42,  44,  44,  46,  46,  48,
-                       48,  50,  50,  52,  52,  54,  54,  56,
-                       56,  58,  58,  60,  60,  62,  62,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 13. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  12,  12,  14,  14,  16,
-                       16,  18,  18,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  22,  24,  26,  28,  30,  32,
-                       34,  36,  38,  40,  42,  44,  46,  48,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,
-               },
-               {       /* Fourth byte table 14. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,  46,  46,  46,  46,  46,  46,  46,
-                       46,
-               },
-               {       /* Fourth byte table 15. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 16. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,
-               },
-               {       /* Fourth byte table 17. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   6,   6,   9,   9,   12,
-                       12,  15,  15,  18,  18,  21,  21,  24,
-                       24,  27,  27,  30,  30,  33,  33,  36,
-                       36,  39,  39,  42,  42,  45,  45,  48,
-                       48,  51,  51,  54,  54,  57,  57,  60,
-                       60,  63,  63,  66,  66,  69,  69,  72,
-                       72,  75,  75,  78,  78,  81,  81,  84,
-                       84,  87,  87,  90,  90,  93,  93,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 18. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   6,   6,   9,   9,   12,
-                       12,  15,  15,  18,  18,  21,  21,  24,
-                       24,  27,  27,  30,  30,  33,  33,  36,
-                       36,  39,  39,  42,  42,  45,  45,  48,
-                       48,  51,  51,  54,  54,  57,  57,  60,
-                       60,  63,  63,  66,  66,  69,  69,  72,
-                       72,  75,  75,  78,  78,  81,  81,  84,
-                       84,  87,  87,  90,  90,  93,  93,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 19. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   6,   6,   9,   9,   12,
-                       12,  15,  15,  18,  18,  21,  21,  24,
-                       24,  27,  27,  30,  30,  33,  33,  33,
-                       33,  33,  33,  33,  33,  33,  33,  33,
-                       33,  36,  36,  39,  39,  42,  42,  45,
-                       45,  48,  48,  51,  51,  54,  54,  57,
-                       57,  60,  60,  63,  63,  66,  66,  69,
-                       69,  72,  72,  75,  75,  78,  78,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  81,
-                       81,
-               },
-               {       /* Fourth byte table 20. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   6,   6,   9,   9,   12,
-                       12,  15,  15,  18,  18,  21,  21,  24,
-                       24,  27,  27,  30,  30,  33,  33,  36,
-                       36,  39,  39,  42,  42,  45,  45,  48,
-                       48,  51,  51,  54,  54,  57,  57,  60,
-                       60,  63,  63,  66,  66,  69,  69,  72,
-                       72,  75,  75,  78,  78,  81,  81,  84,
-                       84,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,
-               },
-               {       /* Fourth byte table 21. */
-                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  27,  30,  33,  36,  39,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  45,  48,  51,  54,  57,  60,  63,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  69,  72,  75,  78,  81,  84,  87,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,
-               },
-               {       /* Fourth byte table 22. */
-                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  21,  21,  24,  24,  27,  27,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  33,  36,  39,  42,  45,  48,  51,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,
-               },
-               {       /* Fourth byte table 23. */
-                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  75,  78,  81,  84,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,
-               },
-               {       /* Fourth byte table 24. */
-                       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,   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,   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,   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,   3,   6,   9,   12,  15,  15,  15,
-                       15,  15,  15,  15,  15,  15,  15,  15,
-                       15,  18,  21,  24,  27,  27,  27,  27,
-                       27,  27,  27,  27,  27,  27,  27,  27,
-                       27,  30,  33,  36,  39,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  45,  48,  51,  54,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,  57,  57,  57,  57,  57,  57,  57,
-                       57,
-               },
-               {       /* Fourth byte table 25. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   2,
-                       2,   2,   2,   3,   5,   5,   5,   5,
-                       5,   5,   5,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,
-               },
-               {       /* Fourth byte table 26. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,
-               },
-               {       /* Fourth byte table 27. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 28. */
-                       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,   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,   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,   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,   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,   3,
-                       6,   9,   12,  15,  18,  21,  24,  27,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,
-               },
-               {       /* Fourth byte table 29. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,
-               },
-               {       /* Fourth byte table 30. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 117,
-                       120, 123, 126, 129, 132, 135, 138, 141,
-                       141, 141, 141, 141, 141, 141, 141, 141,
-                       141, 141, 141, 141, 141, 141, 141, 141,
-                       141, 141, 141, 141, 141, 141, 141, 141,
-                       141, 141, 141, 141, 141, 141, 141, 141,
-                       141, 141, 141, 141, 141, 141, 141, 141,
-                       141, 141, 141, 141, 141, 141, 141, 141,
-                       141, 141, 141, 141, 141, 141, 141, 141,
-                       141, 141, 141, 141, 141, 141, 141, 141,
-                       141, 141, 141, 141, 141, 141, 141, 141,
-                       141, 141, 141, 141, 141, 141, 141, 141,
-                       141,
-               },
-               {       /* Fourth byte table 31. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   5,   8,   10,  10,  10,
-                       13,  13,  16,  16,  19,  19,  19,  19,
-                       19,  19,  19,  19,  19,  19,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,  22,  22,  22,  22,  22,  22,  22,
-                       22,
-               },
-               {       /* Fourth byte table 32. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   6,   6,   9,   9,   12,
-                       12,  15,  15,  18,  18,  21,  21,  24,
-                       24,  27,  27,  30,  30,  33,  33,  36,
-                       36,  39,  39,  42,  42,  45,  45,  48,
-                       48,  51,  51,  54,  54,  57,  57,  60,
-                       60,  63,  63,  66,  66,  69,  69,  72,
-                       72,  75,  75,  78,  78,  81,  81,  84,
-                       84,  87,  87,  90,  90,  93,  93,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 33. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   3,   6,   6,   9,   9,   12,
-                       12,  15,  15,  18,  18,  21,  21,  24,
-                       24,  27,  27,  30,  30,  33,  33,  36,
-                       36,  39,  39,  42,  42,  45,  45,  48,
-                       48,  51,  51,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,
-               },
-               {       /* Fourth byte table 34. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   6,   9,   12,  15,  18,
-                       21,  24,  27,  30,  33,  36,  39,  42,
-                       45,  48,  51,  54,  57,  60,  63,  66,
-                       69,  72,  75,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,
-               },
-               {       /* Fourth byte table 35. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  68,  72,  76,  80,  84,  88,  92,
-                       96,  100, 104, 108, 112, 116, 120, 124,
-                       128, 132, 136, 140, 144, 148, 152, 156,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160, 160, 160, 160, 160, 160, 160, 160,
-                       160,
-               },
-       },
-};
-
-static const uchar_t u8_tolower_final_tbl[2][2299] = {
-       {
-               0xC3, 0xA0, 0xC3, 0xA1, 0xC3, 0xA2, 0xC3, 0xA3,
-               0xC3, 0xA4, 0xC3, 0xA5, 0xC3, 0xA6, 0xC3, 0xA7,
-               0xC3, 0xA8, 0xC3, 0xA9, 0xC3, 0xAA, 0xC3, 0xAB,
-               0xC3, 0xAC, 0xC3, 0xAD, 0xC3, 0xAE, 0xC3, 0xAF,
-               0xC3, 0xB0, 0xC3, 0xB1, 0xC3, 0xB2, 0xC3, 0xB3,
-               0xC3, 0xB4, 0xC3, 0xB5, 0xC3, 0xB6, 0xC3, 0xB8,
-               0xC3, 0xB9, 0xC3, 0xBA, 0xC3, 0xBB, 0xC3, 0xBC,
-               0xC3, 0xBD, 0xC3, 0xBE, 0xC4, 0x81, 0xC4, 0x83,
-               0xC4, 0x85, 0xC4, 0x87, 0xC4, 0x89, 0xC4, 0x8B,
-               0xC4, 0x8D, 0xC4, 0x8F, 0xC4, 0x91, 0xC4, 0x93,
-               0xC4, 0x95, 0xC4, 0x97, 0xC4, 0x99, 0xC4, 0x9B,
-               0xC4, 0x9D, 0xC4, 0x9F, 0xC4, 0xA1, 0xC4, 0xA3,
-               0xC4, 0xA5, 0xC4, 0xA7, 0xC4, 0xA9, 0xC4, 0xAB,
-               0xC4, 0xAD, 0xC4, 0xAF, 0x69, 0xC4, 0xB3, 0xC4,
-               0xB5, 0xC4, 0xB7, 0xC4, 0xBA, 0xC4, 0xBC, 0xC4,
-               0xBE, 0xC5, 0x80, 0xC5, 0x82, 0xC5, 0x84, 0xC5,
-               0x86, 0xC5, 0x88, 0xC5, 0x8B, 0xC5, 0x8D, 0xC5,
-               0x8F, 0xC5, 0x91, 0xC5, 0x93, 0xC5, 0x95, 0xC5,
-               0x97, 0xC5, 0x99, 0xC5, 0x9B, 0xC5, 0x9D, 0xC5,
-               0x9F, 0xC5, 0xA1, 0xC5, 0xA3, 0xC5, 0xA5, 0xC5,
-               0xA7, 0xC5, 0xA9, 0xC5, 0xAB, 0xC5, 0xAD, 0xC5,
-               0xAF, 0xC5, 0xB1, 0xC5, 0xB3, 0xC5, 0xB5, 0xC5,
-               0xB7, 0xC3, 0xBF, 0xC5, 0xBA, 0xC5, 0xBC, 0xC5,
-               0xBE, 0xC9, 0x93, 0xC6, 0x83, 0xC6, 0x85, 0xC9,
-               0x94, 0xC6, 0x88, 0xC9, 0x96, 0xC9, 0x97, 0xC6,
-               0x8C, 0xC7, 0x9D, 0xC9, 0x99, 0xC9, 0x9B, 0xC6,
-               0x92, 0xC9, 0xA0, 0xC9, 0xA3, 0xC9, 0xA9, 0xC9,
-               0xA8, 0xC6, 0x99, 0xC9, 0xAF, 0xC9, 0xB2, 0xC9,
-               0xB5, 0xC6, 0xA1, 0xC6, 0xA3, 0xC6, 0xA5, 0xCA,
-               0x80, 0xC6, 0xA8, 0xCA, 0x83, 0xC6, 0xAD, 0xCA,
-               0x88, 0xC6, 0xB0, 0xCA, 0x8A, 0xCA, 0x8B, 0xC6,
-               0xB4, 0xC6, 0xB6, 0xCA, 0x92, 0xC6, 0xB9, 0xC6,
-               0xBD, 0xC7, 0x86, 0xC7, 0x86, 0xC7, 0x89, 0xC7,
-               0x89, 0xC7, 0x8C, 0xC7, 0x8C, 0xC7, 0x8E, 0xC7,
-               0x90, 0xC7, 0x92, 0xC7, 0x94, 0xC7, 0x96, 0xC7,
-               0x98, 0xC7, 0x9A, 0xC7, 0x9C, 0xC7, 0x9F, 0xC7,
-               0xA1, 0xC7, 0xA3, 0xC7, 0xA5, 0xC7, 0xA7, 0xC7,
-               0xA9, 0xC7, 0xAB, 0xC7, 0xAD, 0xC7, 0xAF, 0xC7,
-               0xB3, 0xC7, 0xB3, 0xC7, 0xB5, 0xC6, 0x95, 0xC6,
-               0xBF, 0xC7, 0xB9, 0xC7, 0xBB, 0xC7, 0xBD, 0xC7,
-               0xBF, 0xC8, 0x81, 0xC8, 0x83, 0xC8, 0x85, 0xC8,
-               0x87, 0xC8, 0x89, 0xC8, 0x8B, 0xC8, 0x8D, 0xC8,
-               0x8F, 0xC8, 0x91, 0xC8, 0x93, 0xC8, 0x95, 0xC8,
-               0x97, 0xC8, 0x99, 0xC8, 0x9B, 0xC8, 0x9D, 0xC8,
-               0x9F, 0xC6, 0x9E, 0xC8, 0xA3, 0xC8, 0xA5, 0xC8,
-               0xA7, 0xC8, 0xA9, 0xC8, 0xAB, 0xC8, 0xAD, 0xC8,
-               0xAF, 0xC8, 0xB1, 0xC8, 0xB3, 0xCE, 0xAC, 0xCE,
-               0xAD, 0xCE, 0xAE, 0xCE, 0xAF, 0xCF, 0x8C, 0xCF,
-               0x8D, 0xCF, 0x8E, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE,
-               0xB3, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE,
-               0xB7, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE,
-               0xBB, 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE,
-               0xBF, 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x83, 0xCF,
-               0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xCF,
-               0x88, 0xCF, 0x89, 0xCF, 0x8A, 0xCF, 0x8B, 0xCF,
-               0x99, 0xCF, 0x9B, 0xCF, 0x9D, 0xCF, 0x9F, 0xCF,
-               0xA1, 0xCF, 0xA3, 0xCF, 0xA5, 0xCF, 0xA7, 0xCF,
-               0xA9, 0xCF, 0xAB, 0xCF, 0xAD, 0xCF, 0xAF, 0xCE,
-               0xB8, 0xD1, 0x90, 0xD1, 0x91, 0xD1, 0x92, 0xD1,
-               0x93, 0xD1, 0x94, 0xD1, 0x95, 0xD1, 0x96, 0xD1,
-               0x97, 0xD1, 0x98, 0xD1, 0x99, 0xD1, 0x9A, 0xD1,
-               0x9B, 0xD1, 0x9C, 0xD1, 0x9D, 0xD1, 0x9E, 0xD1,
-               0x9F, 0xD0, 0xB0, 0xD0, 0xB1, 0xD0, 0xB2, 0xD0,
-               0xB3, 0xD0, 0xB4, 0xD0, 0xB5, 0xD0, 0xB6, 0xD0,
-               0xB7, 0xD0, 0xB8, 0xD0, 0xB9, 0xD0, 0xBA, 0xD0,
-               0xBB, 0xD0, 0xBC, 0xD0, 0xBD, 0xD0, 0xBE, 0xD0,
-               0xBF, 0xD1, 0x80, 0xD1, 0x81, 0xD1, 0x82, 0xD1,
-               0x83, 0xD1, 0x84, 0xD1, 0x85, 0xD1, 0x86, 0xD1,
-               0x87, 0xD1, 0x88, 0xD1, 0x89, 0xD1, 0x8A, 0xD1,
-               0x8B, 0xD1, 0x8C, 0xD1, 0x8D, 0xD1, 0x8E, 0xD1,
-               0x8F, 0xD1, 0xA1, 0xD1, 0xA3, 0xD1, 0xA5, 0xD1,
-               0xA7, 0xD1, 0xA9, 0xD1, 0xAB, 0xD1, 0xAD, 0xD1,
-               0xAF, 0xD1, 0xB1, 0xD1, 0xB3, 0xD1, 0xB5, 0xD1,
-               0xB7, 0xD1, 0xB9, 0xD1, 0xBB, 0xD1, 0xBD, 0xD1,
-               0xBF, 0xD2, 0x81, 0xD2, 0x8B, 0xD2, 0x8D, 0xD2,
-               0x8F, 0xD2, 0x91, 0xD2, 0x93, 0xD2, 0x95, 0xD2,
-               0x97, 0xD2, 0x99, 0xD2, 0x9B, 0xD2, 0x9D, 0xD2,
-               0x9F, 0xD2, 0xA1, 0xD2, 0xA3, 0xD2, 0xA5, 0xD2,
-               0xA7, 0xD2, 0xA9, 0xD2, 0xAB, 0xD2, 0xAD, 0xD2,
-               0xAF, 0xD2, 0xB1, 0xD2, 0xB3, 0xD2, 0xB5, 0xD2,
-               0xB7, 0xD2, 0xB9, 0xD2, 0xBB, 0xD2, 0xBD, 0xD2,
-               0xBF, 0xD3, 0x82, 0xD3, 0x84, 0xD3, 0x86, 0xD3,
-               0x88, 0xD3, 0x8A, 0xD3, 0x8C, 0xD3, 0x8E, 0xD3,
-               0x91, 0xD3, 0x93, 0xD3, 0x95, 0xD3, 0x97, 0xD3,
-               0x99, 0xD3, 0x9B, 0xD3, 0x9D, 0xD3, 0x9F, 0xD3,
-               0xA1, 0xD3, 0xA3, 0xD3, 0xA5, 0xD3, 0xA7, 0xD3,
-               0xA9, 0xD3, 0xAB, 0xD3, 0xAD, 0xD3, 0xAF, 0xD3,
-               0xB1, 0xD3, 0xB3, 0xD3, 0xB5, 0xD3, 0xB9, 0xD4,
-               0x81, 0xD4, 0x83, 0xD4, 0x85, 0xD4, 0x87, 0xD4,
-               0x89, 0xD4, 0x8B, 0xD4, 0x8D, 0xD4, 0x8F, 0xD5,
-               0xA1, 0xD5, 0xA2, 0xD5, 0xA3, 0xD5, 0xA4, 0xD5,
-               0xA5, 0xD5, 0xA6, 0xD5, 0xA7, 0xD5, 0xA8, 0xD5,
-               0xA9, 0xD5, 0xAA, 0xD5, 0xAB, 0xD5, 0xAC, 0xD5,
-               0xAD, 0xD5, 0xAE, 0xD5, 0xAF, 0xD5, 0xB0, 0xD5,
-               0xB1, 0xD5, 0xB2, 0xD5, 0xB3, 0xD5, 0xB4, 0xD5,
-               0xB5, 0xD5, 0xB6, 0xD5, 0xB7, 0xD5, 0xB8, 0xD5,
-               0xB9, 0xD5, 0xBA, 0xD5, 0xBB, 0xD5, 0xBC, 0xD5,
-               0xBD, 0xD5, 0xBE, 0xD5, 0xBF, 0xD6, 0x80, 0xD6,
-               0x81, 0xD6, 0x82, 0xD6, 0x83, 0xD6, 0x84, 0xD6,
-               0x85, 0xD6, 0x86, 0xE1, 0xB8, 0x81, 0xE1, 0xB8,
-               0x83, 0xE1, 0xB8, 0x85, 0xE1, 0xB8, 0x87, 0xE1,
-               0xB8, 0x89, 0xE1, 0xB8, 0x8B, 0xE1, 0xB8, 0x8D,
-               0xE1, 0xB8, 0x8F, 0xE1, 0xB8, 0x91, 0xE1, 0xB8,
-               0x93, 0xE1, 0xB8, 0x95, 0xE1, 0xB8, 0x97, 0xE1,
-               0xB8, 0x99, 0xE1, 0xB8, 0x9B, 0xE1, 0xB8, 0x9D,
-               0xE1, 0xB8, 0x9F, 0xE1, 0xB8, 0xA1, 0xE1, 0xB8,
-               0xA3, 0xE1, 0xB8, 0xA5, 0xE1, 0xB8, 0xA7, 0xE1,
-               0xB8, 0xA9, 0xE1, 0xB8, 0xAB, 0xE1, 0xB8, 0xAD,
-               0xE1, 0xB8, 0xAF, 0xE1, 0xB8, 0xB1, 0xE1, 0xB8,
-               0xB3, 0xE1, 0xB8, 0xB5, 0xE1, 0xB8, 0xB7, 0xE1,
-               0xB8, 0xB9, 0xE1, 0xB8, 0xBB, 0xE1, 0xB8, 0xBD,
-               0xE1, 0xB8, 0xBF, 0xE1, 0xB9, 0x81, 0xE1, 0xB9,
-               0x83, 0xE1, 0xB9, 0x85, 0xE1, 0xB9, 0x87, 0xE1,
-               0xB9, 0x89, 0xE1, 0xB9, 0x8B, 0xE1, 0xB9, 0x8D,
-               0xE1, 0xB9, 0x8F, 0xE1, 0xB9, 0x91, 0xE1, 0xB9,
-               0x93, 0xE1, 0xB9, 0x95, 0xE1, 0xB9, 0x97, 0xE1,
-               0xB9, 0x99, 0xE1, 0xB9, 0x9B, 0xE1, 0xB9, 0x9D,
-               0xE1, 0xB9, 0x9F, 0xE1, 0xB9, 0xA1, 0xE1, 0xB9,
-               0xA3, 0xE1, 0xB9, 0xA5, 0xE1, 0xB9, 0xA7, 0xE1,
-               0xB9, 0xA9, 0xE1, 0xB9, 0xAB, 0xE1, 0xB9, 0xAD,
-               0xE1, 0xB9, 0xAF, 0xE1, 0xB9, 0xB1, 0xE1, 0xB9,
-               0xB3, 0xE1, 0xB9, 0xB5, 0xE1, 0xB9, 0xB7, 0xE1,
-               0xB9, 0xB9, 0xE1, 0xB9, 0xBB, 0xE1, 0xB9, 0xBD,
-               0xE1, 0xB9, 0xBF, 0xE1, 0xBA, 0x81, 0xE1, 0xBA,
-               0x83, 0xE1, 0xBA, 0x85, 0xE1, 0xBA, 0x87, 0xE1,
-               0xBA, 0x89, 0xE1, 0xBA, 0x8B, 0xE1, 0xBA, 0x8D,
-               0xE1, 0xBA, 0x8F, 0xE1, 0xBA, 0x91, 0xE1, 0xBA,
-               0x93, 0xE1, 0xBA, 0x95, 0xE1, 0xBA, 0xA1, 0xE1,
-               0xBA, 0xA3, 0xE1, 0xBA, 0xA5, 0xE1, 0xBA, 0xA7,
-               0xE1, 0xBA, 0xA9, 0xE1, 0xBA, 0xAB, 0xE1, 0xBA,
-               0xAD, 0xE1, 0xBA, 0xAF, 0xE1, 0xBA, 0xB1, 0xE1,
-               0xBA, 0xB3, 0xE1, 0xBA, 0xB5, 0xE1, 0xBA, 0xB7,
-               0xE1, 0xBA, 0xB9, 0xE1, 0xBA, 0xBB, 0xE1, 0xBA,
-               0xBD, 0xE1, 0xBA, 0xBF, 0xE1, 0xBB, 0x81, 0xE1,
-               0xBB, 0x83, 0xE1, 0xBB, 0x85, 0xE1, 0xBB, 0x87,
-               0xE1, 0xBB, 0x89, 0xE1, 0xBB, 0x8B, 0xE1, 0xBB,
-               0x8D, 0xE1, 0xBB, 0x8F, 0xE1, 0xBB, 0x91, 0xE1,
-               0xBB, 0x93, 0xE1, 0xBB, 0x95, 0xE1, 0xBB, 0x97,
-               0xE1, 0xBB, 0x99, 0xE1, 0xBB, 0x9B, 0xE1, 0xBB,
-               0x9D, 0xE1, 0xBB, 0x9F, 0xE1, 0xBB, 0xA1, 0xE1,
-               0xBB, 0xA3, 0xE1, 0xBB, 0xA5, 0xE1, 0xBB, 0xA7,
-               0xE1, 0xBB, 0xA9, 0xE1, 0xBB, 0xAB, 0xE1, 0xBB,
-               0xAD, 0xE1, 0xBB, 0xAF, 0xE1, 0xBB, 0xB1, 0xE1,
-               0xBB, 0xB3, 0xE1, 0xBB, 0xB5, 0xE1, 0xBB, 0xB7,
-               0xE1, 0xBB, 0xB9, 0xE1, 0xBC, 0x80, 0xE1, 0xBC,
-               0x81, 0xE1, 0xBC, 0x82, 0xE1, 0xBC, 0x83, 0xE1,
-               0xBC, 0x84, 0xE1, 0xBC, 0x85, 0xE1, 0xBC, 0x86,
-               0xE1, 0xBC, 0x87, 0xE1, 0xBC, 0x90, 0xE1, 0xBC,
-               0x91, 0xE1, 0xBC, 0x92, 0xE1, 0xBC, 0x93, 0xE1,
-               0xBC, 0x94, 0xE1, 0xBC, 0x95, 0xE1, 0xBC, 0xA0,
-               0xE1, 0xBC, 0xA1, 0xE1, 0xBC, 0xA2, 0xE1, 0xBC,
-               0xA3, 0xE1, 0xBC, 0xA4, 0xE1, 0xBC, 0xA5, 0xE1,
-               0xBC, 0xA6, 0xE1, 0xBC, 0xA7, 0xE1, 0xBC, 0xB0,
-               0xE1, 0xBC, 0xB1, 0xE1, 0xBC, 0xB2, 0xE1, 0xBC,
-               0xB3, 0xE1, 0xBC, 0xB4, 0xE1, 0xBC, 0xB5, 0xE1,
-               0xBC, 0xB6, 0xE1, 0xBC, 0xB7, 0xE1, 0xBD, 0x80,
-               0xE1, 0xBD, 0x81, 0xE1, 0xBD, 0x82, 0xE1, 0xBD,
-               0x83, 0xE1, 0xBD, 0x84, 0xE1, 0xBD, 0x85, 0xE1,
-               0xBD, 0x91, 0xE1, 0xBD, 0x93, 0xE1, 0xBD, 0x95,
-               0xE1, 0xBD, 0x97, 0xE1, 0xBD, 0xA0, 0xE1, 0xBD,
-               0xA1, 0xE1, 0xBD, 0xA2, 0xE1, 0xBD, 0xA3, 0xE1,
-               0xBD, 0xA4, 0xE1, 0xBD, 0xA5, 0xE1, 0xBD, 0xA6,
-               0xE1, 0xBD, 0xA7, 0xE1, 0xBE, 0x80, 0xE1, 0xBE,
-               0x81, 0xE1, 0xBE, 0x82, 0xE1, 0xBE, 0x83, 0xE1,
-               0xBE, 0x84, 0xE1, 0xBE, 0x85, 0xE1, 0xBE, 0x86,
-               0xE1, 0xBE, 0x87, 0xE1, 0xBE, 0x90, 0xE1, 0xBE,
-               0x91, 0xE1, 0xBE, 0x92, 0xE1, 0xBE, 0x93, 0xE1,
-               0xBE, 0x94, 0xE1, 0xBE, 0x95, 0xE1, 0xBE, 0x96,
-               0xE1, 0xBE, 0x97, 0xE1, 0xBE, 0xA0, 0xE1, 0xBE,
-               0xA1, 0xE1, 0xBE, 0xA2, 0xE1, 0xBE, 0xA3, 0xE1,
-               0xBE, 0xA4, 0xE1, 0xBE, 0xA5, 0xE1, 0xBE, 0xA6,
-               0xE1, 0xBE, 0xA7, 0xE1, 0xBE, 0xB0, 0xE1, 0xBE,
-               0xB1, 0xE1, 0xBD, 0xB0, 0xE1, 0xBD, 0xB1, 0xE1,
-               0xBE, 0xB3, 0xE1, 0xBD, 0xB2, 0xE1, 0xBD, 0xB3,
-               0xE1, 0xBD, 0xB4, 0xE1, 0xBD, 0xB5, 0xE1, 0xBF,
-               0x83, 0xE1, 0xBF, 0x90, 0xE1, 0xBF, 0x91, 0xE1,
-               0xBD, 0xB6, 0xE1, 0xBD, 0xB7, 0xE1, 0xBF, 0xA0,
-               0xE1, 0xBF, 0xA1, 0xE1, 0xBD, 0xBA, 0xE1, 0xBD,
-               0xBB, 0xE1, 0xBF, 0xA5, 0xE1, 0xBD, 0xB8, 0xE1,
-               0xBD, 0xB9, 0xE1, 0xBD, 0xBC, 0xE1, 0xBD, 0xBD,
-               0xE1, 0xBF, 0xB3, 0xCF, 0x89, 0x6B, 0xC3, 0xA5,
-               0xE2, 0x85, 0xB0, 0xE2, 0x85, 0xB1, 0xE2, 0x85,
-               0xB2, 0xE2, 0x85, 0xB3, 0xE2, 0x85, 0xB4, 0xE2,
-               0x85, 0xB5, 0xE2, 0x85, 0xB6, 0xE2, 0x85, 0xB7,
-               0xE2, 0x85, 0xB8, 0xE2, 0x85, 0xB9, 0xE2, 0x85,
-               0xBA, 0xE2, 0x85, 0xBB, 0xE2, 0x85, 0xBC, 0xE2,
-               0x85, 0xBD, 0xE2, 0x85, 0xBE, 0xE2, 0x85, 0xBF,
-               0xE2, 0x93, 0x90, 0xE2, 0x93, 0x91, 0xE2, 0x93,
-               0x92, 0xE2, 0x93, 0x93, 0xE2, 0x93, 0x94, 0xE2,
-               0x93, 0x95, 0xE2, 0x93, 0x96, 0xE2, 0x93, 0x97,
-               0xE2, 0x93, 0x98, 0xE2, 0x93, 0x99, 0xE2, 0x93,
-               0x9A, 0xE2, 0x93, 0x9B, 0xE2, 0x93, 0x9C, 0xE2,
-               0x93, 0x9D, 0xE2, 0x93, 0x9E, 0xE2, 0x93, 0x9F,
-               0xE2, 0x93, 0xA0, 0xE2, 0x93, 0xA1, 0xE2, 0x93,
-               0xA2, 0xE2, 0x93, 0xA3, 0xE2, 0x93, 0xA4, 0xE2,
-               0x93, 0xA5, 0xE2, 0x93, 0xA6, 0xE2, 0x93, 0xA7,
-               0xE2, 0x93, 0xA8, 0xE2, 0x93, 0xA9, 0xEF, 0xBD,
-               0x81, 0xEF, 0xBD, 0x82, 0xEF, 0xBD, 0x83, 0xEF,
-               0xBD, 0x84, 0xEF, 0xBD, 0x85, 0xEF, 0xBD, 0x86,
-               0xEF, 0xBD, 0x87, 0xEF, 0xBD, 0x88, 0xEF, 0xBD,
-               0x89, 0xEF, 0xBD, 0x8A, 0xEF, 0xBD, 0x8B, 0xEF,
-               0xBD, 0x8C, 0xEF, 0xBD, 0x8D, 0xEF, 0xBD, 0x8E,
-               0xEF, 0xBD, 0x8F, 0xEF, 0xBD, 0x90, 0xEF, 0xBD,
-               0x91, 0xEF, 0xBD, 0x92, 0xEF, 0xBD, 0x93, 0xEF,
-               0xBD, 0x94, 0xEF, 0xBD, 0x95, 0xEF, 0xBD, 0x96,
-               0xEF, 0xBD, 0x97, 0xEF, 0xBD, 0x98, 0xEF, 0xBD,
-               0x99, 0xEF, 0xBD, 0x9A, 0xF0, 0x90, 0x90, 0xA8,
-               0xF0, 0x90, 0x90, 0xA9, 0xF0, 0x90, 0x90, 0xAA,
-               0xF0, 0x90, 0x90, 0xAB, 0xF0, 0x90, 0x90, 0xAC,
-               0xF0, 0x90, 0x90, 0xAD, 0xF0, 0x90, 0x90, 0xAE,
-               0xF0, 0x90, 0x90, 0xAF, 0xF0, 0x90, 0x90, 0xB0,
-               0xF0, 0x90, 0x90, 0xB1, 0xF0, 0x90, 0x90, 0xB2,
-               0xF0, 0x90, 0x90, 0xB3, 0xF0, 0x90, 0x90, 0xB4,
-               0xF0, 0x90, 0x90, 0xB5, 0xF0, 0x90, 0x90, 0xB6,
-               0xF0, 0x90, 0x90, 0xB7, 0xF0, 0x90, 0x90, 0xB8,
-               0xF0, 0x90, 0x90, 0xB9, 0xF0, 0x90, 0x90, 0xBA,
-               0xF0, 0x90, 0x90, 0xBB, 0xF0, 0x90, 0x90, 0xBC,
-               0xF0, 0x90, 0x90, 0xBD, 0xF0, 0x90, 0x90, 0xBE,
-               0xF0, 0x90, 0x90, 0xBF, 0xF0, 0x90, 0x91, 0x80,
-               0xF0, 0x90, 0x91, 0x81, 0xF0, 0x90, 0x91, 0x82,
-               0xF0, 0x90, 0x91, 0x83, 0xF0, 0x90, 0x91, 0x84,
-               0xF0, 0x90, 0x91, 0x85, 0xF0, 0x90, 0x91, 0x86,
-               0xF0, 0x90, 0x91, 0x87, 0xF0, 0x90, 0x91, 0x88,
-               0xF0, 0x90, 0x91, 0x89, 0xF0, 0x90, 0x91, 0x8A,
-               0xF0, 0x90, 0x91, 0x8B, 0xF0, 0x90, 0x91, 0x8C,
-               0xF0, 0x90, 0x91, 0x8D, 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,    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,    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,    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,
-               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,    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,    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,    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,    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,    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,    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,    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,
-               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,    0,    0,    0,
-               0,    0,    0,    0,    0,    0,    0,    0,
-               0,    0,    0,
-       },
-       {
-               0xC3, 0xA0, 0xC3, 0xA1, 0xC3, 0xA2, 0xC3, 0xA3,
-               0xC3, 0xA4, 0xC3, 0xA5, 0xC3, 0xA6, 0xC3, 0xA7,
-               0xC3, 0xA8, 0xC3, 0xA9, 0xC3, 0xAA, 0xC3, 0xAB,
-               0xC3, 0xAC, 0xC3, 0xAD, 0xC3, 0xAE, 0xC3, 0xAF,
-               0xC3, 0xB0, 0xC3, 0xB1, 0xC3, 0xB2, 0xC3, 0xB3,
-               0xC3, 0xB4, 0xC3, 0xB5, 0xC3, 0xB6, 0xC3, 0xB8,
-               0xC3, 0xB9, 0xC3, 0xBA, 0xC3, 0xBB, 0xC3, 0xBC,
-               0xC3, 0xBD, 0xC3, 0xBE, 0xC4, 0x81, 0xC4, 0x83,
-               0xC4, 0x85, 0xC4, 0x87, 0xC4, 0x89, 0xC4, 0x8B,
-               0xC4, 0x8D, 0xC4, 0x8F, 0xC4, 0x91, 0xC4, 0x93,
-               0xC4, 0x95, 0xC4, 0x97, 0xC4, 0x99, 0xC4, 0x9B,
-               0xC4, 0x9D, 0xC4, 0x9F, 0xC4, 0xA1, 0xC4, 0xA3,
-               0xC4, 0xA5, 0xC4, 0xA7, 0xC4, 0xA9, 0xC4, 0xAB,
-               0xC4, 0xAD, 0xC4, 0xAF, 0x69, 0xC4, 0xB3, 0xC4,
-               0xB5, 0xC4, 0xB7, 0xC4, 0xBA, 0xC4, 0xBC, 0xC4,
-               0xBE, 0xC5, 0x80, 0xC5, 0x82, 0xC5, 0x84, 0xC5,
-               0x86, 0xC5, 0x88, 0xC5, 0x8B, 0xC5, 0x8D, 0xC5,
-               0x8F, 0xC5, 0x91, 0xC5, 0x93, 0xC5, 0x95, 0xC5,
-               0x97, 0xC5, 0x99, 0xC5, 0x9B, 0xC5, 0x9D, 0xC5,
-               0x9F, 0xC5, 0xA1, 0xC5, 0xA3, 0xC5, 0xA5, 0xC5,
-               0xA7, 0xC5, 0xA9, 0xC5, 0xAB, 0xC5, 0xAD, 0xC5,
-               0xAF, 0xC5, 0xB1, 0xC5, 0xB3, 0xC5, 0xB5, 0xC5,
-               0xB7, 0xC3, 0xBF, 0xC5, 0xBA, 0xC5, 0xBC, 0xC5,
-               0xBE, 0xC9, 0x93, 0xC6, 0x83, 0xC6, 0x85, 0xC9,
-               0x94, 0xC6, 0x88, 0xC9, 0x96, 0xC9, 0x97, 0xC6,
-               0x8C, 0xC7, 0x9D, 0xC9, 0x99, 0xC9, 0x9B, 0xC6,
-               0x92, 0xC9, 0xA0, 0xC9, 0xA3, 0xC9, 0xA9, 0xC9,
-               0xA8, 0xC6, 0x99, 0xC9, 0xAF, 0xC9, 0xB2, 0xC9,
-               0xB5, 0xC6, 0xA1, 0xC6, 0xA3, 0xC6, 0xA5, 0xCA,
-               0x80, 0xC6, 0xA8, 0xCA, 0x83, 0xC6, 0xAD, 0xCA,
-               0x88, 0xC6, 0xB0, 0xCA, 0x8A, 0xCA, 0x8B, 0xC6,
-               0xB4, 0xC6, 0xB6, 0xCA, 0x92, 0xC6, 0xB9, 0xC6,
-               0xBD, 0xC7, 0x86, 0xC7, 0x86, 0xC7, 0x89, 0xC7,
-               0x89, 0xC7, 0x8C, 0xC7, 0x8C, 0xC7, 0x8E, 0xC7,
-               0x90, 0xC7, 0x92, 0xC7, 0x94, 0xC7, 0x96, 0xC7,
-               0x98, 0xC7, 0x9A, 0xC7, 0x9C, 0xC7, 0x9F, 0xC7,
-               0xA1, 0xC7, 0xA3, 0xC7, 0xA5, 0xC7, 0xA7, 0xC7,
-               0xA9, 0xC7, 0xAB, 0xC7, 0xAD, 0xC7, 0xAF, 0xC7,
-               0xB3, 0xC7, 0xB3, 0xC7, 0xB5, 0xC6, 0x95, 0xC6,
-               0xBF, 0xC7, 0xB9, 0xC7, 0xBB, 0xC7, 0xBD, 0xC7,
-               0xBF, 0xC8, 0x81, 0xC8, 0x83, 0xC8, 0x85, 0xC8,
-               0x87, 0xC8, 0x89, 0xC8, 0x8B, 0xC8, 0x8D, 0xC8,
-               0x8F, 0xC8, 0x91, 0xC8, 0x93, 0xC8, 0x95, 0xC8,
-               0x97, 0xC8, 0x99, 0xC8, 0x9B, 0xC8, 0x9D, 0xC8,
-               0x9F, 0xC6, 0x9E, 0xC8, 0xA3, 0xC8, 0xA5, 0xC8,
-               0xA7, 0xC8, 0xA9, 0xC8, 0xAB, 0xC8, 0xAD, 0xC8,
-               0xAF, 0xC8, 0xB1, 0xC8, 0xB3, 0xE2, 0xB1, 0xA5,
-               0xC8, 0xBC, 0xC6, 0x9A, 0xE2, 0xB1, 0xA6, 0xC9,
-               0x82, 0xC6, 0x80, 0xCA, 0x89, 0xCA, 0x8C, 0xC9,
-               0x87, 0xC9, 0x89, 0xC9, 0x8B, 0xC9, 0x8D, 0xC9,
-               0x8F, 0xCE, 0xAC, 0xCE, 0xAD, 0xCE, 0xAE, 0xCE,
-               0xAF, 0xCF, 0x8C, 0xCF, 0x8D, 0xCF, 0x8E, 0xCE,
-               0xB1, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE,
-               0xB5, 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE,
-               0xB9, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE,
-               0xBD, 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF,
-               0x81, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, 0xCF,
-               0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, 0xCF,
-               0x8A, 0xCF, 0x8B, 0xCF, 0x99, 0xCF, 0x9B, 0xCF,
-               0x9D, 0xCF, 0x9F, 0xCF, 0xA1, 0xCF, 0xA3, 0xCF,
-               0xA5, 0xCF, 0xA7, 0xCF, 0xA9, 0xCF, 0xAB, 0xCF,
-               0xAD, 0xCF, 0xAF, 0xCE, 0xB8, 0xCF, 0xB8, 0xCF,
-               0xB2, 0xCF, 0xBB, 0xCD, 0xBB, 0xCD, 0xBC, 0xCD,
-               0xBD, 0xD1, 0x90, 0xD1, 0x91, 0xD1, 0x92, 0xD1,
-               0x93, 0xD1, 0x94, 0xD1, 0x95, 0xD1, 0x96, 0xD1,
-               0x97, 0xD1, 0x98, 0xD1, 0x99, 0xD1, 0x9A, 0xD1,
-               0x9B, 0xD1, 0x9C, 0xD1, 0x9D, 0xD1, 0x9E, 0xD1,
-               0x9F, 0xD0, 0xB0, 0xD0, 0xB1, 0xD0, 0xB2, 0xD0,
-               0xB3, 0xD0, 0xB4, 0xD0, 0xB5, 0xD0, 0xB6, 0xD0,
-               0xB7, 0xD0, 0xB8, 0xD0, 0xB9, 0xD0, 0xBA, 0xD0,
-               0xBB, 0xD0, 0xBC, 0xD0, 0xBD, 0xD0, 0xBE, 0xD0,
-               0xBF, 0xD1, 0x80, 0xD1, 0x81, 0xD1, 0x82, 0xD1,
-               0x83, 0xD1, 0x84, 0xD1, 0x85, 0xD1, 0x86, 0xD1,
-               0x87, 0xD1, 0x88, 0xD1, 0x89, 0xD1, 0x8A, 0xD1,
-               0x8B, 0xD1, 0x8C, 0xD1, 0x8D, 0xD1, 0x8E, 0xD1,
-               0x8F, 0xD1, 0xA1, 0xD1, 0xA3, 0xD1, 0xA5, 0xD1,
-               0xA7, 0xD1, 0xA9, 0xD1, 0xAB, 0xD1, 0xAD, 0xD1,
-               0xAF, 0xD1, 0xB1, 0xD1, 0xB3, 0xD1, 0xB5, 0xD1,
-               0xB7, 0xD1, 0xB9, 0xD1, 0xBB, 0xD1, 0xBD, 0xD1,
-               0xBF, 0xD2, 0x81, 0xD2, 0x8B, 0xD2, 0x8D, 0xD2,
-               0x8F, 0xD2, 0x91, 0xD2, 0x93, 0xD2, 0x95, 0xD2,
-               0x97, 0xD2, 0x99, 0xD2, 0x9B, 0xD2, 0x9D, 0xD2,
-               0x9F, 0xD2, 0xA1, 0xD2, 0xA3, 0xD2, 0xA5, 0xD2,
-               0xA7, 0xD2, 0xA9, 0xD2, 0xAB, 0xD2, 0xAD, 0xD2,
-               0xAF, 0xD2, 0xB1, 0xD2, 0xB3, 0xD2, 0xB5, 0xD2,
-               0xB7, 0xD2, 0xB9, 0xD2, 0xBB, 0xD2, 0xBD, 0xD2,
-               0xBF, 0xD3, 0x8F, 0xD3, 0x82, 0xD3, 0x84, 0xD3,
-               0x86, 0xD3, 0x88, 0xD3, 0x8A, 0xD3, 0x8C, 0xD3,
-               0x8E, 0xD3, 0x91, 0xD3, 0x93, 0xD3, 0x95, 0xD3,
-               0x97, 0xD3, 0x99, 0xD3, 0x9B, 0xD3, 0x9D, 0xD3,
-               0x9F, 0xD3, 0xA1, 0xD3, 0xA3, 0xD3, 0xA5, 0xD3,
-               0xA7, 0xD3, 0xA9, 0xD3, 0xAB, 0xD3, 0xAD, 0xD3,
-               0xAF, 0xD3, 0xB1, 0xD3, 0xB3, 0xD3, 0xB5, 0xD3,
-               0xB7, 0xD3, 0xB9, 0xD3, 0xBB, 0xD3, 0xBD, 0xD3,
-               0xBF, 0xD4, 0x81, 0xD4, 0x83, 0xD4, 0x85, 0xD4,
-               0x87, 0xD4, 0x89, 0xD4, 0x8B, 0xD4, 0x8D, 0xD4,
-               0x8F, 0xD4, 0x91, 0xD4, 0x93, 0xD5, 0xA1, 0xD5,
-               0xA2, 0xD5, 0xA3, 0xD5, 0xA4, 0xD5, 0xA5, 0xD5,
-               0xA6, 0xD5, 0xA7, 0xD5, 0xA8, 0xD5, 0xA9, 0xD5,
-               0xAA, 0xD5, 0xAB, 0xD5, 0xAC, 0xD5, 0xAD, 0xD5,
-               0xAE, 0xD5, 0xAF, 0xD5, 0xB0, 0xD5, 0xB1, 0xD5,
-               0xB2, 0xD5, 0xB3, 0xD5, 0xB4, 0xD5, 0xB5, 0xD5,
-               0xB6, 0xD5, 0xB7, 0xD5, 0xB8, 0xD5, 0xB9, 0xD5,
-               0xBA, 0xD5, 0xBB, 0xD5, 0xBC, 0xD5, 0xBD, 0xD5,
-               0xBE, 0xD5, 0xBF, 0xD6, 0x80, 0xD6, 0x81, 0xD6,
-               0x82, 0xD6, 0x83, 0xD6, 0x84, 0xD6, 0x85, 0xD6,
-               0x86, 0xE2, 0xB4, 0x80, 0xE2, 0xB4, 0x81, 0xE2,
-               0xB4, 0x82, 0xE2, 0xB4, 0x83, 0xE2, 0xB4, 0x84,
-               0xE2, 0xB4, 0x85, 0xE2, 0xB4, 0x86, 0xE2, 0xB4,
-               0x87, 0xE2, 0xB4, 0x88, 0xE2, 0xB4, 0x89, 0xE2,
-               0xB4, 0x8A, 0xE2, 0xB4, 0x8B, 0xE2, 0xB4, 0x8C,
-               0xE2, 0xB4, 0x8D, 0xE2, 0xB4, 0x8E, 0xE2, 0xB4,
-               0x8F, 0xE2, 0xB4, 0x90, 0xE2, 0xB4, 0x91, 0xE2,
-               0xB4, 0x92, 0xE2, 0xB4, 0x93, 0xE2, 0xB4, 0x94,
-               0xE2, 0xB4, 0x95, 0xE2, 0xB4, 0x96, 0xE2, 0xB4,
-               0x97, 0xE2, 0xB4, 0x98, 0xE2, 0xB4, 0x99, 0xE2,
-               0xB4, 0x9A, 0xE2, 0xB4, 0x9B, 0xE2, 0xB4, 0x9C,
-               0xE2, 0xB4, 0x9D, 0xE2, 0xB4, 0x9E, 0xE2, 0xB4,
-               0x9F, 0xE2, 0xB4, 0xA0, 0xE2, 0xB4, 0xA1, 0xE2,
-               0xB4, 0xA2, 0xE2, 0xB4, 0xA3, 0xE2, 0xB4, 0xA4,
-               0xE2, 0xB4, 0xA5, 0xE1, 0xB8, 0x81, 0xE1, 0xB8,
-               0x83, 0xE1, 0xB8, 0x85, 0xE1, 0xB8, 0x87, 0xE1,
-               0xB8, 0x89, 0xE1, 0xB8, 0x8B, 0xE1, 0xB8, 0x8D,
-               0xE1, 0xB8, 0x8F, 0xE1, 0xB8, 0x91, 0xE1, 0xB8,
-               0x93, 0xE1, 0xB8, 0x95, 0xE1, 0xB8, 0x97, 0xE1,
-               0xB8, 0x99, 0xE1, 0xB8, 0x9B, 0xE1, 0xB8, 0x9D,
-               0xE1, 0xB8, 0x9F, 0xE1, 0xB8, 0xA1, 0xE1, 0xB8,
-               0xA3, 0xE1, 0xB8, 0xA5, 0xE1, 0xB8, 0xA7, 0xE1,
-               0xB8, 0xA9, 0xE1, 0xB8, 0xAB, 0xE1, 0xB8, 0xAD,
-               0xE1, 0xB8, 0xAF, 0xE1, 0xB8, 0xB1, 0xE1, 0xB8,
-               0xB3, 0xE1, 0xB8, 0xB5, 0xE1, 0xB8, 0xB7, 0xE1,
-               0xB8, 0xB9, 0xE1, 0xB8, 0xBB, 0xE1, 0xB8, 0xBD,
-               0xE1, 0xB8, 0xBF, 0xE1, 0xB9, 0x81, 0xE1, 0xB9,
-               0x83, 0xE1, 0xB9, 0x85, 0xE1, 0xB9, 0x87, 0xE1,
-               0xB9, 0x89, 0xE1, 0xB9, 0x8B, 0xE1, 0xB9, 0x8D,
-               0xE1, 0xB9, 0x8F, 0xE1, 0xB9, 0x91, 0xE1, 0xB9,
-               0x93, 0xE1, 0xB9, 0x95, 0xE1, 0xB9, 0x97, 0xE1,
-               0xB9, 0x99, 0xE1, 0xB9, 0x9B, 0xE1, 0xB9, 0x9D,
-               0xE1, 0xB9, 0x9F, 0xE1, 0xB9, 0xA1, 0xE1, 0xB9,
-               0xA3, 0xE1, 0xB9, 0xA5, 0xE1, 0xB9, 0xA7, 0xE1,
-               0xB9, 0xA9, 0xE1, 0xB9, 0xAB, 0xE1, 0xB9, 0xAD,
-               0xE1, 0xB9, 0xAF, 0xE1, 0xB9, 0xB1, 0xE1, 0xB9,
-               0xB3, 0xE1, 0xB9, 0xB5, 0xE1, 0xB9, 0xB7, 0xE1,
-               0xB9, 0xB9, 0xE1, 0xB9, 0xBB, 0xE1, 0xB9, 0xBD,
-               0xE1, 0xB9, 0xBF, 0xE1, 0xBA, 0x81, 0xE1, 0xBA,
-               0x83, 0xE1, 0xBA, 0x85, 0xE1, 0xBA, 0x87, 0xE1,
-               0xBA, 0x89, 0xE1, 0xBA, 0x8B, 0xE1, 0xBA, 0x8D,
-               0xE1, 0xBA, 0x8F, 0xE1, 0xBA, 0x91, 0xE1, 0xBA,
-               0x93, 0xE1, 0xBA, 0x95, 0xE1, 0xBA, 0xA1, 0xE1,
-               0xBA, 0xA3, 0xE1, 0xBA, 0xA5, 0xE1, 0xBA, 0xA7,
-               0xE1, 0xBA, 0xA9, 0xE1, 0xBA, 0xAB, 0xE1, 0xBA,
-               0xAD, 0xE1, 0xBA, 0xAF, 0xE1, 0xBA, 0xB1, 0xE1,
-               0xBA, 0xB3, 0xE1, 0xBA, 0xB5, 0xE1, 0xBA, 0xB7,
-               0xE1, 0xBA, 0xB9, 0xE1, 0xBA, 0xBB, 0xE1, 0xBA,
-               0xBD, 0xE1, 0xBA, 0xBF, 0xE1, 0xBB, 0x81, 0xE1,
-               0xBB, 0x83, 0xE1, 0xBB, 0x85, 0xE1, 0xBB, 0x87,
-               0xE1, 0xBB, 0x89, 0xE1, 0xBB, 0x8B, 0xE1, 0xBB,
-               0x8D, 0xE1, 0xBB, 0x8F, 0xE1, 0xBB, 0x91, 0xE1,
-               0xBB, 0x93, 0xE1, 0xBB, 0x95, 0xE1, 0xBB, 0x97,
-               0xE1, 0xBB, 0x99, 0xE1, 0xBB, 0x9B, 0xE1, 0xBB,
-               0x9D, 0xE1, 0xBB, 0x9F, 0xE1, 0xBB, 0xA1, 0xE1,
-               0xBB, 0xA3, 0xE1, 0xBB, 0xA5, 0xE1, 0xBB, 0xA7,
-               0xE1, 0xBB, 0xA9, 0xE1, 0xBB, 0xAB, 0xE1, 0xBB,
-               0xAD, 0xE1, 0xBB, 0xAF, 0xE1, 0xBB, 0xB1, 0xE1,
-               0xBB, 0xB3, 0xE1, 0xBB, 0xB5, 0xE1, 0xBB, 0xB7,
-               0xE1, 0xBB, 0xB9, 0xE1, 0xBC, 0x80, 0xE1, 0xBC,
-               0x81, 0xE1, 0xBC, 0x82, 0xE1, 0xBC, 0x83, 0xE1,
-               0xBC, 0x84, 0xE1, 0xBC, 0x85, 0xE1, 0xBC, 0x86,
-               0xE1, 0xBC, 0x87, 0xE1, 0xBC, 0x90, 0xE1, 0xBC,
-               0x91, 0xE1, 0xBC, 0x92, 0xE1, 0xBC, 0x93, 0xE1,
-               0xBC, 0x94, 0xE1, 0xBC, 0x95, 0xE1, 0xBC, 0xA0,
-               0xE1, 0xBC, 0xA1, 0xE1, 0xBC, 0xA2, 0xE1, 0xBC,
-               0xA3, 0xE1, 0xBC, 0xA4, 0xE1, 0xBC, 0xA5, 0xE1,
-               0xBC, 0xA6, 0xE1, 0xBC, 0xA7, 0xE1, 0xBC, 0xB0,
-               0xE1, 0xBC, 0xB1, 0xE1, 0xBC, 0xB2, 0xE1, 0xBC,
-               0xB3, 0xE1, 0xBC, 0xB4, 0xE1, 0xBC, 0xB5, 0xE1,
-               0xBC, 0xB6, 0xE1, 0xBC, 0xB7, 0xE1, 0xBD, 0x80,
-               0xE1, 0xBD, 0x81, 0xE1, 0xBD, 0x82, 0xE1, 0xBD,
-               0x83, 0xE1, 0xBD, 0x84, 0xE1, 0xBD, 0x85, 0xE1,
-               0xBD, 0x91, 0xE1, 0xBD, 0x93, 0xE1, 0xBD, 0x95,
-               0xE1, 0xBD, 0x97, 0xE1, 0xBD, 0xA0, 0xE1, 0xBD,
-               0xA1, 0xE1, 0xBD, 0xA2, 0xE1, 0xBD, 0xA3, 0xE1,
-               0xBD, 0xA4, 0xE1, 0xBD, 0xA5, 0xE1, 0xBD, 0xA6,
-               0xE1, 0xBD, 0xA7, 0xE1, 0xBE, 0x80, 0xE1, 0xBE,
-               0x81, 0xE1, 0xBE, 0x82, 0xE1, 0xBE, 0x83, 0xE1,
-               0xBE, 0x84, 0xE1, 0xBE, 0x85, 0xE1, 0xBE, 0x86,
-               0xE1, 0xBE, 0x87, 0xE1, 0xBE, 0x90, 0xE1, 0xBE,
-               0x91, 0xE1, 0xBE, 0x92, 0xE1, 0xBE, 0x93, 0xE1,
-               0xBE, 0x94, 0xE1, 0xBE, 0x95, 0xE1, 0xBE, 0x96,
-               0xE1, 0xBE, 0x97, 0xE1, 0xBE, 0xA0, 0xE1, 0xBE,
-               0xA1, 0xE1, 0xBE, 0xA2, 0xE1, 0xBE, 0xA3, 0xE1,
-               0xBE, 0xA4, 0xE1, 0xBE, 0xA5, 0xE1, 0xBE, 0xA6,
-               0xE1, 0xBE, 0xA7, 0xE1, 0xBE, 0xB0, 0xE1, 0xBE,
-               0xB1, 0xE1, 0xBD, 0xB0, 0xE1, 0xBD, 0xB1, 0xE1,
-               0xBE, 0xB3, 0xE1, 0xBD, 0xB2, 0xE1, 0xBD, 0xB3,
-               0xE1, 0xBD, 0xB4, 0xE1, 0xBD, 0xB5, 0xE1, 0xBF,
-               0x83, 0xE1, 0xBF, 0x90, 0xE1, 0xBF, 0x91, 0xE1,
-               0xBD, 0xB6, 0xE1, 0xBD, 0xB7, 0xE1, 0xBF, 0xA0,
-               0xE1, 0xBF, 0xA1, 0xE1, 0xBD, 0xBA, 0xE1, 0xBD,
-               0xBB, 0xE1, 0xBF, 0xA5, 0xE1, 0xBD, 0xB8, 0xE1,
-               0xBD, 0xB9, 0xE1, 0xBD, 0xBC, 0xE1, 0xBD, 0xBD,
-               0xE1, 0xBF, 0xB3, 0xCF, 0x89, 0x6B, 0xC3, 0xA5,
-               0xE2, 0x85, 0x8E, 0xE2, 0x85, 0xB0, 0xE2, 0x85,
-               0xB1, 0xE2, 0x85, 0xB2, 0xE2, 0x85, 0xB3, 0xE2,
-               0x85, 0xB4, 0xE2, 0x85, 0xB5, 0xE2, 0x85, 0xB6,
-               0xE2, 0x85, 0xB7, 0xE2, 0x85, 0xB8, 0xE2, 0x85,
-               0xB9, 0xE2, 0x85, 0xBA, 0xE2, 0x85, 0xBB, 0xE2,
-               0x85, 0xBC, 0xE2, 0x85, 0xBD, 0xE2, 0x85, 0xBE,
-               0xE2, 0x85, 0xBF, 0xE2, 0x86, 0x84, 0xE2, 0x93,
-               0x90, 0xE2, 0x93, 0x91, 0xE2, 0x93, 0x92, 0xE2,
-               0x93, 0x93, 0xE2, 0x93, 0x94, 0xE2, 0x93, 0x95,
-               0xE2, 0x93, 0x96, 0xE2, 0x93, 0x97, 0xE2, 0x93,
-               0x98, 0xE2, 0x93, 0x99, 0xE2, 0x93, 0x9A, 0xE2,
-               0x93, 0x9B, 0xE2, 0x93, 0x9C, 0xE2, 0x93, 0x9D,
-               0xE2, 0x93, 0x9E, 0xE2, 0x93, 0x9F, 0xE2, 0x93,
-               0xA0, 0xE2, 0x93, 0xA1, 0xE2, 0x93, 0xA2, 0xE2,
-               0x93, 0xA3, 0xE2, 0x93, 0xA4, 0xE2, 0x93, 0xA5,
-               0xE2, 0x93, 0xA6, 0xE2, 0x93, 0xA7, 0xE2, 0x93,
-               0xA8, 0xE2, 0x93, 0xA9, 0xE2, 0xB0, 0xB0, 0xE2,
-               0xB0, 0xB1, 0xE2, 0xB0, 0xB2, 0xE2, 0xB0, 0xB3,
-               0xE2, 0xB0, 0xB4, 0xE2, 0xB0, 0xB5, 0xE2, 0xB0,
-               0xB6, 0xE2, 0xB0, 0xB7, 0xE2, 0xB0, 0xB8, 0xE2,
-               0xB0, 0xB9, 0xE2, 0xB0, 0xBA, 0xE2, 0xB0, 0xBB,
-               0xE2, 0xB0, 0xBC, 0xE2, 0xB0, 0xBD, 0xE2, 0xB0,
-               0xBE, 0xE2, 0xB0, 0xBF, 0xE2, 0xB1, 0x80, 0xE2,
-               0xB1, 0x81, 0xE2, 0xB1, 0x82, 0xE2, 0xB1, 0x83,
-               0xE2, 0xB1, 0x84, 0xE2, 0xB1, 0x85, 0xE2, 0xB1,
-               0x86, 0xE2, 0xB1, 0x87, 0xE2, 0xB1, 0x88, 0xE2,
-               0xB1, 0x89, 0xE2, 0xB1, 0x8A, 0xE2, 0xB1, 0x8B,
-               0xE2, 0xB1, 0x8C, 0xE2, 0xB1, 0x8D, 0xE2, 0xB1,
-               0x8E, 0xE2, 0xB1, 0x8F, 0xE2, 0xB1, 0x90, 0xE2,
-               0xB1, 0x91, 0xE2, 0xB1, 0x92, 0xE2, 0xB1, 0x93,
-               0xE2, 0xB1, 0x94, 0xE2, 0xB1, 0x95, 0xE2, 0xB1,
-               0x96, 0xE2, 0xB1, 0x97, 0xE2, 0xB1, 0x98, 0xE2,
-               0xB1, 0x99, 0xE2, 0xB1, 0x9A, 0xE2, 0xB1, 0x9B,
-               0xE2, 0xB1, 0x9C, 0xE2, 0xB1, 0x9D, 0xE2, 0xB1,
-               0x9E, 0xE2, 0xB1, 0xA1, 0xC9, 0xAB, 0xE1, 0xB5,
-               0xBD, 0xC9, 0xBD, 0xE2, 0xB1, 0xA8, 0xE2, 0xB1,
-               0xAA, 0xE2, 0xB1, 0xAC, 0xE2, 0xB1, 0xB6, 0xE2,
-               0xB2, 0x81, 0xE2, 0xB2, 0x83, 0xE2, 0xB2, 0x85,
-               0xE2, 0xB2, 0x87, 0xE2, 0xB2, 0x89, 0xE2, 0xB2,
-               0x8B, 0xE2, 0xB2, 0x8D, 0xE2, 0xB2, 0x8F, 0xE2,
-               0xB2, 0x91, 0xE2, 0xB2, 0x93, 0xE2, 0xB2, 0x95,
-               0xE2, 0xB2, 0x97, 0xE2, 0xB2, 0x99, 0xE2, 0xB2,
-               0x9B, 0xE2, 0xB2, 0x9D, 0xE2, 0xB2, 0x9F, 0xE2,
-               0xB2, 0xA1, 0xE2, 0xB2, 0xA3, 0xE2, 0xB2, 0xA5,
-               0xE2, 0xB2, 0xA7, 0xE2, 0xB2, 0xA9, 0xE2, 0xB2,
-               0xAB, 0xE2, 0xB2, 0xAD, 0xE2, 0xB2, 0xAF, 0xE2,
-               0xB2, 0xB1, 0xE2, 0xB2, 0xB3, 0xE2, 0xB2, 0xB5,
-               0xE2, 0xB2, 0xB7, 0xE2, 0xB2, 0xB9, 0xE2, 0xB2,
-               0xBB, 0xE2, 0xB2, 0xBD, 0xE2, 0xB2, 0xBF, 0xE2,
-               0xB3, 0x81, 0xE2, 0xB3, 0x83, 0xE2, 0xB3, 0x85,
-               0xE2, 0xB3, 0x87, 0xE2, 0xB3, 0x89, 0xE2, 0xB3,
-               0x8B, 0xE2, 0xB3, 0x8D, 0xE2, 0xB3, 0x8F, 0xE2,
-               0xB3, 0x91, 0xE2, 0xB3, 0x93, 0xE2, 0xB3, 0x95,
-               0xE2, 0xB3, 0x97, 0xE2, 0xB3, 0x99, 0xE2, 0xB3,
-               0x9B, 0xE2, 0xB3, 0x9D, 0xE2, 0xB3, 0x9F, 0xE2,
-               0xB3, 0xA1, 0xE2, 0xB3, 0xA3, 0xEF, 0xBD, 0x81,
-               0xEF, 0xBD, 0x82, 0xEF, 0xBD, 0x83, 0xEF, 0xBD,
-               0x84, 0xEF, 0xBD, 0x85, 0xEF, 0xBD, 0x86, 0xEF,
-               0xBD, 0x87, 0xEF, 0xBD, 0x88, 0xEF, 0xBD, 0x89,
-               0xEF, 0xBD, 0x8A, 0xEF, 0xBD, 0x8B, 0xEF, 0xBD,
-               0x8C, 0xEF, 0xBD, 0x8D, 0xEF, 0xBD, 0x8E, 0xEF,
-               0xBD, 0x8F, 0xEF, 0xBD, 0x90, 0xEF, 0xBD, 0x91,
-               0xEF, 0xBD, 0x92, 0xEF, 0xBD, 0x93, 0xEF, 0xBD,
-               0x94, 0xEF, 0xBD, 0x95, 0xEF, 0xBD, 0x96, 0xEF,
-               0xBD, 0x97, 0xEF, 0xBD, 0x98, 0xEF, 0xBD, 0x99,
-               0xEF, 0xBD, 0x9A, 0xF0, 0x90, 0x90, 0xA8, 0xF0,
-               0x90, 0x90, 0xA9, 0xF0, 0x90, 0x90, 0xAA, 0xF0,
-               0x90, 0x90, 0xAB, 0xF0, 0x90, 0x90, 0xAC, 0xF0,
-               0x90, 0x90, 0xAD, 0xF0, 0x90, 0x90, 0xAE, 0xF0,
-               0x90, 0x90, 0xAF, 0xF0, 0x90, 0x90, 0xB0, 0xF0,
-               0x90, 0x90, 0xB1, 0xF0, 0x90, 0x90, 0xB2, 0xF0,
-               0x90, 0x90, 0xB3, 0xF0, 0x90, 0x90, 0xB4, 0xF0,
-               0x90, 0x90, 0xB5, 0xF0, 0x90, 0x90, 0xB6, 0xF0,
-               0x90, 0x90, 0xB7, 0xF0, 0x90, 0x90, 0xB8, 0xF0,
-               0x90, 0x90, 0xB9, 0xF0, 0x90, 0x90, 0xBA, 0xF0,
-               0x90, 0x90, 0xBB, 0xF0, 0x90, 0x90, 0xBC, 0xF0,
-               0x90, 0x90, 0xBD, 0xF0, 0x90, 0x90, 0xBE, 0xF0,
-               0x90, 0x90, 0xBF, 0xF0, 0x90, 0x91, 0x80, 0xF0,
-               0x90, 0x91, 0x81, 0xF0, 0x90, 0x91, 0x82, 0xF0,
-               0x90, 0x91, 0x83, 0xF0, 0x90, 0x91, 0x84, 0xF0,
-               0x90, 0x91, 0x85, 0xF0, 0x90, 0x91, 0x86, 0xF0,
-               0x90, 0x91, 0x87, 0xF0, 0x90, 0x91, 0x88, 0xF0,
-               0x90, 0x91, 0x89, 0xF0, 0x90, 0x91, 0x8A, 0xF0,
-               0x90, 0x91, 0x8B, 0xF0, 0x90, 0x91, 0x8C, 0xF0,
-               0x90, 0x91, 0x8D, 0xF0, 0x90, 0x91, 0x8E, 0xF0,
-               0x90, 0x91, 0x8F,
-       },
-};
-
-static const u8_displacement_t u8_toupper_b3_tbl[2][5][256] = {
-       {
-               {       /* Third byte table 0. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 0, 0 }, { 1, 2 },
-                       { 2, 64 }, { 3, 125 }, { 4, 188 }, { 5, 226 },
-                       { 6, 288 }, { 7, 338 }, { 8, 364 }, { N_, 0 },
-                       { N_, 0 }, { 9, 376 }, { 10, 378 }, { 11, 416 },
-                       { 12, 486 }, { 13, 518 }, { 14, 614 }, { 15, 670 },
-                       { 16, 724 }, { 17, 740 }, { 18, 802 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 1. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 19, 816 }, { 20, 912 }, { 21, 1008 }, { 22, 1092 },
-                       { 23, 1179 }, { 24, 1269 }, { 25, 1365 }, { 26, 1448 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 2. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 27, 1469 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { 28, 1517 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 3. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 29, 1595 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 4. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 30, 1673 }, { 31, 1769 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-       },
-       {
-               {       /* Third byte table 0. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { 0, 0 }, { 1, 2 },
-                       { 2, 64 }, { 3, 125 }, { 4, 188 }, { 5, 230 },
-                       { 6, 292 }, { 7, 344 }, { 8, 388 }, { N_, 0 },
-                       { N_, 0 }, { 9, 404 }, { 10, 412 }, { 11, 450 },
-                       { 12, 524 }, { 13, 556 }, { 14, 652 }, { 15, 708 },
-                       { 16, 772 }, { 17, 792 }, { 18, 854 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 1. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 19, 868 }, { N_, 0 }, { N_, 0 },
-                       { 20, 871 }, { 21, 967 }, { 22, 1063 }, { 23, 1147 },
-                       { 24, 1234 }, { 25, 1324 }, { 26, 1420 }, { 27, 1503 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 2. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 28, 1524 }, { 29, 1575 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { 30, 1578 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 31, 1656 }, { 32, 1704 }, { 33, 1816 }, { 34, 1912 },
-                       { 35, 1966 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 3. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { 36, 2080 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-               {       /* Third byte table 4. */
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { 37, 2158 }, { 38, 2254 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-                       { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 },
-               },
-       },
-};
-
-static const uchar_t u8_toupper_b4_tbl[2][39][257] = {
-       {
-               {       /* Fourth byte table 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,   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,   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,   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,   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,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,
-               },
-               {       /* Fourth byte table 1. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       46,  48,  50,  52,  54,  56,  58,  60,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,
-               },
-               {       /* Fourth byte table 2. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   4,   4,   6,   6,
-                       8,   8,   10,  10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  30,  30,
-                       32,  32,  34,  34,  36,  36,  38,  38,
-                       40,  40,  42,  42,  44,  44,  46,  46,
-                       48,  48,  49,  49,  51,  51,  53,  53,
-                       55,  55,  55,  57,  57,  59,  59,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,
-               },
-               {       /* Fourth byte table 3. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  30,  30,
-                       32,  32,  34,  34,  36,  36,  38,  38,
-                       40,  40,  42,  42,  44,  44,  46,  46,
-                       48,  48,  50,  50,  52,  52,  54,  54,
-                       56,  56,  56,  58,  58,  60,  60,  62,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,
-               },
-               {       /* Fourth byte table 4. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   2,   2,   4,   4,
-                       4,   6,   6,   6,   6,   8,   8,   8,
-                       8,   8,   8,   10,  10,  10,  12,  12,
-                       12,  12,  14,  14,  14,  14,  14,  16,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       22,  24,  24,  24,  24,  24,  26,  26,
-                       26,  28,  28,  28,  28,  30,  30,  32,
-                       32,  32,  34,  34,  34,  34,  36,  36,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,
-               },
-               {       /* Fourth byte table 5. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   2,   4,
-                       4,   6,   8,   8,   10,  12,  12,  14,
-                       14,  16,  16,  18,  18,  20,  20,  22,
-                       22,  24,  24,  26,  26,  28,  30,  30,
-                       32,  32,  34,  34,  36,  36,  38,  38,
-                       40,  40,  42,  42,  44,  44,  46,  46,
-                       48,  48,  48,  50,  52,  52,  54,  54,
-                       54,  54,  56,  56,  58,  58,  60,  60,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,
-               },
-               {       /* Fourth byte table 6. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   4,   4,   6,   6,
-                       8,   8,   10,  10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  30,  30,
-                       32,  32,  32,  32,  34,  34,  36,  36,
-                       38,  38,  40,  40,  42,  42,  44,  44,
-                       46,  46,  48,  48,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  50,  50,  50,
-                       50,
-               },
-               {       /* Fourth byte table 7. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   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,   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,   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,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   2,   4,   4,   6,
-                       8,   8,   10,  10,  12,  12,  12,  12,
-                       12,  14,  14,  14,  16,  16,  16,  16,
-                       16,  18,  20,  20,  20,  20,  20,  20,
-                       22,  22,  22,  24,  24,  24,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,  26,  26,  26,  26,  26,  26,  26,
-                       26,
-               },
-               {       /* Fourth byte table 8. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   2,   4,   4,   4,   4,
-                       4,   6,   6,   8,   10,  10,  10,  10,
-                       10,  10,  10,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,  12,  12,  12,  12,  12,  12,  12,
-                       12,
-               },
-               {       /* Fourth byte table 9. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,
-               },
-               {       /* Fourth byte table 10. */
-                       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,   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,   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,   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,   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,   2,   4,   6,
-                       8,   8,   10,  12,  14,  16,  18,  20,
-                       22,  24,  26,  28,  30,  32,  34,  36,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,
-               },
-               {       /* Fourth byte table 11. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       30,  32,  34,  34,  34,  34,  36,  38,
-                       38,  38,  40,  40,  42,  42,  44,  44,
-                       46,  46,  48,  48,  50,  50,  52,  52,
-                       54,  54,  56,  56,  58,  58,  60,  60,
-                       62,  64,  66,  68,  68,  68,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,  70,  70,  70,  70,  70,  70,  70,
-                       70,
-               },
-               {       /* Fourth byte table 12. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   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,   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,   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,   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,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,
-               },
-               {       /* Fourth byte table 13. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       48,  50,  52,  54,  56,  58,  60,  62,
-                       64,  64,  66,  66,  68,  68,  70,  70,
-                       72,  72,  74,  74,  76,  76,  78,  78,
-                       80,  80,  82,  82,  84,  84,  86,  86,
-                       88,  88,  90,  90,  92,  92,  94,  94,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 14. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   4,   4,   6,   6,
-                       8,   8,   10,  10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  30,  30,
-                       32,  32,  34,  34,  36,  36,  38,  38,
-                       40,  40,  42,  42,  44,  44,  46,  46,
-                       48,  48,  50,  50,  52,  52,  54,  54,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,
-               },
-               {       /* Fourth byte table 15. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   2,   2,   4,   4,   6,
-                       6,   8,   8,   10,  10,  12,  12,  14,
-                       14,  14,  16,  16,  18,  18,  20,  20,
-                       22,  22,  24,  24,  26,  26,  28,  28,
-                       30,  30,  32,  32,  34,  34,  36,  36,
-                       38,  38,  40,  40,  42,  42,  44,  44,
-                       46,  46,  48,  48,  50,  50,  52,  52,
-                       52,  52,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,
-               },
-               {       /* Fourth byte table 16. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   4,   4,   6,   6,
-                       8,   8,   10,  10,  12,  12,  14,  14,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,
-               },
-               {       /* Fourth byte table 17. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   4,   6,   8,   10,  12,
-                       14,  16,  18,  20,  22,  24,  26,  28,
-                       30,  32,  34,  36,  38,  40,  42,  44,
-                       46,  48,  50,  52,  54,  56,  58,  60,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,
-               },
-               {       /* Fourth byte table 18. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,
-               },
-               {       /* Fourth byte table 19. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   3,   6,   6,   9,   9,
-                       12,  12,  15,  15,  18,  18,  21,  21,
-                       24,  24,  27,  27,  30,  30,  33,  33,
-                       36,  36,  39,  39,  42,  42,  45,  45,
-                       48,  48,  51,  51,  54,  54,  57,  57,
-                       60,  60,  63,  63,  66,  66,  69,  69,
-                       72,  72,  75,  75,  78,  78,  81,  81,
-                       84,  84,  87,  87,  90,  90,  93,  93,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 20. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   3,   6,   6,   9,   9,
-                       12,  12,  15,  15,  18,  18,  21,  21,
-                       24,  24,  27,  27,  30,  30,  33,  33,
-                       36,  36,  39,  39,  42,  42,  45,  45,
-                       48,  48,  51,  51,  54,  54,  57,  57,
-                       60,  60,  63,  63,  66,  66,  69,  69,
-                       72,  72,  75,  75,  78,  78,  81,  81,
-                       84,  84,  87,  87,  90,  90,  93,  93,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 21. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   3,   6,   6,   9,   9,
-                       12,  12,  15,  15,  18,  18,  21,  21,
-                       24,  24,  27,  27,  30,  30,  33,  33,
-                       33,  33,  33,  33,  36,  36,  36,  36,
-                       36,  36,  39,  39,  42,  42,  45,  45,
-                       48,  48,  51,  51,  54,  54,  57,  57,
-                       60,  60,  63,  63,  66,  66,  69,  69,
-                       72,  72,  75,  75,  78,  78,  81,  81,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,
-               },
-               {       /* Fourth byte table 22. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   3,   6,   6,   9,   9,
-                       12,  12,  15,  15,  18,  18,  21,  21,
-                       24,  24,  27,  27,  30,  30,  33,  33,
-                       36,  36,  39,  39,  42,  42,  45,  45,
-                       48,  48,  51,  51,  54,  54,  57,  57,
-                       60,  60,  63,  63,  66,  66,  69,  69,
-                       72,  72,  75,  75,  78,  78,  81,  81,
-                       84,  84,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,
-               },
-               {       /* Fourth byte table 23. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  27,  30,  33,  36,  39,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  45,  48,  51,  54,  57,  60,  63,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  69,  72,  75,  78,  81,  84,  87,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,
-               },
-               {       /* Fourth byte table 24. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  21,  21,  24,  24,  27,  27,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  33,  36,  39,  42,  45,  48,  51,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  57,  60,  63,  66,  69,  72,  75,
-                       78,  81,  84,  87,  90,  93,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 25. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  75,  78,  78,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,
-               },
-               {       /* Fourth byte table 26. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   6,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   12,  15,  15,  15,  15,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 27. */
-                       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,   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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,
-               },
-               {       /* Fourth byte table 28. */
-                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,
-               },
-               {       /* Fourth byte table 29. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   6,   9,   12,  15,  18,
-                       21,  24,  27,  30,  33,  36,  39,  42,
-                       45,  48,  51,  54,  57,  60,  63,  66,
-                       69,  72,  75,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,
-               },
-               {       /* Fourth byte table 30. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  68,  72,  76,  80,  84,  88,  92,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 31. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,
-               },
-               {       /* Fourth byte table 32. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 33. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 34. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 35. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 36. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 37. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-               {       /* Fourth byte table 38. */
-                       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,   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,   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,   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,   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,   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,   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,
-               },
-       },
-       {
-               {       /* Fourth byte table 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,   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,   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,   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,   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,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,
-               },
-               {       /* Fourth byte table 1. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       46,  48,  50,  52,  54,  56,  58,  60,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,
-               },
-               {       /* Fourth byte table 2. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   4,   4,   6,   6,
-                       8,   8,   10,  10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  30,  30,
-                       32,  32,  34,  34,  36,  36,  38,  38,
-                       40,  40,  42,  42,  44,  44,  46,  46,
-                       48,  48,  49,  49,  51,  51,  53,  53,
-                       55,  55,  55,  57,  57,  59,  59,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,  61,  61,  61,  61,  61,  61,  61,
-                       61,
-               },
-               {       /* Fourth byte table 3. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   4,   4,   6,   6,   8,
-                       8,   10,  10,  10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  30,  30,
-                       32,  32,  34,  34,  36,  36,  38,  38,
-                       40,  40,  42,  42,  44,  44,  46,  46,
-                       48,  48,  50,  50,  52,  52,  54,  54,
-                       56,  56,  56,  58,  58,  60,  60,  62,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,  63,  63,  63,  63,  63,  63,  63,
-                       63,
-               },
-               {       /* Fourth byte table 4. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   2,   4,   4,   6,   6,
-                       6,   8,   8,   8,   8,   10,  10,  10,
-                       10,  10,  10,  12,  12,  12,  14,  14,
-                       14,  14,  16,  18,  18,  18,  18,  20,
-                       20,  20,  22,  22,  24,  24,  26,  26,
-                       26,  28,  28,  28,  28,  28,  30,  30,
-                       30,  32,  32,  32,  32,  34,  34,  36,
-                       36,  36,  38,  38,  38,  38,  40,  40,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,
-               },
-               {       /* Fourth byte table 5. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   2,   4,
-                       4,   6,   8,   8,   10,  12,  12,  14,
-                       14,  16,  16,  18,  18,  20,  20,  22,
-                       22,  24,  24,  26,  26,  28,  30,  30,
-                       32,  32,  34,  34,  36,  36,  38,  38,
-                       40,  40,  42,  42,  44,  44,  46,  46,
-                       48,  48,  48,  50,  52,  52,  54,  54,
-                       54,  54,  56,  56,  58,  58,  60,  60,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,
-               },
-               {       /* Fourth byte table 6. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   4,   4,   6,   6,
-                       8,   8,   10,  10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  30,  30,
-                       32,  32,  32,  32,  34,  34,  36,  36,
-                       38,  38,  40,  40,  42,  42,  44,  44,
-                       46,  46,  48,  48,  50,  50,  50,  50,
-                       50,  50,  50,  50,  50,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,  52,  52,  52,  52,  52,  52,  52,
-                       52,
-               },
-               {       /* Fourth byte table 7. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   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,   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,   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,   2,   2,   2,   2,   2,
-                       4,   4,   6,   6,   8,   8,   10,  10,
-                       12,  12,  12,  12,  14,  16,  16,  18,
-                       20,  20,  22,  22,  24,  24,  24,  24,
-                       24,  26,  26,  26,  28,  28,  28,  28,
-                       28,  30,  32,  32,  35,  35,  35,  35,
-                       37,  37,  37,  39,  39,  39,  41,  41,
-                       41,  41,  41,  41,  41,  41,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,  44,  44,  44,  44,  44,  44,  44,
-                       44,
-               },
-               {       /* Fourth byte table 8. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   2,   2,   4,   4,   4,   4,
-                       4,   6,   8,   10,  12,  14,  14,  14,
-                       14,  14,  14,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,  16,  16,  16,  16,  16,  16,  16,
-                       16,
-               },
-               {       /* Fourth byte table 9. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   4,   6,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,   8,   8,   8,   8,   8,   8,   8,
-                       8,
-               },
-               {       /* Fourth byte table 10. */
-                       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,   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,   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,   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,   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,   2,   4,   6,
-                       8,   8,   10,  12,  14,  16,  18,  20,
-                       22,  24,  26,  28,  30,  32,  34,  36,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,  38,  38,  38,  38,  38,  38,  38,
-                       38,
-               },
-               {       /* Fourth byte table 11. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       30,  32,  34,  34,  34,  34,  36,  38,
-                       38,  38,  40,  40,  42,  42,  44,  44,
-                       46,  46,  48,  48,  50,  50,  52,  52,
-                       54,  54,  56,  56,  58,  58,  60,  60,
-                       62,  64,  66,  68,  68,  68,  70,  70,
-                       70,  72,  72,  72,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,  74,  74,  74,  74,  74,  74,  74,
-                       74,
-               },
-               {       /* Fourth byte table 12. */
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   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,   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,   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,   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,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,  32,  32,  32,  32,  32,  32,  32,
-                       32,
-               },
-               {       /* Fourth byte table 13. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       16,  18,  20,  22,  24,  26,  28,  30,
-                       32,  34,  36,  38,  40,  42,  44,  46,
-                       48,  50,  52,  54,  56,  58,  60,  62,
-                       64,  64,  66,  66,  68,  68,  70,  70,
-                       72,  72,  74,  74,  76,  76,  78,  78,
-                       80,  80,  82,  82,  84,  84,  86,  86,
-                       88,  88,  90,  90,  92,  92,  94,  94,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 14. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   2,   2,   2,   2,
-                       2,   2,   2,   2,   4,   4,   6,   6,
-                       8,   8,   10,  10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  30,  30,
-                       32,  32,  34,  34,  36,  36,  38,  38,
-                       40,  40,  42,  42,  44,  44,  46,  46,
-                       48,  48,  50,  50,  52,  52,  54,  54,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,  56,  56,  56,  56,  56,  56,  56,
-                       56,
-               },
-               {       /* Fourth byte table 15. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   2,   2,   4,   4,   6,
-                       6,   8,   8,   10,  10,  12,  12,  14,
-                       16,  16,  18,  18,  20,  20,  22,  22,
-                       24,  24,  26,  26,  28,  28,  30,  30,
-                       32,  32,  34,  34,  36,  36,  38,  38,
-                       40,  40,  42,  42,  44,  44,  46,  46,
-                       48,  48,  50,  50,  52,  52,  54,  54,
-                       56,  56,  58,  58,  60,  60,  62,  62,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-               {       /* Fourth byte table 16. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   2,   4,   4,   6,   6,
-                       8,   8,   10,  10,  12,  12,  14,  14,
-                       16,  16,  18,  18,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,  20,  20,  20,  20,  20,  20,  20,
-                       20,
-               },
-               {       /* Fourth byte table 17. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   2,   4,   6,   8,   10,  12,
-                       14,  16,  18,  20,  22,  24,  26,  28,
-                       30,  32,  34,  36,  38,  40,  42,  44,
-                       46,  48,  50,  52,  54,  56,  58,  60,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,  62,  62,  62,  62,  62,  62,  62,
-                       62,
-               },
-               {       /* Fourth byte table 18. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   2,   4,   6,   8,   10,  12,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,  14,  14,  14,  14,  14,  14,  14,
-                       14,
-               },
-               {       /* Fourth byte table 19. */
-                       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,   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,   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,   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,   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,   0,   0,   0,   0,   0,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 20. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   3,   6,   6,   9,   9,
-                       12,  12,  15,  15,  18,  18,  21,  21,
-                       24,  24,  27,  27,  30,  30,  33,  33,
-                       36,  36,  39,  39,  42,  42,  45,  45,
-                       48,  48,  51,  51,  54,  54,  57,  57,
-                       60,  60,  63,  63,  66,  66,  69,  69,
-                       72,  72,  75,  75,  78,  78,  81,  81,
-                       84,  84,  87,  87,  90,  90,  93,  93,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 21. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   3,   6,   6,   9,   9,
-                       12,  12,  15,  15,  18,  18,  21,  21,
-                       24,  24,  27,  27,  30,  30,  33,  33,
-                       36,  36,  39,  39,  42,  42,  45,  45,
-                       48,  48,  51,  51,  54,  54,  57,  57,
-                       60,  60,  63,  63,  66,  66,  69,  69,
-                       72,  72,  75,  75,  78,  78,  81,  81,
-                       84,  84,  87,  87,  90,  90,  93,  93,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 22. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   3,   6,   6,   9,   9,
-                       12,  12,  15,  15,  18,  18,  21,  21,
-                       24,  24,  27,  27,  30,  30,  33,  33,
-                       33,  33,  33,  33,  36,  36,  36,  36,
-                       36,  36,  39,  39,  42,  42,  45,  45,
-                       48,  48,  51,  51,  54,  54,  57,  57,
-                       60,  60,  63,  63,  66,  66,  69,  69,
-                       72,  72,  75,  75,  78,  78,  81,  81,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,  84,  84,  84,  84,  84,  84,  84,
-                       84,
-               },
-               {       /* Fourth byte table 23. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   3,   6,   6,   9,   9,
-                       12,  12,  15,  15,  18,  18,  21,  21,
-                       24,  24,  27,  27,  30,  30,  33,  33,
-                       36,  36,  39,  39,  42,  42,  45,  45,
-                       48,  48,  51,  51,  54,  54,  57,  57,
-                       60,  60,  63,  63,  66,  66,  69,  69,
-                       72,  72,  75,  75,  78,  78,  81,  81,
-                       84,  84,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,  87,  87,  87,  87,  87,  87,  87,
-                       87,
-               },
-               {       /* Fourth byte table 24. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  27,  30,  33,  36,  39,  42,  42,
-                       42,  42,  42,  42,  42,  42,  42,  42,
-                       42,  45,  48,  51,  54,  57,  60,  63,
-                       66,  66,  66,  66,  66,  66,  66,  66,
-                       66,  69,  72,  75,  78,  81,  84,  87,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,  90,  90,  90,  90,  90,  90,  90,
-                       90,
-               },
-               {       /* Fourth byte table 25. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  21,  21,  24,  24,  27,  27,
-                       30,  30,  30,  30,  30,  30,  30,  30,
-                       30,  33,  36,  39,  42,  45,  48,  51,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  57,  60,  63,  66,  69,  72,  75,
-                       78,  81,  84,  87,  90,  93,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 26. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  24,  24,  24,  24,  24,  24,  24,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  72,  72,  72,  72,  72,  72,  72,
-                       72,  75,  78,  78,  81,  81,  81,  81,
-                       81,  81,  81,  81,  81,  81,  81,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,  83,  83,  83,  83,  83,  83,  83,
-                       83,
-               },
-               {       /* Fourth byte table 27. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   6,   9,   9,   9,   9,   9,   9,
-                       9,   9,   9,   9,   9,   9,   9,   9,
-                       9,   12,  15,  15,  15,  15,  18,  18,
-                       18,  18,  18,  18,  18,  18,  18,  18,
-                       18,  18,  18,  18,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,  21,  21,  21,  21,  21,  21,  21,
-                       21,
-               },
-               {       /* Fourth byte table 28. */
-                       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,   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,   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,   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,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   6,   9,   12,  15,  18,  21,  24,
-                       27,  30,  33,  36,  39,  42,  45,  48,
-                       51,  51,  51,  51,  51,  51,  51,  51,
-                       51,  51,  51,  51,  51,  51,  51,  51,
-                       51,  51,  51,  51,  51,  51,  51,  51,
-                       51,  51,  51,  51,  51,  51,  51,  51,
-                       51,  51,  51,  51,  51,  51,  51,  51,
-                       51,  51,  51,  51,  51,  51,  51,  51,
-                       51,  51,  51,  51,  51,  51,  51,  51,
-                       51,  51,  51,  51,  51,  51,  51,  51,
-                       51,
-               },
-               {       /* Fourth byte table 29. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,   3,   3,   3,   3,   3,   3,   3,
-                       3,
-               },
-               {       /* Fourth byte table 30. */
-                       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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,
-               },
-               {       /* Fourth byte table 31. */
-                       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,   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,   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,   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,   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,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,  48,  48,  48,  48,  48,  48,  48,
-                       48,
-               },
-               {       /* Fourth byte table 32. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       93,  93,  96,  96,  96,  96,  98,  100,
-                       100, 103, 103, 106, 106, 109, 109, 109,
-                       109, 109, 109, 109, 109, 109, 109, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112, 112, 112, 112, 112, 112, 112, 112,
-                       112,
-               },
-               {       /* Fourth byte table 33. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   3,   6,   6,   9,   9,
-                       12,  12,  15,  15,  18,  18,  21,  21,
-                       24,  24,  27,  27,  30,  30,  33,  33,
-                       36,  36,  39,  39,  42,  42,  45,  45,
-                       48,  48,  51,  51,  54,  54,  57,  57,
-                       60,  60,  63,  63,  66,  66,  69,  69,
-                       72,  72,  75,  75,  78,  78,  81,  81,
-                       84,  84,  87,  87,  90,  90,  93,  93,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 34. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   3,   6,   6,   9,   9,
-                       12,  12,  15,  15,  18,  18,  21,  21,
-                       24,  24,  27,  27,  30,  30,  33,  33,
-                       36,  36,  39,  39,  42,  42,  45,  45,
-                       48,  48,  51,  51,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,  54,  54,  54,  54,  54,  54,  54,
-                       54,
-               },
-               {       /* Fourth byte table 35. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   3,   6,   9,   12,  15,  18,  21,
-                       24,  27,  30,  33,  36,  39,  42,  45,
-                       48,  51,  54,  57,  60,  63,  66,  69,
-                       72,  75,  78,  81,  84,  87,  90,  93,
-                       96,  99,  102, 105, 108, 111, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114, 114, 114, 114, 114, 114, 114, 114,
-                       114,
-               },
-               {       /* Fourth byte table 36. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   3,   6,   9,   12,  15,  18,
-                       21,  24,  27,  30,  33,  36,  39,  42,
-                       45,  48,  51,  54,  57,  60,  63,  66,
-                       69,  72,  75,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,  78,  78,  78,  78,  78,  78,  78,
-                       78,
-               },
-               {       /* Fourth byte table 37. */
-                       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,   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,   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,   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,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  68,  72,  76,  80,  84,  88,  92,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,  96,  96,  96,  96,  96,  96,  96,
-                       96,
-               },
-               {       /* Fourth byte table 38. */
-                       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,   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,   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,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   0,   0,   0,   0,   0,   0,   0,
-                       0,   4,   8,   12,  16,  20,  24,  28,
-                       32,  36,  40,  44,  48,  52,  56,  60,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,  64,  64,  64,  64,  64,  64,  64,
-                       64,
-               },
-       },
-};
-
-static const uchar_t u8_toupper_final_tbl[2][2318] = {
-       {
-               0xCE, 0x9C, 0xC3, 0x80, 0xC3, 0x81, 0xC3, 0x82,
-               0xC3, 0x83, 0xC3, 0x84, 0xC3, 0x85, 0xC3, 0x86,
-               0xC3, 0x87, 0xC3, 0x88, 0xC3, 0x89, 0xC3, 0x8A,
-               0xC3, 0x8B, 0xC3, 0x8C, 0xC3, 0x8D, 0xC3, 0x8E,
-               0xC3, 0x8F, 0xC3, 0x90, 0xC3, 0x91, 0xC3, 0x92,
-               0xC3, 0x93, 0xC3, 0x94, 0xC3, 0x95, 0xC3, 0x96,
-               0xC3, 0x98, 0xC3, 0x99, 0xC3, 0x9A, 0xC3, 0x9B,
-               0xC3, 0x9C, 0xC3, 0x9D, 0xC3, 0x9E, 0xC5, 0xB8,
-               0xC4, 0x80, 0xC4, 0x82, 0xC4, 0x84, 0xC4, 0x86,
-               0xC4, 0x88, 0xC4, 0x8A, 0xC4, 0x8C, 0xC4, 0x8E,
-               0xC4, 0x90, 0xC4, 0x92, 0xC4, 0x94, 0xC4, 0x96,
-               0xC4, 0x98, 0xC4, 0x9A, 0xC4, 0x9C, 0xC4, 0x9E,
-               0xC4, 0xA0, 0xC4, 0xA2, 0xC4, 0xA4, 0xC4, 0xA6,
-               0xC4, 0xA8, 0xC4, 0xAA, 0xC4, 0xAC, 0xC4, 0xAE,
-               0x49, 0xC4, 0xB2, 0xC4, 0xB4, 0xC4, 0xB6, 0xC4,
-               0xB9, 0xC4, 0xBB, 0xC4, 0xBD, 0xC4, 0xBF, 0xC5,
-               0x81, 0xC5, 0x83, 0xC5, 0x85, 0xC5, 0x87, 0xC5,
-               0x8A, 0xC5, 0x8C, 0xC5, 0x8E, 0xC5, 0x90, 0xC5,
-               0x92, 0xC5, 0x94, 0xC5, 0x96, 0xC5, 0x98, 0xC5,
-               0x9A, 0xC5, 0x9C, 0xC5, 0x9E, 0xC5, 0xA0, 0xC5,
-               0xA2, 0xC5, 0xA4, 0xC5, 0xA6, 0xC5, 0xA8, 0xC5,
-               0xAA, 0xC5, 0xAC, 0xC5, 0xAE, 0xC5, 0xB0, 0xC5,
-               0xB2, 0xC5, 0xB4, 0xC5, 0xB6, 0xC5, 0xB9, 0xC5,
-               0xBB, 0xC5, 0xBD, 0x53, 0xC6, 0x82, 0xC6, 0x84,
-               0xC6, 0x87, 0xC6, 0x8B, 0xC6, 0x91, 0xC7, 0xB6,
-               0xC6, 0x98, 0xC8, 0xA0, 0xC6, 0xA0, 0xC6, 0xA2,
-               0xC6, 0xA4, 0xC6, 0xA7, 0xC6, 0xAC, 0xC6, 0xAF,
-               0xC6, 0xB3, 0xC6, 0xB5, 0xC6, 0xB8, 0xC6, 0xBC,
-               0xC7, 0xB7, 0xC7, 0x84, 0xC7, 0x84, 0xC7, 0x87,
-               0xC7, 0x87, 0xC7, 0x8A, 0xC7, 0x8A, 0xC7, 0x8D,
-               0xC7, 0x8F, 0xC7, 0x91, 0xC7, 0x93, 0xC7, 0x95,
-               0xC7, 0x97, 0xC7, 0x99, 0xC7, 0x9B, 0xC6, 0x8E,
-               0xC7, 0x9E, 0xC7, 0xA0, 0xC7, 0xA2, 0xC7, 0xA4,
-               0xC7, 0xA6, 0xC7, 0xA8, 0xC7, 0xAA, 0xC7, 0xAC,
-               0xC7, 0xAE, 0xC7, 0xB1, 0xC7, 0xB1, 0xC7, 0xB4,
-               0xC7, 0xB8, 0xC7, 0xBA, 0xC7, 0xBC, 0xC7, 0xBE,
-               0xC8, 0x80, 0xC8, 0x82, 0xC8, 0x84, 0xC8, 0x86,
-               0xC8, 0x88, 0xC8, 0x8A, 0xC8, 0x8C, 0xC8, 0x8E,
-               0xC8, 0x90, 0xC8, 0x92, 0xC8, 0x94, 0xC8, 0x96,
-               0xC8, 0x98, 0xC8, 0x9A, 0xC8, 0x9C, 0xC8, 0x9E,
-               0xC8, 0xA2, 0xC8, 0xA4, 0xC8, 0xA6, 0xC8, 0xA8,
-               0xC8, 0xAA, 0xC8, 0xAC, 0xC8, 0xAE, 0xC8, 0xB0,
-               0xC8, 0xB2, 0xC6, 0x81, 0xC6, 0x86, 0xC6, 0x89,
-               0xC6, 0x8A, 0xC6, 0x8F, 0xC6, 0x90, 0xC6, 0x93,
-               0xC6, 0x94, 0xC6, 0x97, 0xC6, 0x96, 0xC6, 0x9C,
-               0xC6, 0x9D, 0xC6, 0x9F, 0xC6, 0xA6, 0xC6, 0xA9,
-               0xC6, 0xAE, 0xC6, 0xB1, 0xC6, 0xB2, 0xC6, 0xB7,
-               0xCE, 0x99, 0xCE, 0x86, 0xCE, 0x88, 0xCE, 0x89,
-               0xCE, 0x8A, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93,
-               0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97,
-               0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B,
-               0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F,
-               0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0xA3, 0xCE, 0xA3,
-               0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7,
-               0xCE, 0xA8, 0xCE, 0xA9, 0xCE, 0xAA, 0xCE, 0xAB,
-               0xCE, 0x8C, 0xCE, 0x8E, 0xCE, 0x8F, 0xCE, 0x92,
-               0xCE, 0x98, 0xCE, 0xA6, 0xCE, 0xA0, 0xCF, 0x98,
-               0xCF, 0x9A, 0xCF, 0x9C, 0xCF, 0x9E, 0xCF, 0xA0,
-               0xCF, 0xA2, 0xCF, 0xA4, 0xCF, 0xA6, 0xCF, 0xA8,
-               0xCF, 0xAA, 0xCF, 0xAC, 0xCF, 0xAE, 0xCE, 0x9A,
-               0xCE, 0xA1, 0xCE, 0xA3, 0xCE, 0x95, 0xD0, 0x90,
-               0xD0, 0x91, 0xD0, 0x92, 0xD0, 0x93, 0xD0, 0x94,
-               0xD0, 0x95, 0xD0, 0x96, 0xD0, 0x97, 0xD0, 0x98,
-               0xD0, 0x99, 0xD0, 0x9A, 0xD0, 0x9B, 0xD0, 0x9C,
-               0xD0, 0x9D, 0xD0, 0x9E, 0xD0, 0x9F, 0xD0, 0xA0,
-               0xD0, 0xA1, 0xD0, 0xA2, 0xD0, 0xA3, 0xD0, 0xA4,
-               0xD0, 0xA5, 0xD0, 0xA6, 0xD0, 0xA7, 0xD0, 0xA8,
-               0xD0, 0xA9, 0xD0, 0xAA, 0xD0, 0xAB, 0xD0, 0xAC,
-               0xD0, 0xAD, 0xD0, 0xAE, 0xD0, 0xAF, 0xD0, 0x80,
-               0xD0, 0x81, 0xD0, 0x82, 0xD0, 0x83, 0xD0, 0x84,
-               0xD0, 0x85, 0xD0, 0x86, 0xD0, 0x87, 0xD0, 0x88,
-               0xD0, 0x89, 0xD0, 0x8A, 0xD0, 0x8B, 0xD0, 0x8C,
-               0xD0, 0x8D, 0xD0, 0x8E, 0xD0, 0x8F, 0xD1, 0xA0,
-               0xD1, 0xA2, 0xD1, 0xA4, 0xD1, 0xA6, 0xD1, 0xA8,
-               0xD1, 0xAA, 0xD1, 0xAC, 0xD1, 0xAE, 0xD1, 0xB0,
-               0xD1, 0xB2, 0xD1, 0xB4, 0xD1, 0xB6, 0xD1, 0xB8,
-               0xD1, 0xBA, 0xD1, 0xBC, 0xD1, 0xBE, 0xD2, 0x80,
-               0xD2, 0x8A, 0xD2, 0x8C, 0xD2, 0x8E, 0xD2, 0x90,
-               0xD2, 0x92, 0xD2, 0x94, 0xD2, 0x96, 0xD2, 0x98,
-               0xD2, 0x9A, 0xD2, 0x9C, 0xD2, 0x9E, 0xD2, 0xA0,
-               0xD2, 0xA2, 0xD2, 0xA4, 0xD2, 0xA6, 0xD2, 0xA8,
-               0xD2, 0xAA, 0xD2, 0xAC, 0xD2, 0xAE, 0xD2, 0xB0,
-               0xD2, 0xB2, 0xD2, 0xB4, 0xD2, 0xB6, 0xD2, 0xB8,
-               0xD2, 0xBA, 0xD2, 0xBC, 0xD2, 0xBE, 0xD3, 0x81,
-               0xD3, 0x83, 0xD3, 0x85, 0xD3, 0x87, 0xD3, 0x89,
-               0xD3, 0x8B, 0xD3, 0x8D, 0xD3, 0x90, 0xD3, 0x92,
-               0xD3, 0x94, 0xD3, 0x96, 0xD3, 0x98, 0xD3, 0x9A,
-               0xD3, 0x9C, 0xD3, 0x9E, 0xD3, 0xA0, 0xD3, 0xA2,
-               0xD3, 0xA4, 0xD3, 0xA6, 0xD3, 0xA8, 0xD3, 0xAA,
-               0xD3, 0xAC, 0xD3, 0xAE, 0xD3, 0xB0, 0xD3, 0xB2,
-               0xD3, 0xB4, 0xD3, 0xB8, 0xD4, 0x80, 0xD4, 0x82,
-               0xD4, 0x84, 0xD4, 0x86, 0xD4, 0x88, 0xD4, 0x8A,
-               0xD4, 0x8C, 0xD4, 0x8E, 0xD4, 0xB1, 0xD4, 0xB2,
-               0xD4, 0xB3, 0xD4, 0xB4, 0xD4, 0xB5, 0xD4, 0xB6,
-               0xD4, 0xB7, 0xD4, 0xB8, 0xD4, 0xB9, 0xD4, 0xBA,
-               0xD4, 0xBB, 0xD4, 0xBC, 0xD4, 0xBD, 0xD4, 0xBE,
-               0xD4, 0xBF, 0xD5, 0x80, 0xD5, 0x81, 0xD5, 0x82,
-               0xD5, 0x83, 0xD5, 0x84, 0xD5, 0x85, 0xD5, 0x86,
-               0xD5, 0x87, 0xD5, 0x88, 0xD5, 0x89, 0xD5, 0x8A,
-               0xD5, 0x8B, 0xD5, 0x8C, 0xD5, 0x8D, 0xD5, 0x8E,
-               0xD5, 0x8F, 0xD5, 0x90, 0xD5, 0x91, 0xD5, 0x92,
-               0xD5, 0x93, 0xD5, 0x94, 0xD5, 0x95, 0xD5, 0x96,
-               0xE1, 0xB8, 0x80, 0xE1, 0xB8, 0x82, 0xE1, 0xB8,
-               0x84, 0xE1, 0xB8, 0x86, 0xE1, 0xB8, 0x88, 0xE1,
-               0xB8, 0x8A, 0xE1, 0xB8, 0x8C, 0xE1, 0xB8, 0x8E,
-               0xE1, 0xB8, 0x90, 0xE1, 0xB8, 0x92, 0xE1, 0xB8,
-               0x94, 0xE1, 0xB8, 0x96, 0xE1, 0xB8, 0x98, 0xE1,
-               0xB8, 0x9A, 0xE1, 0xB8, 0x9C, 0xE1, 0xB8, 0x9E,
-               0xE1, 0xB8, 0xA0, 0xE1, 0xB8, 0xA2, 0xE1, 0xB8,
-               0xA4, 0xE1, 0xB8, 0xA6, 0xE1, 0xB8, 0xA8, 0xE1,
-               0xB8, 0xAA, 0xE1, 0xB8, 0xAC, 0xE1, 0xB8, 0xAE,
-               0xE1, 0xB8, 0xB0, 0xE1, 0xB8, 0xB2, 0xE1, 0xB8,
-               0xB4, 0xE1, 0xB8, 0xB6, 0xE1, 0xB8, 0xB8, 0xE1,
-               0xB8, 0xBA, 0xE1, 0xB8, 0xBC, 0xE1, 0xB8, 0xBE,
-               0xE1, 0xB9, 0x80, 0xE1, 0xB9, 0x82, 0xE1, 0xB9,
-               0x84, 0xE1, 0xB9, 0x86, 0xE1, 0xB9, 0x88, 0xE1,
-               0xB9, 0x8A, 0xE1, 0xB9, 0x8C, 0xE1, 0xB9, 0x8E,
-               0xE1, 0xB9, 0x90, 0xE1, 0xB9, 0x92, 0xE1, 0xB9,
-               0x94, 0xE1, 0xB9, 0x96, 0xE1, 0xB9, 0x98, 0xE1,
-               0xB9, 0x9A, 0xE1, 0xB9, 0x9C, 0xE1, 0xB9, 0x9E,
-               0xE1, 0xB9, 0xA0, 0xE1, 0xB9, 0xA2, 0xE1, 0xB9,
-               0xA4, 0xE1, 0xB9, 0xA6, 0xE1, 0xB9, 0xA8, 0xE1,
-               0xB9, 0xAA, 0xE1, 0xB9, 0xAC, 0xE1, 0xB9, 0xAE,
-               0xE1, 0xB9, 0xB0, 0xE1, 0xB9, 0xB2, 0xE1, 0xB9,
-               0xB4, 0xE1, 0xB9, 0xB6, 0xE1, 0xB9, 0xB8, 0xE1,
-               0xB9, 0xBA, 0xE1, 0xB9, 0xBC, 0xE1, 0xB9, 0xBE,
-               0xE1, 0xBA, 0x80, 0xE1, 0xBA, 0x82, 0xE1, 0xBA,
-               0x84, 0xE1, 0xBA, 0x86, 0xE1, 0xBA, 0x88, 0xE1,
-               0xBA, 0x8A, 0xE1, 0xBA, 0x8C, 0xE1, 0xBA, 0x8E,
-               0xE1, 0xBA, 0x90, 0xE1, 0xBA, 0x92, 0xE1, 0xBA,
-               0x94, 0xE1, 0xB9, 0xA0, 0xE1, 0xBA, 0xA0, 0xE1,
-               0xBA, 0xA2, 0xE1, 0xBA, 0xA4, 0xE1, 0xBA, 0xA6,
-               0xE1, 0xBA, 0xA8, 0xE1, 0xBA, 0xAA, 0xE1, 0xBA,
-               0xAC, 0xE1, 0xBA, 0xAE, 0xE1, 0xBA, 0xB0, 0xE1,
-               0xBA, 0xB2, 0xE1, 0xBA, 0xB4, 0xE1, 0xBA, 0xB6,
-               0xE1, 0xBA, 0xB8, 0xE1, 0xBA, 0xBA, 0xE1, 0xBA,
-               0xBC, 0xE1, 0xBA, 0xBE, 0xE1, 0xBB, 0x80, 0xE1,
-               0xBB, 0x82, 0xE1, 0xBB, 0x84, 0xE1, 0xBB, 0x86,
-               0xE1, 0xBB, 0x88, 0xE1, 0xBB, 0x8A, 0xE1, 0xBB,
-               0x8C, 0xE1, 0xBB, 0x8E, 0xE1, 0xBB, 0x90, 0xE1,
-               0xBB, 0x92, 0xE1, 0xBB, 0x94, 0xE1, 0xBB, 0x96,
-               0xE1, 0xBB, 0x98, 0xE1, 0xBB, 0x9A, 0xE1, 0xBB,
-               0x9C, 0xE1, 0xBB, 0x9E, 0xE1, 0xBB, 0xA0, 0xE1,
-               0xBB, 0xA2, 0xE1, 0xBB, 0xA4, 0xE1, 0xBB, 0xA6,
-               0xE1, 0xBB, 0xA8, 0xE1, 0xBB, 0xAA, 0xE1, 0xBB,
-               0xAC, 0xE1, 0xBB, 0xAE, 0xE1, 0xBB, 0xB0, 0xE1,
-               0xBB, 0xB2, 0xE1, 0xBB, 0xB4, 0xE1, 0xBB, 0xB6,
-               0xE1, 0xBB, 0xB8, 0xE1, 0xBC, 0x88, 0xE1, 0xBC,
-               0x89, 0xE1, 0xBC, 0x8A, 0xE1, 0xBC, 0x8B, 0xE1,
-               0xBC, 0x8C, 0xE1, 0xBC, 0x8D, 0xE1, 0xBC, 0x8E,
-               0xE1, 0xBC, 0x8F, 0xE1, 0xBC, 0x98, 0xE1, 0xBC,
-               0x99, 0xE1, 0xBC, 0x9A, 0xE1, 0xBC, 0x9B, 0xE1,
-               0xBC, 0x9C, 0xE1, 0xBC, 0x9D, 0xE1, 0xBC, 0xA8,
-               0xE1, 0xBC, 0xA9, 0xE1, 0xBC, 0xAA, 0xE1, 0xBC,
-               0xAB, 0xE1, 0xBC, 0xAC, 0xE1, 0xBC, 0xAD, 0xE1,
-               0xBC, 0xAE, 0xE1, 0xBC, 0xAF, 0xE1, 0xBC, 0xB8,
-               0xE1, 0xBC, 0xB9, 0xE1, 0xBC, 0xBA, 0xE1, 0xBC,
-               0xBB, 0xE1, 0xBC, 0xBC, 0xE1, 0xBC, 0xBD, 0xE1,
-               0xBC, 0xBE, 0xE1, 0xBC, 0xBF, 0xE1, 0xBD, 0x88,
-               0xE1, 0xBD, 0x89, 0xE1, 0xBD, 0x8A, 0xE1, 0xBD,
-               0x8B, 0xE1, 0xBD, 0x8C, 0xE1, 0xBD, 0x8D, 0xE1,
-               0xBD, 0x99, 0xE1, 0xBD, 0x9B, 0xE1, 0xBD, 0x9D,
-               0xE1, 0xBD, 0x9F, 0xE1, 0xBD, 0xA8, 0xE1, 0xBD,
-               0xA9, 0xE1, 0xBD, 0xAA, 0xE1, 0xBD, 0xAB, 0xE1,
-               0xBD, 0xAC, 0xE1, 0xBD, 0xAD, 0xE1, 0xBD, 0xAE,
-               0xE1, 0xBD, 0xAF, 0xE1, 0xBE, 0xBA, 0xE1, 0xBE,
-               0xBB, 0xE1, 0xBF, 0x88, 0xE1, 0xBF, 0x89, 0xE1,
-               0xBF, 0x8A, 0xE1, 0xBF, 0x8B, 0xE1, 0xBF, 0x9A,
-               0xE1, 0xBF, 0x9B, 0xE1, 0xBF, 0xB8, 0xE1, 0xBF,
-               0xB9, 0xE1, 0xBF, 0xAA, 0xE1, 0xBF, 0xAB, 0xE1,
-               0xBF, 0xBA, 0xE1, 0xBF, 0xBB, 0xE1, 0xBE, 0x88,
-               0xE1, 0xBE, 0x89, 0xE1, 0xBE, 0x8A, 0xE1, 0xBE,
-               0x8B, 0xE1, 0xBE, 0x8C, 0xE1, 0xBE, 0x8D, 0xE1,
-               0xBE, 0x8E, 0xE1, 0xBE, 0x8F, 0xE1, 0xBE, 0x98,
-               0xE1, 0xBE, 0x99, 0xE1, 0xBE, 0x9A, 0xE1, 0xBE,
-               0x9B, 0xE1, 0xBE, 0x9C, 0xE1, 0xBE, 0x9D, 0xE1,
-               0xBE, 0x9E, 0xE1, 0xBE, 0x9F, 0xE1, 0xBE, 0xA8,
-               0xE1, 0xBE, 0xA9, 0xE1, 0xBE, 0xAA, 0xE1, 0xBE,
-               0xAB, 0xE1, 0xBE, 0xAC, 0xE1, 0xBE, 0xAD, 0xE1,
-               0xBE, 0xAE, 0xE1, 0xBE, 0xAF, 0xE1, 0xBE, 0xB8,
-               0xE1, 0xBE, 0xB9, 0xE1, 0xBE, 0xBC, 0xCE, 0x99,
-               0xE1, 0xBF, 0x8C, 0xE1, 0xBF, 0x98, 0xE1, 0xBF,
-               0x99, 0xE1, 0xBF, 0xA8, 0xE1, 0xBF, 0xA9, 0xE1,
-               0xBF, 0xAC, 0xE1, 0xBF, 0xBC, 0xE2, 0x85, 0xA0,
-               0xE2, 0x85, 0xA1, 0xE2, 0x85, 0xA2, 0xE2, 0x85,
-               0xA3, 0xE2, 0x85, 0xA4, 0xE2, 0x85, 0xA5, 0xE2,
-               0x85, 0xA6, 0xE2, 0x85, 0xA7, 0xE2, 0x85, 0xA8,
-               0xE2, 0x85, 0xA9, 0xE2, 0x85, 0xAA, 0xE2, 0x85,
-               0xAB, 0xE2, 0x85, 0xAC, 0xE2, 0x85, 0xAD, 0xE2,
-               0x85, 0xAE, 0xE2, 0x85, 0xAF, 0xE2, 0x92, 0xB6,
-               0xE2, 0x92, 0xB7, 0xE2, 0x92, 0xB8, 0xE2, 0x92,
-               0xB9, 0xE2, 0x92, 0xBA, 0xE2, 0x92, 0xBB, 0xE2,
-               0x92, 0xBC, 0xE2, 0x92, 0xBD, 0xE2, 0x92, 0xBE,
-               0xE2, 0x92, 0xBF, 0xE2, 0x93, 0x80, 0xE2, 0x93,
-               0x81, 0xE2, 0x93, 0x82, 0xE2, 0x93, 0x83, 0xE2,
-               0x93, 0x84, 0xE2, 0x93, 0x85, 0xE2, 0x93, 0x86,
-               0xE2, 0x93, 0x87, 0xE2, 0x93, 0x88, 0xE2, 0x93,
-               0x89, 0xE2, 0x93, 0x8A, 0xE2, 0x93, 0x8B, 0xE2,
-               0x93, 0x8C, 0xE2, 0x93, 0x8D, 0xE2, 0x93, 0x8E,
-               0xE2, 0x93, 0x8F, 0xEF, 0xBC, 0xA1, 0xEF, 0xBC,
-               0xA2, 0xEF, 0xBC, 0xA3, 0xEF, 0xBC, 0xA4, 0xEF,
-               0xBC, 0xA5, 0xEF, 0xBC, 0xA6, 0xEF, 0xBC, 0xA7,
-               0xEF, 0xBC, 0xA8, 0xEF, 0xBC, 0xA9, 0xEF, 0xBC,
-               0xAA, 0xEF, 0xBC, 0xAB, 0xEF, 0xBC, 0xAC, 0xEF,
-               0xBC, 0xAD, 0xEF, 0xBC, 0xAE, 0xEF, 0xBC, 0xAF,
-               0xEF, 0xBC, 0xB0, 0xEF, 0xBC, 0xB1, 0xEF, 0xBC,
-               0xB2, 0xEF, 0xBC, 0xB3, 0xEF, 0xBC, 0xB4, 0xEF,
-               0xBC, 0xB5, 0xEF, 0xBC, 0xB6, 0xEF, 0xBC, 0xB7,
-               0xEF, 0xBC, 0xB8, 0xEF, 0xBC, 0xB9, 0xEF, 0xBC,
-               0xBA, 0xF0, 0x90, 0x90, 0x80, 0xF0, 0x90, 0x90,
-               0x81, 0xF0, 0x90, 0x90, 0x82, 0xF0, 0x90, 0x90,
-               0x83, 0xF0, 0x90, 0x90, 0x84, 0xF0, 0x90, 0x90,
-               0x85, 0xF0, 0x90, 0x90, 0x86, 0xF0, 0x90, 0x90,
-               0x87, 0xF0, 0x90, 0x90, 0x88, 0xF0, 0x90, 0x90,
-               0x89, 0xF0, 0x90, 0x90, 0x8A, 0xF0, 0x90, 0x90,
-               0x8B, 0xF0, 0x90, 0x90, 0x8C, 0xF0, 0x90, 0x90,
-               0x8D, 0xF0, 0x90, 0x90, 0x8E, 0xF0, 0x90, 0x90,
-               0x8F, 0xF0, 0x90, 0x90, 0x90, 0xF0, 0x90, 0x90,
-               0x91, 0xF0, 0x90, 0x90, 0x92, 0xF0, 0x90, 0x90,
-               0x93, 0xF0, 0x90, 0x90, 0x94, 0xF0, 0x90, 0x90,
-               0x95, 0xF0, 0x90, 0x90, 0x96, 0xF0, 0x90, 0x90,
-               0x97, 0xF0, 0x90, 0x90, 0x98, 0xF0, 0x90, 0x90,
-               0x99, 0xF0, 0x90, 0x90, 0x9A, 0xF0, 0x90, 0x90,
-               0x9B, 0xF0, 0x90, 0x90, 0x9C, 0xF0, 0x90, 0x90,
-               0x9D, 0xF0, 0x90, 0x90, 0x9E, 0xF0, 0x90, 0x90,
-               0x9F, 0xF0, 0x90, 0x90, 0xA0, 0xF0, 0x90, 0x90,
-               0xA1, 0xF0, 0x90, 0x90, 0xA2, 0xF0, 0x90, 0x90,
-               0xA3, 0xF0, 0x90, 0x90, 0xA4, 0xF0, 0x90, 0x90,
-               0xA5, 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,    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,    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,
-               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,    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,    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,    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,    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,    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,    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,    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,
-               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,    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,    0,    0,    0,    0,    0,    0,
-               0,    0,    0,    0,    0,    0,
-       },
-       {
-               0xCE, 0x9C, 0xC3, 0x80, 0xC3, 0x81, 0xC3, 0x82,
-               0xC3, 0x83, 0xC3, 0x84, 0xC3, 0x85, 0xC3, 0x86,
-               0xC3, 0x87, 0xC3, 0x88, 0xC3, 0x89, 0xC3, 0x8A,
-               0xC3, 0x8B, 0xC3, 0x8C, 0xC3, 0x8D, 0xC3, 0x8E,
-               0xC3, 0x8F, 0xC3, 0x90, 0xC3, 0x91, 0xC3, 0x92,
-               0xC3, 0x93, 0xC3, 0x94, 0xC3, 0x95, 0xC3, 0x96,
-               0xC3, 0x98, 0xC3, 0x99, 0xC3, 0x9A, 0xC3, 0x9B,
-               0xC3, 0x9C, 0xC3, 0x9D, 0xC3, 0x9E, 0xC5, 0xB8,
-               0xC4, 0x80, 0xC4, 0x82, 0xC4, 0x84, 0xC4, 0x86,
-               0xC4, 0x88, 0xC4, 0x8A, 0xC4, 0x8C, 0xC4, 0x8E,
-               0xC4, 0x90, 0xC4, 0x92, 0xC4, 0x94, 0xC4, 0x96,
-               0xC4, 0x98, 0xC4, 0x9A, 0xC4, 0x9C, 0xC4, 0x9E,
-               0xC4, 0xA0, 0xC4, 0xA2, 0xC4, 0xA4, 0xC4, 0xA6,
-               0xC4, 0xA8, 0xC4, 0xAA, 0xC4, 0xAC, 0xC4, 0xAE,
-               0x49, 0xC4, 0xB2, 0xC4, 0xB4, 0xC4, 0xB6, 0xC4,
-               0xB9, 0xC4, 0xBB, 0xC4, 0xBD, 0xC4, 0xBF, 0xC5,
-               0x81, 0xC5, 0x83, 0xC5, 0x85, 0xC5, 0x87, 0xC5,
-               0x8A, 0xC5, 0x8C, 0xC5, 0x8E, 0xC5, 0x90, 0xC5,
-               0x92, 0xC5, 0x94, 0xC5, 0x96, 0xC5, 0x98, 0xC5,
-               0x9A, 0xC5, 0x9C, 0xC5, 0x9E, 0xC5, 0xA0, 0xC5,
-               0xA2, 0xC5, 0xA4, 0xC5, 0xA6, 0xC5, 0xA8, 0xC5,
-               0xAA, 0xC5, 0xAC, 0xC5, 0xAE, 0xC5, 0xB0, 0xC5,
-               0xB2, 0xC5, 0xB4, 0xC5, 0xB6, 0xC5, 0xB9, 0xC5,
-               0xBB, 0xC5, 0xBD, 0x53, 0xC9, 0x83, 0xC6, 0x82,
-               0xC6, 0x84, 0xC6, 0x87, 0xC6, 0x8B, 0xC6, 0x91,
-               0xC7, 0xB6, 0xC6, 0x98, 0xC8, 0xBD, 0xC8, 0xA0,
-               0xC6, 0xA0, 0xC6, 0xA2, 0xC6, 0xA4, 0xC6, 0xA7,
-               0xC6, 0xAC, 0xC6, 0xAF, 0xC6, 0xB3, 0xC6, 0xB5,
-               0xC6, 0xB8, 0xC6, 0xBC, 0xC7, 0xB7, 0xC7, 0x84,
-               0xC7, 0x84, 0xC7, 0x87, 0xC7, 0x87, 0xC7, 0x8A,
-               0xC7, 0x8A, 0xC7, 0x8D, 0xC7, 0x8F, 0xC7, 0x91,
-               0xC7, 0x93, 0xC7, 0x95, 0xC7, 0x97, 0xC7, 0x99,
-               0xC7, 0x9B, 0xC6, 0x8E, 0xC7, 0x9E, 0xC7, 0xA0,
-               0xC7, 0xA2, 0xC7, 0xA4, 0xC7, 0xA6, 0xC7, 0xA8,
-               0xC7, 0xAA, 0xC7, 0xAC, 0xC7, 0xAE, 0xC7, 0xB1,
-               0xC7, 0xB1, 0xC7, 0xB4, 0xC7, 0xB8, 0xC7, 0xBA,
-               0xC7, 0xBC, 0xC7, 0xBE, 0xC8, 0x80, 0xC8, 0x82,
-               0xC8, 0x84, 0xC8, 0x86, 0xC8, 0x88, 0xC8, 0x8A,
-               0xC8, 0x8C, 0xC8, 0x8E, 0xC8, 0x90, 0xC8, 0x92,
-               0xC8, 0x94, 0xC8, 0x96, 0xC8, 0x98, 0xC8, 0x9A,
-               0xC8, 0x9C, 0xC8, 0x9E, 0xC8, 0xA2, 0xC8, 0xA4,
-               0xC8, 0xA6, 0xC8, 0xA8, 0xC8, 0xAA, 0xC8, 0xAC,
-               0xC8, 0xAE, 0xC8, 0xB0, 0xC8, 0xB2, 0xC8, 0xBB,
-               0xC9, 0x81, 0xC9, 0x86, 0xC9, 0x88, 0xC9, 0x8A,
-               0xC9, 0x8C, 0xC9, 0x8E, 0xC6, 0x81, 0xC6, 0x86,
-               0xC6, 0x89, 0xC6, 0x8A, 0xC6, 0x8F, 0xC6, 0x90,
-               0xC6, 0x93, 0xC6, 0x94, 0xC6, 0x97, 0xC6, 0x96,
-               0xE2, 0xB1, 0xA2, 0xC6, 0x9C, 0xC6, 0x9D, 0xC6,
-               0x9F, 0xE2, 0xB1, 0xA4, 0xC6, 0xA6, 0xC6, 0xA9,
-               0xC6, 0xAE, 0xC9, 0x84, 0xC6, 0xB1, 0xC6, 0xB2,
-               0xC9, 0x85, 0xC6, 0xB7, 0xCE, 0x99, 0xCF, 0xBD,
-               0xCF, 0xBE, 0xCF, 0xBF, 0xCE, 0x86, 0xCE, 0x88,
-               0xCE, 0x89, 0xCE, 0x8A, 0xCE, 0x91, 0xCE, 0x92,
-               0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96,
-               0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A,
-               0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E,
-               0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0xA3,
-               0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6,
-               0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xCE, 0xAA,
-               0xCE, 0xAB, 0xCE, 0x8C, 0xCE, 0x8E, 0xCE, 0x8F,
-               0xCE, 0x92, 0xCE, 0x98, 0xCE, 0xA6, 0xCE, 0xA0,
-               0xCF, 0x98, 0xCF, 0x9A, 0xCF, 0x9C, 0xCF, 0x9E,
-               0xCF, 0xA0, 0xCF, 0xA2, 0xCF, 0xA4, 0xCF, 0xA6,
-               0xCF, 0xA8, 0xCF, 0xAA, 0xCF, 0xAC, 0xCF, 0xAE,
-               0xCE, 0x9A, 0xCE, 0xA1, 0xCF, 0xB9, 0xCE, 0x95,
-               0xCF, 0xB7, 0xCF, 0xBA, 0xD0, 0x90, 0xD0, 0x91,
-               0xD0, 0x92, 0xD0, 0x93, 0xD0, 0x94, 0xD0, 0x95,
-               0xD0, 0x96, 0xD0, 0x97, 0xD0, 0x98, 0xD0, 0x99,
-               0xD0, 0x9A, 0xD0, 0x9B, 0xD0, 0x9C, 0xD0, 0x9D,
-               0xD0, 0x9E, 0xD0, 0x9F, 0xD0, 0xA0, 0xD0, 0xA1,
-               0xD0, 0xA2, 0xD0, 0xA3, 0xD0, 0xA4, 0xD0, 0xA5,
-               0xD0, 0xA6, 0xD0, 0xA7, 0xD0, 0xA8, 0xD0, 0xA9,
-               0xD0, 0xAA, 0xD0, 0xAB, 0xD0, 0xAC, 0xD0, 0xAD,
-               0xD0, 0xAE, 0xD0, 0xAF, 0xD0, 0x80, 0xD0, 0x81,
-               0xD0, 0x82, 0xD0, 0x83, 0xD0, 0x84, 0xD0, 0x85,
-               0xD0, 0x86, 0xD0, 0x87, 0xD0, 0x88, 0xD0, 0x89,
-               0xD0, 0x8A, 0xD0, 0x8B, 0xD0, 0x8C, 0xD0, 0x8D,
-               0xD0, 0x8E, 0xD0, 0x8F, 0xD1, 0xA0, 0xD1, 0xA2,
-               0xD1, 0xA4, 0xD1, 0xA6, 0xD1, 0xA8, 0xD1, 0xAA,
-               0xD1, 0xAC, 0xD1, 0xAE, 0xD1, 0xB0, 0xD1, 0xB2,
-               0xD1, 0xB4, 0xD1, 0xB6, 0xD1, 0xB8, 0xD1, 0xBA,
-               0xD1, 0xBC, 0xD1, 0xBE, 0xD2, 0x80, 0xD2, 0x8A,
-               0xD2, 0x8C, 0xD2, 0x8E, 0xD2, 0x90, 0xD2, 0x92,
-               0xD2, 0x94, 0xD2, 0x96, 0xD2, 0x98, 0xD2, 0x9A,
-               0xD2, 0x9C, 0xD2, 0x9E, 0xD2, 0xA0, 0xD2, 0xA2,
-               0xD2, 0xA4, 0xD2, 0xA6, 0xD2, 0xA8, 0xD2, 0xAA,
-               0xD2, 0xAC, 0xD2, 0xAE, 0xD2, 0xB0, 0xD2, 0xB2,
-               0xD2, 0xB4, 0xD2, 0xB6, 0xD2, 0xB8, 0xD2, 0xBA,
-               0xD2, 0xBC, 0xD2, 0xBE, 0xD3, 0x81, 0xD3, 0x83,
-               0xD3, 0x85, 0xD3, 0x87, 0xD3, 0x89, 0xD3, 0x8B,
-               0xD3, 0x8D, 0xD3, 0x80, 0xD3, 0x90, 0xD3, 0x92,
-               0xD3, 0x94, 0xD3, 0x96, 0xD3, 0x98, 0xD3, 0x9A,
-               0xD3, 0x9C, 0xD3, 0x9E, 0xD3, 0xA0, 0xD3, 0xA2,
-               0xD3, 0xA4, 0xD3, 0xA6, 0xD3, 0xA8, 0xD3, 0xAA,
-               0xD3, 0xAC, 0xD3, 0xAE, 0xD3, 0xB0, 0xD3, 0xB2,
-               0xD3, 0xB4, 0xD3, 0xB6, 0xD3, 0xB8, 0xD3, 0xBA,
-               0xD3, 0xBC, 0xD3, 0xBE, 0xD4, 0x80, 0xD4, 0x82,
-               0xD4, 0x84, 0xD4, 0x86, 0xD4, 0x88, 0xD4, 0x8A,
-               0xD4, 0x8C, 0xD4, 0x8E, 0xD4, 0x90, 0xD4, 0x92,
-               0xD4, 0xB1, 0xD4, 0xB2, 0xD4, 0xB3, 0xD4, 0xB4,
-               0xD4, 0xB5, 0xD4, 0xB6, 0xD4, 0xB7, 0xD4, 0xB8,
-               0xD4, 0xB9, 0xD4, 0xBA, 0xD4, 0xBB, 0xD4, 0xBC,
-               0xD4, 0xBD, 0xD4, 0xBE, 0xD4, 0xBF, 0xD5, 0x80,
-               0xD5, 0x81, 0xD5, 0x82, 0xD5, 0x83, 0xD5, 0x84,
-               0xD5, 0x85, 0xD5, 0x86, 0xD5, 0x87, 0xD5, 0x88,
-               0xD5, 0x89, 0xD5, 0x8A, 0xD5, 0x8B, 0xD5, 0x8C,
-               0xD5, 0x8D, 0xD5, 0x8E, 0xD5, 0x8F, 0xD5, 0x90,
-               0xD5, 0x91, 0xD5, 0x92, 0xD5, 0x93, 0xD5, 0x94,
-               0xD5, 0x95, 0xD5, 0x96, 0xE2, 0xB1, 0xA3, 0xE1,
-               0xB8, 0x80, 0xE1, 0xB8, 0x82, 0xE1, 0xB8, 0x84,
-               0xE1, 0xB8, 0x86, 0xE1, 0xB8, 0x88, 0xE1, 0xB8,
-               0x8A, 0xE1, 0xB8, 0x8C, 0xE1, 0xB8, 0x8E, 0xE1,
-               0xB8, 0x90, 0xE1, 0xB8, 0x92, 0xE1, 0xB8, 0x94,
-               0xE1, 0xB8, 0x96, 0xE1, 0xB8, 0x98, 0xE1, 0xB8,
-               0x9A, 0xE1, 0xB8, 0x9C, 0xE1, 0xB8, 0x9E, 0xE1,
-               0xB8, 0xA0, 0xE1, 0xB8, 0xA2, 0xE1, 0xB8, 0xA4,
-               0xE1, 0xB8, 0xA6, 0xE1, 0xB8, 0xA8, 0xE1, 0xB8,
-               0xAA, 0xE1, 0xB8, 0xAC, 0xE1, 0xB8, 0xAE, 0xE1,
-               0xB8, 0xB0, 0xE1, 0xB8, 0xB2, 0xE1, 0xB8, 0xB4,
-               0xE1, 0xB8, 0xB6, 0xE1, 0xB8, 0xB8, 0xE1, 0xB8,
-               0xBA, 0xE1, 0xB8, 0xBC, 0xE1, 0xB8, 0xBE, 0xE1,
-               0xB9, 0x80, 0xE1, 0xB9, 0x82, 0xE1, 0xB9, 0x84,
-               0xE1, 0xB9, 0x86, 0xE1, 0xB9, 0x88, 0xE1, 0xB9,
-               0x8A, 0xE1, 0xB9, 0x8C, 0xE1, 0xB9, 0x8E, 0xE1,
-               0xB9, 0x90, 0xE1, 0xB9, 0x92, 0xE1, 0xB9, 0x94,
-               0xE1, 0xB9, 0x96, 0xE1, 0xB9, 0x98, 0xE1, 0xB9,
-               0x9A, 0xE1, 0xB9, 0x9C, 0xE1, 0xB9, 0x9E, 0xE1,
-               0xB9, 0xA0, 0xE1, 0xB9, 0xA2, 0xE1, 0xB9, 0xA4,
-               0xE1, 0xB9, 0xA6, 0xE1, 0xB9, 0xA8, 0xE1, 0xB9,
-               0xAA, 0xE1, 0xB9, 0xAC, 0xE1, 0xB9, 0xAE, 0xE1,
-               0xB9, 0xB0, 0xE1, 0xB9, 0xB2, 0xE1, 0xB9, 0xB4,
-               0xE1, 0xB9, 0xB6, 0xE1, 0xB9, 0xB8, 0xE1, 0xB9,
-               0xBA, 0xE1, 0xB9, 0xBC, 0xE1, 0xB9, 0xBE, 0xE1,
-               0xBA, 0x80, 0xE1, 0xBA, 0x82, 0xE1, 0xBA, 0x84,
-               0xE1, 0xBA, 0x86, 0xE1, 0xBA, 0x88, 0xE1, 0xBA,
-               0x8A, 0xE1, 0xBA, 0x8C, 0xE1, 0xBA, 0x8E, 0xE1,
-               0xBA, 0x90, 0xE1, 0xBA, 0x92, 0xE1, 0xBA, 0x94,
-               0xE1, 0xB9, 0xA0, 0xE1, 0xBA, 0xA0, 0xE1, 0xBA,
-               0xA2, 0xE1, 0xBA, 0xA4, 0xE1, 0xBA, 0xA6, 0xE1,
-               0xBA, 0xA8, 0xE1, 0xBA, 0xAA, 0xE1, 0xBA, 0xAC,
-               0xE1, 0xBA, 0xAE, 0xE1, 0xBA, 0xB0, 0xE1, 0xBA,
-               0xB2, 0xE1, 0xBA, 0xB4, 0xE1, 0xBA, 0xB6, 0xE1,
-               0xBA, 0xB8, 0xE1, 0xBA, 0xBA, 0xE1, 0xBA, 0xBC,
-               0xE1, 0xBA, 0xBE, 0xE1, 0xBB, 0x80, 0xE1, 0xBB,
-               0x82, 0xE1, 0xBB, 0x84, 0xE1, 0xBB, 0x86, 0xE1,
-               0xBB, 0x88, 0xE1, 0xBB, 0x8A, 0xE1, 0xBB, 0x8C,
-               0xE1, 0xBB, 0x8E, 0xE1, 0xBB, 0x90, 0xE1, 0xBB,
-               0x92, 0xE1, 0xBB, 0x94, 0xE1, 0xBB, 0x96, 0xE1,
-               0xBB, 0x98, 0xE1, 0xBB, 0x9A, 0xE1, 0xBB, 0x9C,
-               0xE1, 0xBB, 0x9E, 0xE1, 0xBB, 0xA0, 0xE1, 0xBB,
-               0xA2, 0xE1, 0xBB, 0xA4, 0xE1, 0xBB, 0xA6, 0xE1,
-               0xBB, 0xA8, 0xE1, 0xBB, 0xAA, 0xE1, 0xBB, 0xAC,
-               0xE1, 0xBB, 0xAE, 0xE1, 0xBB, 0xB0, 0xE1, 0xBB,
-               0xB2, 0xE1, 0xBB, 0xB4, 0xE1, 0xBB, 0xB6, 0xE1,
-               0xBB, 0xB8, 0xE1, 0xBC, 0x88, 0xE1, 0xBC, 0x89,
-               0xE1, 0xBC, 0x8A, 0xE1, 0xBC, 0x8B, 0xE1, 0xBC,
-               0x8C, 0xE1, 0xBC, 0x8D, 0xE1, 0xBC, 0x8E, 0xE1,
-               0xBC, 0x8F, 0xE1, 0xBC, 0x98, 0xE1, 0xBC, 0x99,
-               0xE1, 0xBC, 0x9A, 0xE1, 0xBC, 0x9B, 0xE1, 0xBC,
-               0x9C, 0xE1, 0xBC, 0x9D, 0xE1, 0xBC, 0xA8, 0xE1,
-               0xBC, 0xA9, 0xE1, 0xBC, 0xAA, 0xE1, 0xBC, 0xAB,
-               0xE1, 0xBC, 0xAC, 0xE1, 0xBC, 0xAD, 0xE1, 0xBC,
-               0xAE, 0xE1, 0xBC, 0xAF, 0xE1, 0xBC, 0xB8, 0xE1,
-               0xBC, 0xB9, 0xE1, 0xBC, 0xBA, 0xE1, 0xBC, 0xBB,
-               0xE1, 0xBC, 0xBC, 0xE1, 0xBC, 0xBD, 0xE1, 0xBC,
-               0xBE, 0xE1, 0xBC, 0xBF, 0xE1, 0xBD, 0x88, 0xE1,
-               0xBD, 0x89, 0xE1, 0xBD, 0x8A, 0xE1, 0xBD, 0x8B,
-               0xE1, 0xBD, 0x8C, 0xE1, 0xBD, 0x8D, 0xE1, 0xBD,
-               0x99, 0xE1, 0xBD, 0x9B, 0xE1, 0xBD, 0x9D, 0xE1,
-               0xBD, 0x9F, 0xE1, 0xBD, 0xA8, 0xE1, 0xBD, 0xA9,
-               0xE1, 0xBD, 0xAA, 0xE1, 0xBD, 0xAB, 0xE1, 0xBD,
-               0xAC, 0xE1, 0xBD, 0xAD, 0xE1, 0xBD, 0xAE, 0xE1,
-               0xBD, 0xAF, 0xE1, 0xBE, 0xBA, 0xE1, 0xBE, 0xBB,
-               0xE1, 0xBF, 0x88, 0xE1, 0xBF, 0x89, 0xE1, 0xBF,
-               0x8A, 0xE1, 0xBF, 0x8B, 0xE1, 0xBF, 0x9A, 0xE1,
-               0xBF, 0x9B, 0xE1, 0xBF, 0xB8, 0xE1, 0xBF, 0xB9,
-               0xE1, 0xBF, 0xAA, 0xE1, 0xBF, 0xAB, 0xE1, 0xBF,
-               0xBA, 0xE1, 0xBF, 0xBB, 0xE1, 0xBE, 0x88, 0xE1,
-               0xBE, 0x89, 0xE1, 0xBE, 0x8A, 0xE1, 0xBE, 0x8B,
-               0xE1, 0xBE, 0x8C, 0xE1, 0xBE, 0x8D, 0xE1, 0xBE,
-               0x8E, 0xE1, 0xBE, 0x8F, 0xE1, 0xBE, 0x98, 0xE1,
-               0xBE, 0x99, 0xE1, 0xBE, 0x9A, 0xE1, 0xBE, 0x9B,
-               0xE1, 0xBE, 0x9C, 0xE1, 0xBE, 0x9D, 0xE1, 0xBE,
-               0x9E, 0xE1, 0xBE, 0x9F, 0xE1, 0xBE, 0xA8, 0xE1,
-               0xBE, 0xA9, 0xE1, 0xBE, 0xAA, 0xE1, 0xBE, 0xAB,
-               0xE1, 0xBE, 0xAC, 0xE1, 0xBE, 0xAD, 0xE1, 0xBE,
-               0xAE, 0xE1, 0xBE, 0xAF, 0xE1, 0xBE, 0xB8, 0xE1,
-               0xBE, 0xB9, 0xE1, 0xBE, 0xBC, 0xCE, 0x99, 0xE1,
-               0xBF, 0x8C, 0xE1, 0xBF, 0x98, 0xE1, 0xBF, 0x99,
-               0xE1, 0xBF, 0xA8, 0xE1, 0xBF, 0xA9, 0xE1, 0xBF,
-               0xAC, 0xE1, 0xBF, 0xBC, 0xE2, 0x84, 0xB2, 0xE2,
-               0x85, 0xA0, 0xE2, 0x85, 0xA1, 0xE2, 0x85, 0xA2,
-               0xE2, 0x85, 0xA3, 0xE2, 0x85, 0xA4, 0xE2, 0x85,
-               0xA5, 0xE2, 0x85, 0xA6, 0xE2, 0x85, 0xA7, 0xE2,
-               0x85, 0xA8, 0xE2, 0x85, 0xA9, 0xE2, 0x85, 0xAA,
-               0xE2, 0x85, 0xAB, 0xE2, 0x85, 0xAC, 0xE2, 0x85,
-               0xAD, 0xE2, 0x85, 0xAE, 0xE2, 0x85, 0xAF, 0xE2,
-               0x86, 0x83, 0xE2, 0x92, 0xB6, 0xE2, 0x92, 0xB7,
-               0xE2, 0x92, 0xB8, 0xE2, 0x92, 0xB9, 0xE2, 0x92,
-               0xBA, 0xE2, 0x92, 0xBB, 0xE2, 0x92, 0xBC, 0xE2,
-               0x92, 0xBD, 0xE2, 0x92, 0xBE, 0xE2, 0x92, 0xBF,
-               0xE2, 0x93, 0x80, 0xE2, 0x93, 0x81, 0xE2, 0x93,
-               0x82, 0xE2, 0x93, 0x83, 0xE2, 0x93, 0x84, 0xE2,
-               0x93, 0x85, 0xE2, 0x93, 0x86, 0xE2, 0x93, 0x87,
-               0xE2, 0x93, 0x88, 0xE2, 0x93, 0x89, 0xE2, 0x93,
-               0x8A, 0xE2, 0x93, 0x8B, 0xE2, 0x93, 0x8C, 0xE2,
-               0x93, 0x8D, 0xE2, 0x93, 0x8E, 0xE2, 0x93, 0x8F,
-               0xE2, 0xB0, 0x80, 0xE2, 0xB0, 0x81, 0xE2, 0xB0,
-               0x82, 0xE2, 0xB0, 0x83, 0xE2, 0xB0, 0x84, 0xE2,
-               0xB0, 0x85, 0xE2, 0xB0, 0x86, 0xE2, 0xB0, 0x87,
-               0xE2, 0xB0, 0x88, 0xE2, 0xB0, 0x89, 0xE2, 0xB0,
-               0x8A, 0xE2, 0xB0, 0x8B, 0xE2, 0xB0, 0x8C, 0xE2,
-               0xB0, 0x8D, 0xE2, 0xB0, 0x8E, 0xE2, 0xB0, 0x8F,
-               0xE2, 0xB0, 0x90, 0xE2, 0xB0, 0x91, 0xE2, 0xB0,
-               0x92, 0xE2, 0xB0, 0x93, 0xE2, 0xB0, 0x94, 0xE2,
-               0xB0, 0x95, 0xE2, 0xB0, 0x96, 0xE2, 0xB0, 0x97,
-               0xE2, 0xB0, 0x98, 0xE2, 0xB0, 0x99, 0xE2, 0xB0,
-               0x9A, 0xE2, 0xB0, 0x9B, 0xE2, 0xB0, 0x9C, 0xE2,
-               0xB0, 0x9D, 0xE2, 0xB0, 0x9E, 0xE2, 0xB0, 0x9F,
-               0xE2, 0xB0, 0xA0, 0xE2, 0xB0, 0xA1, 0xE2, 0xB0,
-               0xA2, 0xE2, 0xB0, 0xA3, 0xE2, 0xB0, 0xA4, 0xE2,
-               0xB0, 0xA5, 0xE2, 0xB0, 0xA6, 0xE2, 0xB0, 0xA7,
-               0xE2, 0xB0, 0xA8, 0xE2, 0xB0, 0xA9, 0xE2, 0xB0,
-               0xAA, 0xE2, 0xB0, 0xAB, 0xE2, 0xB0, 0xAC, 0xE2,
-               0xB0, 0xAD, 0xE2, 0xB0, 0xAE, 0xE2, 0xB1, 0xA0,
-               0xC8, 0xBA, 0xC8, 0xBE, 0xE2, 0xB1, 0xA7, 0xE2,
-               0xB1, 0xA9, 0xE2, 0xB1, 0xAB, 0xE2, 0xB1, 0xB5,
-               0xE2, 0xB2, 0x80, 0xE2, 0xB2, 0x82, 0xE2, 0xB2,
-               0x84, 0xE2, 0xB2, 0x86, 0xE2, 0xB2, 0x88, 0xE2,
-               0xB2, 0x8A, 0xE2, 0xB2, 0x8C, 0xE2, 0xB2, 0x8E,
-               0xE2, 0xB2, 0x90, 0xE2, 0xB2, 0x92, 0xE2, 0xB2,
-               0x94, 0xE2, 0xB2, 0x96, 0xE2, 0xB2, 0x98, 0xE2,
-               0xB2, 0x9A, 0xE2, 0xB2, 0x9C, 0xE2, 0xB2, 0x9E,
-               0xE2, 0xB2, 0xA0, 0xE2, 0xB2, 0xA2, 0xE2, 0xB2,
-               0xA4, 0xE2, 0xB2, 0xA6, 0xE2, 0xB2, 0xA8, 0xE2,
-               0xB2, 0xAA, 0xE2, 0xB2, 0xAC, 0xE2, 0xB2, 0xAE,
-               0xE2, 0xB2, 0xB0, 0xE2, 0xB2, 0xB2, 0xE2, 0xB2,
-               0xB4, 0xE2, 0xB2, 0xB6, 0xE2, 0xB2, 0xB8, 0xE2,
-               0xB2, 0xBA, 0xE2, 0xB2, 0xBC, 0xE2, 0xB2, 0xBE,
-               0xE2, 0xB3, 0x80, 0xE2, 0xB3, 0x82, 0xE2, 0xB3,
-               0x84, 0xE2, 0xB3, 0x86, 0xE2, 0xB3, 0x88, 0xE2,
-               0xB3, 0x8A, 0xE2, 0xB3, 0x8C, 0xE2, 0xB3, 0x8E,
-               0xE2, 0xB3, 0x90, 0xE2, 0xB3, 0x92, 0xE2, 0xB3,
-               0x94, 0xE2, 0xB3, 0x96, 0xE2, 0xB3, 0x98, 0xE2,
-               0xB3, 0x9A, 0xE2, 0xB3, 0x9C, 0xE2, 0xB3, 0x9E,
-               0xE2, 0xB3, 0xA0, 0xE2, 0xB3, 0xA2, 0xE1, 0x82,
-               0xA0, 0xE1, 0x82, 0xA1, 0xE1, 0x82, 0xA2, 0xE1,
-               0x82, 0xA3, 0xE1, 0x82, 0xA4, 0xE1, 0x82, 0xA5,
-               0xE1, 0x82, 0xA6, 0xE1, 0x82, 0xA7, 0xE1, 0x82,
-               0xA8, 0xE1, 0x82, 0xA9, 0xE1, 0x82, 0xAA, 0xE1,
-               0x82, 0xAB, 0xE1, 0x82, 0xAC, 0xE1, 0x82, 0xAD,
-               0xE1, 0x82, 0xAE, 0xE1, 0x82, 0xAF, 0xE1, 0x82,
-               0xB0, 0xE1, 0x82, 0xB1, 0xE1, 0x82, 0xB2, 0xE1,
-               0x82, 0xB3, 0xE1, 0x82, 0xB4, 0xE1, 0x82, 0xB5,
-               0xE1, 0x82, 0xB6, 0xE1, 0x82, 0xB7, 0xE1, 0x82,
-               0xB8, 0xE1, 0x82, 0xB9, 0xE1, 0x82, 0xBA, 0xE1,
-               0x82, 0xBB, 0xE1, 0x82, 0xBC, 0xE1, 0x82, 0xBD,
-               0xE1, 0x82, 0xBE, 0xE1, 0x82, 0xBF, 0xE1, 0x83,
-               0x80, 0xE1, 0x83, 0x81, 0xE1, 0x83, 0x82, 0xE1,
-               0x83, 0x83, 0xE1, 0x83, 0x84, 0xE1, 0x83, 0x85,
-               0xEF, 0xBC, 0xA1, 0xEF, 0xBC, 0xA2, 0xEF, 0xBC,
-               0xA3, 0xEF, 0xBC, 0xA4, 0xEF, 0xBC, 0xA5, 0xEF,
-               0xBC, 0xA6, 0xEF, 0xBC, 0xA7, 0xEF, 0xBC, 0xA8,
-               0xEF, 0xBC, 0xA9, 0xEF, 0xBC, 0xAA, 0xEF, 0xBC,
-               0xAB, 0xEF, 0xBC, 0xAC, 0xEF, 0xBC, 0xAD, 0xEF,
-               0xBC, 0xAE, 0xEF, 0xBC, 0xAF, 0xEF, 0xBC, 0xB0,
-               0xEF, 0xBC, 0xB1, 0xEF, 0xBC, 0xB2, 0xEF, 0xBC,
-               0xB3, 0xEF, 0xBC, 0xB4, 0xEF, 0xBC, 0xB5, 0xEF,
-               0xBC, 0xB6, 0xEF, 0xBC, 0xB7, 0xEF, 0xBC, 0xB8,
-               0xEF, 0xBC, 0xB9, 0xEF, 0xBC, 0xBA, 0xF0, 0x90,
-               0x90, 0x80, 0xF0, 0x90, 0x90, 0x81, 0xF0, 0x90,
-               0x90, 0x82, 0xF0, 0x90, 0x90, 0x83, 0xF0, 0x90,
-               0x90, 0x84, 0xF0, 0x90, 0x90, 0x85, 0xF0, 0x90,
-               0x90, 0x86, 0xF0, 0x90, 0x90, 0x87, 0xF0, 0x90,
-               0x90, 0x88, 0xF0, 0x90, 0x90, 0x89, 0xF0, 0x90,
-               0x90, 0x8A, 0xF0, 0x90, 0x90, 0x8B, 0xF0, 0x90,
-               0x90, 0x8C, 0xF0, 0x90, 0x90, 0x8D, 0xF0, 0x90,
-               0x90, 0x8E, 0xF0, 0x90, 0x90, 0x8F, 0xF0, 0x90,
-               0x90, 0x90, 0xF0, 0x90, 0x90, 0x91, 0xF0, 0x90,
-               0x90, 0x92, 0xF0, 0x90, 0x90, 0x93, 0xF0, 0x90,
-               0x90, 0x94, 0xF0, 0x90, 0x90, 0x95, 0xF0, 0x90,
-               0x90, 0x96, 0xF0, 0x90, 0x90, 0x97, 0xF0, 0x90,
-               0x90, 0x98, 0xF0, 0x90, 0x90, 0x99, 0xF0, 0x90,
-               0x90, 0x9A, 0xF0, 0x90, 0x90, 0x9B, 0xF0, 0x90,
-               0x90, 0x9C, 0xF0, 0x90, 0x90, 0x9D, 0xF0, 0x90,
-               0x90, 0x9E, 0xF0, 0x90, 0x90, 0x9F, 0xF0, 0x90,
-               0x90, 0xA0, 0xF0, 0x90, 0x90, 0xA1, 0xF0, 0x90,
-               0x90, 0xA2, 0xF0, 0x90, 0x90, 0xA3, 0xF0, 0x90,
-               0x90, 0xA4, 0xF0, 0x90, 0x90, 0xA5, 0xF0, 0x90,
-               0x90, 0xA6, 0xF0, 0x90, 0x90, 0xA7,
-       },
-};
-
-#undef N_
-#undef FIL_
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_U8_TEXTPREP_DATA_H */
index def2b7d97858ace5ab9195364c87714db1bb5d87..ee4864ffcddaca4a90416f5e4d1b97d30038123c 100644 (file)
@@ -1,18 +1,16 @@
 MODULE := zcommon
 
-EXTRA_CFLAGS  = -I@MODDIR@/avl/include
-EXTRA_CFLAGS += -I@MODDIR@/nvpair/include
-EXTRA_CFLAGS += -I@MODDIR@/unicode/include
-EXTRA_CFLAGS += -I@MODDIR@/zcommon/include
-EXTRA_CFLAGS += -I@MODDIR@/zfs/include
-EXTRA_CFLAGS += @KERNELCPPFLAGS@
+EXTRA_CFLAGS  = @KERNELCPPFLAGS@
+EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h
+EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h
+EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@
 
-obj-m := ${MODULE}.o
+obj-m := $(MODULE).o
 
-${MODULE}-objs += zfs_deleg.o
-${MODULE}-objs += zfs_prop.o
-${MODULE}-objs += zprop_common.o
-${MODULE}-objs += zfs_namecheck.o
-${MODULE}-objs += zfs_comutil.o
-${MODULE}-objs += zfs_fletcher.o
-${MODULE}-objs += zpool_prop.o
+$(MODULE)-objs += @top_srcdir@/module/zcommon/zfs_deleg.o
+$(MODULE)-objs += @top_srcdir@/module/zcommon/zfs_prop.o
+$(MODULE)-objs += @top_srcdir@/module/zcommon/zprop_common.o
+$(MODULE)-objs += @top_srcdir@/module/zcommon/zfs_namecheck.o
+$(MODULE)-objs += @top_srcdir@/module/zcommon/zfs_comutil.o
+$(MODULE)-objs += @top_srcdir@/module/zcommon/zfs_fletcher.o
+$(MODULE)-objs += @top_srcdir@/module/zcommon/zpool_prop.o
diff --git a/module/zcommon/include/sys/fs/zfs.h b/module/zcommon/include/sys/fs/zfs.h
deleted file mode 100644 (file)
index 25f2562..0000000
+++ /dev/null
@@ -1,916 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* Portions Copyright 2010 Robert Milkowski */
-
-#ifndef        _SYS_FS_ZFS_H
-#define        _SYS_FS_ZFS_H
-
-#include <sys/time.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Types and constants shared between userland and the kernel.
- */
-
-/*
- * Each dataset can be one of the following types.  These constants can be
- * combined into masks that can be passed to various functions.
- */
-typedef enum {
-       ZFS_TYPE_FILESYSTEM     = 0x1,
-       ZFS_TYPE_SNAPSHOT       = 0x2,
-       ZFS_TYPE_VOLUME         = 0x4,
-       ZFS_TYPE_POOL           = 0x8
-} zfs_type_t;
-
-#define        ZFS_TYPE_DATASET        \
-       (ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME | ZFS_TYPE_SNAPSHOT)
-
-#define        ZAP_MAXNAMELEN 256
-#define        ZAP_MAXVALUELEN (1024 * 8)
-#define        ZAP_OLDMAXVALUELEN 1024
-
-/*
- * Dataset properties are identified by these constants and must be added to
- * the end of this list to ensure that external consumers are not affected
- * by the change. If you make any changes to this list, be sure to update
- * the property table in usr/src/common/zfs/zfs_prop.c.
- */
-typedef enum {
-       ZFS_PROP_TYPE,
-       ZFS_PROP_CREATION,
-       ZFS_PROP_USED,
-       ZFS_PROP_AVAILABLE,
-       ZFS_PROP_REFERENCED,
-       ZFS_PROP_COMPRESSRATIO,
-       ZFS_PROP_MOUNTED,
-       ZFS_PROP_ORIGIN,
-       ZFS_PROP_QUOTA,
-       ZFS_PROP_RESERVATION,
-       ZFS_PROP_VOLSIZE,
-       ZFS_PROP_VOLBLOCKSIZE,
-       ZFS_PROP_RECORDSIZE,
-       ZFS_PROP_MOUNTPOINT,
-       ZFS_PROP_SHARENFS,
-       ZFS_PROP_CHECKSUM,
-       ZFS_PROP_COMPRESSION,
-       ZFS_PROP_ATIME,
-       ZFS_PROP_DEVICES,
-       ZFS_PROP_EXEC,
-       ZFS_PROP_SETUID,
-       ZFS_PROP_READONLY,
-       ZFS_PROP_ZONED,
-       ZFS_PROP_SNAPDIR,
-       ZFS_PROP_PRIVATE,               /* not exposed to user, temporary */
-       ZFS_PROP_ACLINHERIT,
-       ZFS_PROP_CREATETXG,             /* not exposed to the user */
-       ZFS_PROP_NAME,                  /* not exposed to the user */
-       ZFS_PROP_CANMOUNT,
-       ZFS_PROP_ISCSIOPTIONS,          /* not exposed to the user */
-       ZFS_PROP_XATTR,
-       ZFS_PROP_NUMCLONES,             /* not exposed to the user */
-       ZFS_PROP_COPIES,
-       ZFS_PROP_VERSION,
-       ZFS_PROP_UTF8ONLY,
-       ZFS_PROP_NORMALIZE,
-       ZFS_PROP_CASE,
-       ZFS_PROP_VSCAN,
-       ZFS_PROP_NBMAND,
-       ZFS_PROP_SHARESMB,
-       ZFS_PROP_REFQUOTA,
-       ZFS_PROP_REFRESERVATION,
-       ZFS_PROP_GUID,
-       ZFS_PROP_PRIMARYCACHE,
-       ZFS_PROP_SECONDARYCACHE,
-       ZFS_PROP_USEDSNAP,
-       ZFS_PROP_USEDDS,
-       ZFS_PROP_USEDCHILD,
-       ZFS_PROP_USEDREFRESERV,
-       ZFS_PROP_USERACCOUNTING,        /* not exposed to the user */
-       ZFS_PROP_STMF_SHAREINFO,        /* not exposed to the user */
-       ZFS_PROP_DEFER_DESTROY,
-       ZFS_PROP_USERREFS,
-       ZFS_PROP_LOGBIAS,
-       ZFS_PROP_UNIQUE,                /* not exposed to the user */
-       ZFS_PROP_OBJSETID,              /* not exposed to the user */
-       ZFS_PROP_DEDUP,
-       ZFS_PROP_MLSLABEL,
-       ZFS_PROP_SYNC,
-       ZFS_NUM_PROPS
-} zfs_prop_t;
-
-typedef enum {
-       ZFS_PROP_USERUSED,
-       ZFS_PROP_USERQUOTA,
-       ZFS_PROP_GROUPUSED,
-       ZFS_PROP_GROUPQUOTA,
-       ZFS_NUM_USERQUOTA_PROPS
-} zfs_userquota_prop_t;
-
-extern const char *zfs_userquota_prop_prefixes[ZFS_NUM_USERQUOTA_PROPS];
-
-/*
- * Pool properties are identified by these constants and must be added to the
- * end of this list to ensure that external consumers are not affected
- * by the change. If you make any changes to this list, be sure to update
- * the property table in usr/src/common/zfs/zpool_prop.c.
- */
-typedef enum {
-       ZPOOL_PROP_NAME,
-       ZPOOL_PROP_SIZE,
-       ZPOOL_PROP_CAPACITY,
-       ZPOOL_PROP_ALTROOT,
-       ZPOOL_PROP_HEALTH,
-       ZPOOL_PROP_GUID,
-       ZPOOL_PROP_VERSION,
-       ZPOOL_PROP_BOOTFS,
-       ZPOOL_PROP_DELEGATION,
-       ZPOOL_PROP_AUTOREPLACE,
-       ZPOOL_PROP_CACHEFILE,
-       ZPOOL_PROP_FAILUREMODE,
-       ZPOOL_PROP_LISTSNAPS,
-       ZPOOL_PROP_AUTOEXPAND,
-       ZPOOL_PROP_DEDUPDITTO,
-       ZPOOL_PROP_DEDUPRATIO,
-       ZPOOL_PROP_FREE,
-       ZPOOL_PROP_ALLOCATED,
-       ZPOOL_PROP_READONLY,
-       ZPOOL_NUM_PROPS
-} zpool_prop_t;
-
-#define        ZPROP_CONT              -2
-#define        ZPROP_INVAL             -1
-
-#define        ZPROP_VALUE             "value"
-#define        ZPROP_SOURCE            "source"
-
-typedef enum {
-       ZPROP_SRC_NONE = 0x1,
-       ZPROP_SRC_DEFAULT = 0x2,
-       ZPROP_SRC_TEMPORARY = 0x4,
-       ZPROP_SRC_LOCAL = 0x8,
-       ZPROP_SRC_INHERITED = 0x10,
-       ZPROP_SRC_RECEIVED = 0x20
-} zprop_source_t;
-
-#define        ZPROP_SRC_ALL   0x3f
-
-#define        ZPROP_SOURCE_VAL_RECVD  "$recvd"
-#define        ZPROP_N_MORE_ERRORS     "N_MORE_ERRORS"
-/*
- * Dataset flag implemented as a special entry in the props zap object
- * indicating that the dataset has received properties on or after
- * SPA_VERSION_RECVD_PROPS. The first such receive blows away local properties
- * just as it did in earlier versions, and thereafter, local properties are
- * preserved.
- */
-#define        ZPROP_HAS_RECVD         "$hasrecvd"
-
-typedef enum {
-       ZPROP_ERR_NOCLEAR = 0x1, /* failure to clear existing props */
-       ZPROP_ERR_NORESTORE = 0x2 /* failure to restore props on error */
-} zprop_errflags_t;
-
-typedef int (*zprop_func)(int, void *);
-
-/*
- * Properties to be set on the root file system of a new pool
- * are stuffed into their own nvlist, which is then included in
- * the properties nvlist with the pool properties.
- */
-#define        ZPOOL_ROOTFS_PROPS      "root-props-nvl"
-
-/*
- * Dataset property functions shared between libzfs and kernel.
- */
-const char *zfs_prop_default_string(zfs_prop_t);
-uint64_t zfs_prop_default_numeric(zfs_prop_t);
-boolean_t zfs_prop_readonly(zfs_prop_t);
-boolean_t zfs_prop_inheritable(zfs_prop_t);
-boolean_t zfs_prop_setonce(zfs_prop_t);
-const char *zfs_prop_to_name(zfs_prop_t);
-zfs_prop_t zfs_name_to_prop(const char *);
-boolean_t zfs_prop_user(const char *);
-boolean_t zfs_prop_userquota(const char *);
-int zfs_prop_index_to_string(zfs_prop_t, uint64_t, const char **);
-int zfs_prop_string_to_index(zfs_prop_t, const char *, uint64_t *);
-uint64_t zfs_prop_random_value(zfs_prop_t, uint64_t seed);
-boolean_t zfs_prop_valid_for_type(int, zfs_type_t);
-
-/*
- * Pool property functions shared between libzfs and kernel.
- */
-zpool_prop_t zpool_name_to_prop(const char *);
-const char *zpool_prop_to_name(zpool_prop_t);
-const char *zpool_prop_default_string(zpool_prop_t);
-uint64_t zpool_prop_default_numeric(zpool_prop_t);
-boolean_t zpool_prop_readonly(zpool_prop_t);
-int zpool_prop_index_to_string(zpool_prop_t, uint64_t, const char **);
-int zpool_prop_string_to_index(zpool_prop_t, const char *, uint64_t *);
-uint64_t zpool_prop_random_value(zpool_prop_t, uint64_t seed);
-
-/*
- * Definitions for the Delegation.
- */
-typedef enum {
-       ZFS_DELEG_WHO_UNKNOWN = 0,
-       ZFS_DELEG_USER = 'u',
-       ZFS_DELEG_USER_SETS = 'U',
-       ZFS_DELEG_GROUP = 'g',
-       ZFS_DELEG_GROUP_SETS = 'G',
-       ZFS_DELEG_EVERYONE = 'e',
-       ZFS_DELEG_EVERYONE_SETS = 'E',
-       ZFS_DELEG_CREATE = 'c',
-       ZFS_DELEG_CREATE_SETS = 'C',
-       ZFS_DELEG_NAMED_SET = 's',
-       ZFS_DELEG_NAMED_SET_SETS = 'S'
-} zfs_deleg_who_type_t;
-
-typedef enum {
-       ZFS_DELEG_NONE = 0,
-       ZFS_DELEG_PERM_LOCAL = 1,
-       ZFS_DELEG_PERM_DESCENDENT = 2,
-       ZFS_DELEG_PERM_LOCALDESCENDENT = 3,
-       ZFS_DELEG_PERM_CREATE = 4
-} zfs_deleg_inherit_t;
-
-#define        ZFS_DELEG_PERM_UID      "uid"
-#define        ZFS_DELEG_PERM_GID      "gid"
-#define        ZFS_DELEG_PERM_GROUPS   "groups"
-
-#define        ZFS_MLSLABEL_DEFAULT    "none"
-
-#define        ZFS_SMB_ACL_SRC         "src"
-#define        ZFS_SMB_ACL_TARGET      "target"
-
-typedef enum {
-       ZFS_CANMOUNT_OFF = 0,
-       ZFS_CANMOUNT_ON = 1,
-       ZFS_CANMOUNT_NOAUTO = 2
-} zfs_canmount_type_t;
-
-typedef enum {
-       ZFS_LOGBIAS_LATENCY = 0,
-       ZFS_LOGBIAS_THROUGHPUT = 1
-} zfs_logbias_op_t;
-
-typedef enum zfs_share_op {
-       ZFS_SHARE_NFS = 0,
-       ZFS_UNSHARE_NFS = 1,
-       ZFS_SHARE_SMB = 2,
-       ZFS_UNSHARE_SMB = 3
-} zfs_share_op_t;
-
-typedef enum zfs_smb_acl_op {
-       ZFS_SMB_ACL_ADD,
-       ZFS_SMB_ACL_REMOVE,
-       ZFS_SMB_ACL_RENAME,
-       ZFS_SMB_ACL_PURGE
-} zfs_smb_acl_op_t;
-
-typedef enum zfs_cache_type {
-       ZFS_CACHE_NONE = 0,
-       ZFS_CACHE_METADATA = 1,
-       ZFS_CACHE_ALL = 2
-} zfs_cache_type_t;
-
-typedef enum {
-       ZFS_SYNC_STANDARD = 0,
-       ZFS_SYNC_ALWAYS = 1,
-       ZFS_SYNC_DISABLED = 2
-} zfs_sync_type_t;
-
-
-/*
- * On-disk version number.
- */
-#define        SPA_VERSION_1                   1ULL
-#define        SPA_VERSION_2                   2ULL
-#define        SPA_VERSION_3                   3ULL
-#define        SPA_VERSION_4                   4ULL
-#define        SPA_VERSION_5                   5ULL
-#define        SPA_VERSION_6                   6ULL
-#define        SPA_VERSION_7                   7ULL
-#define        SPA_VERSION_8                   8ULL
-#define        SPA_VERSION_9                   9ULL
-#define        SPA_VERSION_10                  10ULL
-#define        SPA_VERSION_11                  11ULL
-#define        SPA_VERSION_12                  12ULL
-#define        SPA_VERSION_13                  13ULL
-#define        SPA_VERSION_14                  14ULL
-#define        SPA_VERSION_15                  15ULL
-#define        SPA_VERSION_16                  16ULL
-#define        SPA_VERSION_17                  17ULL
-#define        SPA_VERSION_18                  18ULL
-#define        SPA_VERSION_19                  19ULL
-#define        SPA_VERSION_20                  20ULL
-#define        SPA_VERSION_21                  21ULL
-#define        SPA_VERSION_22                  22ULL
-#define        SPA_VERSION_23                  23ULL
-#define        SPA_VERSION_24                  24ULL
-#define        SPA_VERSION_25                  25ULL
-#define        SPA_VERSION_26                  26ULL
-#define        SPA_VERSION_27                  27ULL
-#define        SPA_VERSION_28                  28ULL
-
-/*
- * When bumping up SPA_VERSION, make sure GRUB ZFS understands the on-disk
- * format change. Go to usr/src/grub/grub-0.97/stage2/{zfs-include/, fsys_zfs*},
- * and do the appropriate changes.  Also bump the version number in
- * usr/src/grub/capability.
- */
-#define        SPA_VERSION                     SPA_VERSION_28
-#define        SPA_VERSION_STRING              "28"
-
-/*
- * Symbolic names for the changes that caused a SPA_VERSION switch.
- * Used in the code when checking for presence or absence of a feature.
- * Feel free to define multiple symbolic names for each version if there
- * were multiple changes to on-disk structures during that version.
- *
- * NOTE: When checking the current SPA_VERSION in your code, be sure
- *       to use spa_version() since it reports the version of the
- *       last synced uberblock.  Checking the in-flight version can
- *       be dangerous in some cases.
- */
-#define        SPA_VERSION_INITIAL             SPA_VERSION_1
-#define        SPA_VERSION_DITTO_BLOCKS        SPA_VERSION_2
-#define        SPA_VERSION_SPARES              SPA_VERSION_3
-#define        SPA_VERSION_RAIDZ2              SPA_VERSION_3
-#define        SPA_VERSION_BPOBJ_ACCOUNT       SPA_VERSION_3
-#define        SPA_VERSION_RAIDZ_DEFLATE       SPA_VERSION_3
-#define        SPA_VERSION_DNODE_BYTES         SPA_VERSION_3
-#define        SPA_VERSION_ZPOOL_HISTORY       SPA_VERSION_4
-#define        SPA_VERSION_GZIP_COMPRESSION    SPA_VERSION_5
-#define        SPA_VERSION_BOOTFS              SPA_VERSION_6
-#define        SPA_VERSION_SLOGS               SPA_VERSION_7
-#define        SPA_VERSION_DELEGATED_PERMS     SPA_VERSION_8
-#define        SPA_VERSION_FUID                SPA_VERSION_9
-#define        SPA_VERSION_REFRESERVATION      SPA_VERSION_9
-#define        SPA_VERSION_REFQUOTA            SPA_VERSION_9
-#define        SPA_VERSION_UNIQUE_ACCURATE     SPA_VERSION_9
-#define        SPA_VERSION_L2CACHE             SPA_VERSION_10
-#define        SPA_VERSION_NEXT_CLONES         SPA_VERSION_11
-#define        SPA_VERSION_ORIGIN              SPA_VERSION_11
-#define        SPA_VERSION_DSL_SCRUB           SPA_VERSION_11
-#define        SPA_VERSION_SNAP_PROPS          SPA_VERSION_12
-#define        SPA_VERSION_USED_BREAKDOWN      SPA_VERSION_13
-#define        SPA_VERSION_PASSTHROUGH_X       SPA_VERSION_14
-#define        SPA_VERSION_USERSPACE           SPA_VERSION_15
-#define        SPA_VERSION_STMF_PROP           SPA_VERSION_16
-#define        SPA_VERSION_RAIDZ3              SPA_VERSION_17
-#define        SPA_VERSION_USERREFS            SPA_VERSION_18
-#define        SPA_VERSION_HOLES               SPA_VERSION_19
-#define        SPA_VERSION_ZLE_COMPRESSION     SPA_VERSION_20
-#define        SPA_VERSION_DEDUP               SPA_VERSION_21
-#define        SPA_VERSION_RECVD_PROPS         SPA_VERSION_22
-#define        SPA_VERSION_SLIM_ZIL            SPA_VERSION_23
-#define        SPA_VERSION_SA                  SPA_VERSION_24
-#define        SPA_VERSION_SCAN                SPA_VERSION_25
-#define        SPA_VERSION_DIR_CLONES          SPA_VERSION_26
-#define        SPA_VERSION_DEADLISTS           SPA_VERSION_26
-#define        SPA_VERSION_FAST_SNAP           SPA_VERSION_27
-#define        SPA_VERSION_MULTI_REPLACE       SPA_VERSION_28
-
-/*
- * ZPL version - rev'd whenever an incompatible on-disk format change
- * occurs.  This is independent of SPA/DMU/ZAP versioning.  You must
- * also update the version_table[] and help message in zfs_prop.c.
- *
- * When changing, be sure to teach GRUB how to read the new format!
- * See usr/src/grub/grub-0.97/stage2/{zfs-include/,fsys_zfs*}
- */
-#define        ZPL_VERSION_1                   1ULL
-#define        ZPL_VERSION_2                   2ULL
-#define        ZPL_VERSION_3                   3ULL
-#define        ZPL_VERSION_4                   4ULL
-#define        ZPL_VERSION_5                   5ULL
-#define        ZPL_VERSION                     ZPL_VERSION_5
-#define        ZPL_VERSION_STRING              "5"
-
-#define        ZPL_VERSION_INITIAL             ZPL_VERSION_1
-#define        ZPL_VERSION_DIRENT_TYPE         ZPL_VERSION_2
-#define        ZPL_VERSION_FUID                ZPL_VERSION_3
-#define        ZPL_VERSION_NORMALIZATION       ZPL_VERSION_3
-#define        ZPL_VERSION_SYSATTR             ZPL_VERSION_3
-#define        ZPL_VERSION_USERSPACE           ZPL_VERSION_4
-#define        ZPL_VERSION_SA                  ZPL_VERSION_5
-
-/* Rewind request information */
-#define        ZPOOL_NO_REWIND         1  /* No policy - default behavior */
-#define        ZPOOL_NEVER_REWIND      2  /* Do not search for best txg or rewind */
-#define        ZPOOL_TRY_REWIND        4  /* Search for best txg, but do not rewind */
-#define        ZPOOL_DO_REWIND         8  /* Rewind to best txg w/in deferred frees */
-#define        ZPOOL_EXTREME_REWIND    16 /* Allow extreme measures to find best txg */
-#define        ZPOOL_REWIND_MASK       28 /* All the possible rewind bits */
-#define        ZPOOL_REWIND_POLICIES   31 /* All the possible policy bits */
-
-typedef struct zpool_rewind_policy {
-       uint32_t        zrp_request;    /* rewind behavior requested */
-       uint64_t        zrp_maxmeta;    /* max acceptable meta-data errors */
-       uint64_t        zrp_maxdata;    /* max acceptable data errors */
-       uint64_t        zrp_txg;        /* specific txg to load */
-} zpool_rewind_policy_t;
-
-/*
- * The following are configuration names used in the nvlist describing a pool's
- * configuration.
- */
-#define        ZPOOL_CONFIG_VERSION            "version"
-#define        ZPOOL_CONFIG_POOL_NAME          "name"
-#define        ZPOOL_CONFIG_POOL_STATE         "state"
-#define        ZPOOL_CONFIG_POOL_TXG           "txg"
-#define        ZPOOL_CONFIG_POOL_GUID          "pool_guid"
-#define        ZPOOL_CONFIG_CREATE_TXG         "create_txg"
-#define        ZPOOL_CONFIG_TOP_GUID           "top_guid"
-#define        ZPOOL_CONFIG_VDEV_TREE          "vdev_tree"
-#define        ZPOOL_CONFIG_TYPE               "type"
-#define        ZPOOL_CONFIG_CHILDREN           "children"
-#define        ZPOOL_CONFIG_ID                 "id"
-#define        ZPOOL_CONFIG_GUID               "guid"
-#define        ZPOOL_CONFIG_PATH               "path"
-#define        ZPOOL_CONFIG_DEVID              "devid"
-#define        ZPOOL_CONFIG_METASLAB_ARRAY     "metaslab_array"
-#define        ZPOOL_CONFIG_METASLAB_SHIFT     "metaslab_shift"
-#define        ZPOOL_CONFIG_ASHIFT             "ashift"
-#define        ZPOOL_CONFIG_ASIZE              "asize"
-#define        ZPOOL_CONFIG_DTL                "DTL"
-#define        ZPOOL_CONFIG_SCAN_STATS         "scan_stats"    /* not stored on disk */
-#define        ZPOOL_CONFIG_VDEV_STATS         "vdev_stats"    /* not stored on disk */
-#define        ZPOOL_CONFIG_WHOLE_DISK         "whole_disk"
-#define        ZPOOL_CONFIG_ERRCOUNT           "error_count"
-#define        ZPOOL_CONFIG_NOT_PRESENT        "not_present"
-#define        ZPOOL_CONFIG_SPARES             "spares"
-#define        ZPOOL_CONFIG_IS_SPARE           "is_spare"
-#define        ZPOOL_CONFIG_NPARITY            "nparity"
-#define        ZPOOL_CONFIG_HOSTID             "hostid"
-#define        ZPOOL_CONFIG_HOSTNAME           "hostname"
-#define        ZPOOL_CONFIG_LOADED_TIME        "initial_load_time"
-#define        ZPOOL_CONFIG_UNSPARE            "unspare"
-#define        ZPOOL_CONFIG_PHYS_PATH          "phys_path"
-#define        ZPOOL_CONFIG_IS_LOG             "is_log"
-#define        ZPOOL_CONFIG_L2CACHE            "l2cache"
-#define        ZPOOL_CONFIG_HOLE_ARRAY         "hole_array"
-#define        ZPOOL_CONFIG_VDEV_CHILDREN      "vdev_children"
-#define        ZPOOL_CONFIG_IS_HOLE            "is_hole"
-#define        ZPOOL_CONFIG_DDT_HISTOGRAM      "ddt_histogram"
-#define        ZPOOL_CONFIG_DDT_OBJ_STATS      "ddt_object_stats"
-#define        ZPOOL_CONFIG_DDT_STATS          "ddt_stats"
-#define        ZPOOL_CONFIG_SPLIT              "splitcfg"
-#define        ZPOOL_CONFIG_ORIG_GUID          "orig_guid"
-#define        ZPOOL_CONFIG_SPLIT_GUID         "split_guid"
-#define        ZPOOL_CONFIG_SPLIT_LIST         "guid_list"
-#define        ZPOOL_CONFIG_REMOVING           "removing"
-#define        ZPOOL_CONFIG_RESILVERING        "resilvering"
-#define        ZPOOL_CONFIG_SUSPENDED          "suspended"     /* not stored on disk */
-#define        ZPOOL_CONFIG_TIMESTAMP          "timestamp"     /* not stored on disk */
-#define        ZPOOL_CONFIG_BOOTFS             "bootfs"        /* not stored on disk */
-#define        ZPOOL_CONFIG_MISSING_DEVICES    "missing_vdevs" /* not stored on disk */
-#define        ZPOOL_CONFIG_LOAD_INFO          "load_info"     /* not stored on disk */
-/*
- * The persistent vdev state is stored as separate values rather than a single
- * 'vdev_state' entry.  This is because a device can be in multiple states, such
- * as offline and degraded.
- */
-#define        ZPOOL_CONFIG_OFFLINE            "offline"
-#define        ZPOOL_CONFIG_FAULTED            "faulted"
-#define        ZPOOL_CONFIG_DEGRADED           "degraded"
-#define        ZPOOL_CONFIG_REMOVED            "removed"
-#define        ZPOOL_CONFIG_FRU                "fru"
-#define        ZPOOL_CONFIG_AUX_STATE          "aux_state"
-
-/* Rewind policy parameters */
-#define        ZPOOL_REWIND_POLICY             "rewind-policy"
-#define        ZPOOL_REWIND_REQUEST            "rewind-request"
-#define        ZPOOL_REWIND_REQUEST_TXG        "rewind-request-txg"
-#define        ZPOOL_REWIND_META_THRESH        "rewind-meta-thresh"
-#define        ZPOOL_REWIND_DATA_THRESH        "rewind-data-thresh"
-
-/* Rewind data discovered */
-#define        ZPOOL_CONFIG_LOAD_TIME          "rewind_txg_ts"
-#define        ZPOOL_CONFIG_LOAD_DATA_ERRORS   "verify_data_errors"
-#define        ZPOOL_CONFIG_REWIND_TIME        "seconds_of_rewind"
-
-#define        VDEV_TYPE_ROOT                  "root"
-#define        VDEV_TYPE_MIRROR                "mirror"
-#define        VDEV_TYPE_REPLACING             "replacing"
-#define        VDEV_TYPE_RAIDZ                 "raidz"
-#define        VDEV_TYPE_DISK                  "disk"
-#define        VDEV_TYPE_FILE                  "file"
-#define        VDEV_TYPE_MISSING               "missing"
-#define        VDEV_TYPE_HOLE                  "hole"
-#define        VDEV_TYPE_SPARE                 "spare"
-#define        VDEV_TYPE_LOG                   "log"
-#define        VDEV_TYPE_L2CACHE               "l2cache"
-
-/*
- * This is needed in userland to report the minimum necessary device size.
- */
-#define        SPA_MINDEVSIZE          (64ULL << 20)
-
-/*
- * The location of the pool configuration repository, shared between kernel and
- * userland.
- */
-#define        ZPOOL_CACHE             "/etc/zfs/zpool.cache"
-
-/*
- * vdev states are ordered from least to most healthy.
- * A vdev that's CANT_OPEN or below is considered unusable.
- */
-typedef enum vdev_state {
-       VDEV_STATE_UNKNOWN = 0, /* Uninitialized vdev                   */
-       VDEV_STATE_CLOSED,      /* Not currently open                   */
-       VDEV_STATE_OFFLINE,     /* Not allowed to open                  */
-       VDEV_STATE_REMOVED,     /* Explicitly removed from system       */
-       VDEV_STATE_CANT_OPEN,   /* Tried to open, but failed            */
-       VDEV_STATE_FAULTED,     /* External request to fault device     */
-       VDEV_STATE_DEGRADED,    /* Replicated vdev with unhealthy kids  */
-       VDEV_STATE_HEALTHY      /* Presumed good                        */
-} vdev_state_t;
-
-#define        VDEV_STATE_ONLINE       VDEV_STATE_HEALTHY
-
-/*
- * vdev aux states.  When a vdev is in the CANT_OPEN state, the aux field
- * of the vdev stats structure uses these constants to distinguish why.
- */
-typedef enum vdev_aux {
-       VDEV_AUX_NONE,          /* no error                             */
-       VDEV_AUX_OPEN_FAILED,   /* ldi_open_*() or vn_open() failed     */
-       VDEV_AUX_CORRUPT_DATA,  /* bad label or disk contents           */
-       VDEV_AUX_NO_REPLICAS,   /* insufficient number of replicas      */
-       VDEV_AUX_BAD_GUID_SUM,  /* vdev guid sum doesn't match          */
-       VDEV_AUX_TOO_SMALL,     /* vdev size is too small               */
-       VDEV_AUX_BAD_LABEL,     /* the label is OK but invalid          */
-       VDEV_AUX_VERSION_NEWER, /* on-disk version is too new           */
-       VDEV_AUX_VERSION_OLDER, /* on-disk version is too old           */
-       VDEV_AUX_SPARED,        /* hot spare used in another pool       */
-       VDEV_AUX_ERR_EXCEEDED,  /* too many errors                      */
-       VDEV_AUX_IO_FAILURE,    /* experienced I/O failure              */
-       VDEV_AUX_BAD_LOG,       /* cannot read log chain(s)             */
-       VDEV_AUX_EXTERNAL,      /* external diagnosis                   */
-       VDEV_AUX_SPLIT_POOL     /* vdev was split off into another pool */
-} vdev_aux_t;
-
-/*
- * pool state.  The following states are written to disk as part of the normal
- * SPA lifecycle: ACTIVE, EXPORTED, DESTROYED, SPARE, L2CACHE.  The remaining
- * states are software abstractions used at various levels to communicate
- * pool state.
- */
-typedef enum pool_state {
-       POOL_STATE_ACTIVE = 0,          /* In active use                */
-       POOL_STATE_EXPORTED,            /* Explicitly exported          */
-       POOL_STATE_DESTROYED,           /* Explicitly destroyed         */
-       POOL_STATE_SPARE,               /* Reserved for hot spare use   */
-       POOL_STATE_L2CACHE,             /* Level 2 ARC device           */
-       POOL_STATE_UNINITIALIZED,       /* Internal spa_t state         */
-       POOL_STATE_UNAVAIL,             /* Internal libzfs state        */
-       POOL_STATE_POTENTIALLY_ACTIVE   /* Internal libzfs state        */
-} pool_state_t;
-
-/*
- * Scan Functions.
- */
-typedef enum pool_scan_func {
-       POOL_SCAN_NONE,
-       POOL_SCAN_SCRUB,
-       POOL_SCAN_RESILVER,
-       POOL_SCAN_FUNCS
-} pool_scan_func_t;
-
-/*
- * ZIO types.  Needed to interpret vdev statistics below.
- */
-typedef enum zio_type {
-       ZIO_TYPE_NULL = 0,
-       ZIO_TYPE_READ,
-       ZIO_TYPE_WRITE,
-       ZIO_TYPE_FREE,
-       ZIO_TYPE_CLAIM,
-       ZIO_TYPE_IOCTL,
-       ZIO_TYPES
-} zio_type_t;
-
-/*
- * Pool statistics.  Note: all fields should be 64-bit because this
- * is passed between kernel and userland as an nvlist uint64 array.
- */
-typedef struct pool_scan_stat {
-       /* values stored on disk */
-       uint64_t        pss_func;       /* pool_scan_func_t */
-       uint64_t        pss_state;      /* dsl_scan_state_t */
-       uint64_t        pss_start_time; /* scan start time */
-       uint64_t        pss_end_time;   /* scan end time */
-       uint64_t        pss_to_examine; /* total bytes to scan */
-       uint64_t        pss_examined;   /* total examined bytes */
-       uint64_t        pss_to_process; /* total bytes to process */
-       uint64_t        pss_processed;  /* total processed bytes */
-       uint64_t        pss_errors;     /* scan errors  */
-
-       /* values not stored on disk */
-       uint64_t        pss_pass_exam;  /* examined bytes per scan pass */
-       uint64_t        pss_pass_start; /* start time of a scan pass */
-} pool_scan_stat_t;
-
-typedef enum dsl_scan_state {
-       DSS_NONE,
-       DSS_SCANNING,
-       DSS_FINISHED,
-       DSS_CANCELED,
-       DSS_NUM_STATES
-} dsl_scan_state_t;
-
-
-/*
- * Vdev statistics.  Note: all fields should be 64-bit because this
- * is passed between kernel and userland as an nvlist uint64 array.
- */
-typedef struct vdev_stat {
-       hrtime_t        vs_timestamp;           /* time since vdev load */
-       uint64_t        vs_state;               /* vdev state           */
-       uint64_t        vs_aux;                 /* see vdev_aux_t       */
-       uint64_t        vs_alloc;               /* space allocated      */
-       uint64_t        vs_space;               /* total capacity       */
-       uint64_t        vs_dspace;              /* deflated capacity    */
-       uint64_t        vs_rsize;               /* replaceable dev size */
-       uint64_t        vs_ops[ZIO_TYPES];      /* operation count      */
-       uint64_t        vs_bytes[ZIO_TYPES];    /* bytes read/written   */
-       uint64_t        vs_read_errors;         /* read errors          */
-       uint64_t        vs_write_errors;        /* write errors         */
-       uint64_t        vs_checksum_errors;     /* checksum errors      */
-       uint64_t        vs_self_healed;         /* self-healed bytes    */
-       uint64_t        vs_scan_removing;       /* removing?    */
-       uint64_t        vs_scan_processed;      /* scan processed bytes */
-} vdev_stat_t;
-
-/*
- * DDT statistics.  Note: all fields should be 64-bit because this
- * is passed between kernel and userland as an nvlist uint64 array.
- */
-typedef struct ddt_object {
-       uint64_t        ddo_count;      /* number of elments in ddt     */
-       uint64_t        ddo_dspace;     /* size of ddt on disk          */
-       uint64_t        ddo_mspace;     /* size of ddt in-core          */
-} ddt_object_t;
-
-typedef struct ddt_stat {
-       uint64_t        dds_blocks;     /* blocks                       */
-       uint64_t        dds_lsize;      /* logical size                 */
-       uint64_t        dds_psize;      /* physical size                */
-       uint64_t        dds_dsize;      /* deflated allocated size      */
-       uint64_t        dds_ref_blocks; /* referenced blocks            */
-       uint64_t        dds_ref_lsize;  /* referenced lsize * refcnt    */
-       uint64_t        dds_ref_psize;  /* referenced psize * refcnt    */
-       uint64_t        dds_ref_dsize;  /* referenced dsize * refcnt    */
-} ddt_stat_t;
-
-typedef struct ddt_histogram {
-       ddt_stat_t      ddh_stat[64];   /* power-of-two histogram buckets */
-} ddt_histogram_t;
-
-#define        ZVOL_DRIVER     "zvol"
-#define        ZFS_DRIVER      "zfs"
-#define        ZFS_DEV         "/dev/zfs"
-
-/* general zvol path */
-#define        ZVOL_DIR        "/dev"
-
-#define        ZVOL_MAJOR              230
-#define        ZVOL_MINOR_BITS         4
-#define        ZVOL_MINOR_MASK         ((1U << ZVOL_MINOR_BITS) - 1)
-#define        ZVOL_MINORS             (1 << 4)
-
-#define        ZVOL_PROP_NAME          "name"
-#define        ZVOL_DEFAULT_BLOCKSIZE  8192
-
-/*
- * /dev/zfs ioctl numbers.
- */
-#define        ZFS_IOC         ('Z' << 8)
-
-typedef enum zfs_ioc {
-       ZFS_IOC_POOL_CREATE = ZFS_IOC,
-       ZFS_IOC_POOL_DESTROY,
-       ZFS_IOC_POOL_IMPORT,
-       ZFS_IOC_POOL_EXPORT,
-       ZFS_IOC_POOL_CONFIGS,
-       ZFS_IOC_POOL_STATS,
-       ZFS_IOC_POOL_TRYIMPORT,
-       ZFS_IOC_POOL_SCAN,
-       ZFS_IOC_POOL_FREEZE,
-       ZFS_IOC_POOL_UPGRADE,
-       ZFS_IOC_POOL_GET_HISTORY,
-       ZFS_IOC_VDEV_ADD,
-       ZFS_IOC_VDEV_REMOVE,
-       ZFS_IOC_VDEV_SET_STATE,
-       ZFS_IOC_VDEV_ATTACH,
-       ZFS_IOC_VDEV_DETACH,
-       ZFS_IOC_VDEV_SETPATH,
-       ZFS_IOC_VDEV_SETFRU,
-       ZFS_IOC_OBJSET_STATS,
-       ZFS_IOC_OBJSET_ZPLPROPS,
-       ZFS_IOC_DATASET_LIST_NEXT,
-       ZFS_IOC_SNAPSHOT_LIST_NEXT,
-       ZFS_IOC_SET_PROP,
-       ZFS_IOC_CREATE_MINOR,
-       ZFS_IOC_REMOVE_MINOR,
-       ZFS_IOC_CREATE,
-       ZFS_IOC_DESTROY,
-       ZFS_IOC_ROLLBACK,
-       ZFS_IOC_RENAME,
-       ZFS_IOC_RECV,
-       ZFS_IOC_SEND,
-       ZFS_IOC_INJECT_FAULT,
-       ZFS_IOC_CLEAR_FAULT,
-       ZFS_IOC_INJECT_LIST_NEXT,
-       ZFS_IOC_ERROR_LOG,
-       ZFS_IOC_CLEAR,
-       ZFS_IOC_PROMOTE,
-       ZFS_IOC_DESTROY_SNAPS,
-       ZFS_IOC_SNAPSHOT,
-       ZFS_IOC_DSOBJ_TO_DSNAME,
-       ZFS_IOC_OBJ_TO_PATH,
-       ZFS_IOC_POOL_SET_PROPS,
-       ZFS_IOC_POOL_GET_PROPS,
-       ZFS_IOC_SET_FSACL,
-       ZFS_IOC_GET_FSACL,
-       ZFS_IOC_SHARE,
-       ZFS_IOC_INHERIT_PROP,
-       ZFS_IOC_SMB_ACL,
-       ZFS_IOC_USERSPACE_ONE,
-       ZFS_IOC_USERSPACE_MANY,
-       ZFS_IOC_USERSPACE_UPGRADE,
-       ZFS_IOC_HOLD,
-       ZFS_IOC_RELEASE,
-       ZFS_IOC_GET_HOLDS,
-       ZFS_IOC_OBJSET_RECVD_PROPS,
-       ZFS_IOC_VDEV_SPLIT,
-       ZFS_IOC_NEXT_OBJ,
-       ZFS_IOC_DIFF,
-       ZFS_IOC_TMP_SNAPSHOT,
-       ZFS_IOC_OBJ_TO_STATS,
-       ZFS_IOC_EVENTS_NEXT,
-       ZFS_IOC_EVENTS_CLEAR,
-} zfs_ioc_t;
-
-/*
- * Internal SPA load state.  Used by FMA diagnosis engine.
- */
-typedef enum {
-       SPA_LOAD_NONE,          /* no load in progress  */
-       SPA_LOAD_OPEN,          /* normal open          */
-       SPA_LOAD_IMPORT,        /* import in progress   */
-       SPA_LOAD_TRYIMPORT,     /* tryimport in progress */
-       SPA_LOAD_RECOVER,       /* recovery requested   */
-       SPA_LOAD_ERROR          /* load failed          */
-} spa_load_state_t;
-
-/*
- * Bookmark name values.
- */
-#define        ZPOOL_ERR_LIST          "error list"
-#define        ZPOOL_ERR_DATASET       "dataset"
-#define        ZPOOL_ERR_OBJECT        "object"
-
-#define        HIS_MAX_RECORD_LEN      (MAXPATHLEN + MAXPATHLEN + 1)
-
-/*
- * The following are names used in the nvlist describing
- * the pool's history log.
- */
-#define        ZPOOL_HIST_RECORD       "history record"
-#define        ZPOOL_HIST_TIME         "history time"
-#define        ZPOOL_HIST_CMD          "history command"
-#define        ZPOOL_HIST_WHO          "history who"
-#define        ZPOOL_HIST_ZONE         "history zone"
-#define        ZPOOL_HIST_HOST         "history hostname"
-#define        ZPOOL_HIST_TXG          "history txg"
-#define        ZPOOL_HIST_INT_EVENT    "history internal event"
-#define        ZPOOL_HIST_INT_STR      "history internal str"
-
-/*
- * Flags for ZFS_IOC_VDEV_SET_STATE
- */
-#define        ZFS_ONLINE_CHECKREMOVE  0x1
-#define        ZFS_ONLINE_UNSPARE      0x2
-#define        ZFS_ONLINE_FORCEFAULT   0x4
-#define        ZFS_ONLINE_EXPAND       0x8
-#define        ZFS_OFFLINE_TEMPORARY   0x1
-
-/*
- * Flags for ZFS_IOC_POOL_IMPORT
- */
-#define        ZFS_IMPORT_NORMAL       0x0
-#define        ZFS_IMPORT_VERBATIM     0x1
-#define        ZFS_IMPORT_ANY_HOST     0x2
-#define        ZFS_IMPORT_MISSING_LOG  0x4
-#define        ZFS_IMPORT_ONLY         0x8
-
-/*
- * Sysevent payload members.  ZFS will generate the following sysevents with the
- * given payloads:
- *
- *     ESC_ZFS_RESILVER_START
- *     ESC_ZFS_RESILVER_END
- *     ESC_ZFS_POOL_DESTROY
- *
- *             ZFS_EV_POOL_NAME        DATA_TYPE_STRING
- *             ZFS_EV_POOL_GUID        DATA_TYPE_UINT64
- *
- *     ESC_ZFS_VDEV_REMOVE
- *     ESC_ZFS_VDEV_CLEAR
- *     ESC_ZFS_VDEV_CHECK
- *
- *             ZFS_EV_POOL_NAME        DATA_TYPE_STRING
- *             ZFS_EV_POOL_GUID        DATA_TYPE_UINT64
- *             ZFS_EV_VDEV_PATH        DATA_TYPE_STRING        (optional)
- *             ZFS_EV_VDEV_GUID        DATA_TYPE_UINT64
- */
-#define        ZFS_EV_POOL_NAME        "pool_name"
-#define        ZFS_EV_POOL_GUID        "pool_guid"
-#define        ZFS_EV_VDEV_PATH        "vdev_path"
-#define        ZFS_EV_VDEV_GUID        "vdev_guid"
-
-/*
- * Note: This is encoded on-disk, so new events must be added to the
- * end, and unused events can not be removed.  Be sure to edit
- * libzfs_pool.c: hist_event_table[].
- */
-typedef enum history_internal_events {
-       LOG_NO_EVENT = 0,
-       LOG_POOL_CREATE,
-       LOG_POOL_VDEV_ADD,
-       LOG_POOL_REMOVE,
-       LOG_POOL_DESTROY,
-       LOG_POOL_EXPORT,
-       LOG_POOL_IMPORT,
-       LOG_POOL_VDEV_ATTACH,
-       LOG_POOL_VDEV_REPLACE,
-       LOG_POOL_VDEV_DETACH,
-       LOG_POOL_VDEV_ONLINE,
-       LOG_POOL_VDEV_OFFLINE,
-       LOG_POOL_UPGRADE,
-       LOG_POOL_CLEAR,
-       LOG_POOL_SCAN,
-       LOG_POOL_PROPSET,
-       LOG_DS_CREATE,
-       LOG_DS_CLONE,
-       LOG_DS_DESTROY,
-       LOG_DS_DESTROY_BEGIN,
-       LOG_DS_INHERIT,
-       LOG_DS_PROPSET,
-       LOG_DS_QUOTA,
-       LOG_DS_PERM_UPDATE,
-       LOG_DS_PERM_REMOVE,
-       LOG_DS_PERM_WHO_REMOVE,
-       LOG_DS_PROMOTE,
-       LOG_DS_RECEIVE,
-       LOG_DS_RENAME,
-       LOG_DS_RESERVATION,
-       LOG_DS_REPLAY_INC_SYNC,
-       LOG_DS_REPLAY_FULL_SYNC,
-       LOG_DS_ROLLBACK,
-       LOG_DS_SNAPSHOT,
-       LOG_DS_UPGRADE,
-       LOG_DS_REFQUOTA,
-       LOG_DS_REFRESERV,
-       LOG_POOL_SCAN_DONE,
-       LOG_DS_USER_HOLD,
-       LOG_DS_USER_RELEASE,
-       LOG_POOL_SPLIT,
-       LOG_END
-} history_internal_events_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_FS_ZFS_H */
diff --git a/module/zcommon/include/zfs_comutil.h b/module/zcommon/include/zfs_comutil.h
deleted file mode 100644 (file)
index 61327f9..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _ZFS_COMUTIL_H
-#define        _ZFS_COMUTIL_H
-
-#include <sys/fs/zfs.h>
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern boolean_t zfs_allocatable_devs(nvlist_t *);
-extern void zpool_get_rewind_policy(nvlist_t *, zpool_rewind_policy_t *);
-
-extern int zfs_zpl_version_map(int spa_version);
-extern int zfs_spa_version_map(int zpl_version);
-extern const char *zfs_history_event_names[LOG_END];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZFS_COMUTIL_H */
diff --git a/module/zcommon/include/zfs_deleg.h b/module/zcommon/include/zfs_deleg.h
deleted file mode 100644 (file)
index b4cb8e2..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _ZFS_DELEG_H
-#define        _ZFS_DELEG_H
-
-#include <sys/fs/zfs.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define        ZFS_DELEG_SET_NAME_CHR          '@'             /* set name lead char */
-#define        ZFS_DELEG_FIELD_SEP_CHR         '$'             /* field separator */
-
-/*
- * Max name length for a delegation attribute
- */
-#define        ZFS_MAX_DELEG_NAME      128
-
-#define        ZFS_DELEG_LOCAL         'l'
-#define        ZFS_DELEG_DESCENDENT    'd'
-#define        ZFS_DELEG_NA            '-'
-
-typedef enum {
-       ZFS_DELEG_NOTE_CREATE,
-       ZFS_DELEG_NOTE_DESTROY,
-       ZFS_DELEG_NOTE_SNAPSHOT,
-       ZFS_DELEG_NOTE_ROLLBACK,
-       ZFS_DELEG_NOTE_CLONE,
-       ZFS_DELEG_NOTE_PROMOTE,
-       ZFS_DELEG_NOTE_RENAME,
-       ZFS_DELEG_NOTE_RECEIVE,
-       ZFS_DELEG_NOTE_ALLOW,
-       ZFS_DELEG_NOTE_USERPROP,
-       ZFS_DELEG_NOTE_MOUNT,
-       ZFS_DELEG_NOTE_SHARE,
-       ZFS_DELEG_NOTE_USERQUOTA,
-       ZFS_DELEG_NOTE_GROUPQUOTA,
-       ZFS_DELEG_NOTE_USERUSED,
-       ZFS_DELEG_NOTE_GROUPUSED,
-       ZFS_DELEG_NOTE_HOLD,
-       ZFS_DELEG_NOTE_RELEASE,
-       ZFS_DELEG_NOTE_DIFF,
-       ZFS_DELEG_NOTE_NONE
-} zfs_deleg_note_t;
-
-typedef struct zfs_deleg_perm_tab {
-       char *z_perm;
-       zfs_deleg_note_t z_note;
-} zfs_deleg_perm_tab_t;
-
-extern zfs_deleg_perm_tab_t zfs_deleg_perm_tab[];
-
-int zfs_deleg_verify_nvlist(nvlist_t *nvlist);
-void zfs_deleg_whokey(char *attr, zfs_deleg_who_type_t type,
-    char checkflag, void *data);
-const char *zfs_deleg_canonicalize_perm(const char *perm);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZFS_DELEG_H */
diff --git a/module/zcommon/include/zfs_fletcher.h b/module/zcommon/include/zfs_fletcher.h
deleted file mode 100644 (file)
index b49df0c..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _ZFS_FLETCHER_H
-#define        _ZFS_FLETCHER_H
-
-#include <sys/types.h>
-#include <sys/spa.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * fletcher checksum functions
- */
-
-void fletcher_2_native(const void *, uint64_t, zio_cksum_t *);
-void fletcher_2_byteswap(const void *, uint64_t, zio_cksum_t *);
-void fletcher_4_native(const void *, uint64_t, zio_cksum_t *);
-void fletcher_4_byteswap(const void *, uint64_t, zio_cksum_t *);
-void fletcher_4_incremental_native(const void *, uint64_t,
-    zio_cksum_t *);
-void fletcher_4_incremental_byteswap(const void *, uint64_t,
-    zio_cksum_t *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZFS_FLETCHER_H */
diff --git a/module/zcommon/include/zfs_namecheck.h b/module/zcommon/include/zfs_namecheck.h
deleted file mode 100644 (file)
index 7711da0..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _ZFS_NAMECHECK_H
-#define        _ZFS_NAMECHECK_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-       NAME_ERR_LEADING_SLASH,         /* name begins with leading slash */
-       NAME_ERR_EMPTY_COMPONENT,       /* name contains an empty component */
-       NAME_ERR_TRAILING_SLASH,        /* name ends with a slash */
-       NAME_ERR_INVALCHAR,             /* invalid character found */
-       NAME_ERR_MULTIPLE_AT,           /* multiple '@' characters found */
-       NAME_ERR_NOLETTER,              /* pool doesn't begin with a letter */
-       NAME_ERR_RESERVED,              /* entire name is reserved */
-       NAME_ERR_DISKLIKE,              /* reserved disk name (c[0-9].*) */
-       NAME_ERR_TOOLONG,               /* name is too long */
-       NAME_ERR_NO_AT,                 /* permission set is missing '@' */
-} namecheck_err_t;
-
-#define        ZFS_PERMSET_MAXLEN      64
-
-int pool_namecheck(const char *, namecheck_err_t *, char *);
-int dataset_namecheck(const char *, namecheck_err_t *, char *);
-int mountpoint_namecheck(const char *, namecheck_err_t *);
-int snapshot_namecheck(const char *, namecheck_err_t *, char *);
-int permset_namecheck(const char *, namecheck_err_t *, char *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZFS_NAMECHECK_H */
diff --git a/module/zcommon/include/zfs_prop.h b/module/zcommon/include/zfs_prop.h
deleted file mode 100644 (file)
index a632623..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _ZFS_PROP_H
-#define        _ZFS_PROP_H
-
-#include <sys/fs/zfs.h>
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * For index types (e.g. compression and checksum), we want the numeric value
- * in the kernel, but the string value in userland.
- */
-typedef enum {
-       PROP_TYPE_NUMBER,       /* numeric value */
-       PROP_TYPE_STRING,       /* string value */
-       PROP_TYPE_INDEX         /* numeric value indexed by string */
-} zprop_type_t;
-
-typedef enum {
-       PROP_DEFAULT,
-       PROP_READONLY,
-       PROP_INHERIT,
-       /*
-        * ONETIME properties are a sort of conglomeration of READONLY
-        * and INHERIT.  They can be set only during object creation,
-        * after that they are READONLY.  If not explicitly set during
-        * creation, they can be inherited.
-        */
-       PROP_ONETIME
-} zprop_attr_t;
-
-typedef struct zfs_index {
-       const char *pi_name;
-       uint64_t pi_value;
-} zprop_index_t;
-
-typedef struct {
-       const char *pd_name;            /* human-readable property name */
-       int pd_propnum;                 /* property number */
-       zprop_type_t pd_proptype;       /* string, boolean, index, number */
-       const char *pd_strdefault;      /* default for strings */
-       uint64_t pd_numdefault;         /* for boolean / index / number */
-       zprop_attr_t pd_attr;           /* default, readonly, inherit */
-       int pd_types;                   /* bitfield of valid dataset types */
-                                       /* fs | vol | snap; or pool */
-       const char *pd_values;          /* string telling acceptable values */
-       const char *pd_colname;         /* column header for "zfs list" */
-       boolean_t pd_rightalign;        /* column alignment for "zfs list" */
-       boolean_t pd_visible;           /* do we list this property with the */
-                                       /* "zfs get" help message */
-       const zprop_index_t *pd_table;  /* for index properties, a table */
-                                       /* defining the possible values */
-       size_t pd_table_size;           /* number of entries in pd_table[] */
-} zprop_desc_t;
-
-/*
- * zfs dataset property functions
- */
-void zfs_prop_init(void);
-zprop_type_t zfs_prop_get_type(zfs_prop_t);
-boolean_t zfs_prop_delegatable(zfs_prop_t prop);
-zprop_desc_t *zfs_prop_get_table(void);
-
-/*
- * zpool property functions
- */
-void zpool_prop_init(void);
-zprop_type_t zpool_prop_get_type(zpool_prop_t);
-zprop_desc_t *zpool_prop_get_table(void);
-
-/*
- * Common routines to initialize property tables
- */
-void zprop_register_impl(int, const char *, zprop_type_t, uint64_t,
-    const char *, zprop_attr_t, int, const char *, const char *,
-    boolean_t, boolean_t, const zprop_index_t *);
-void zprop_register_string(int, const char *, const char *,
-    zprop_attr_t attr, int, const char *, const char *);
-void zprop_register_number(int, const char *, uint64_t, zprop_attr_t, int,
-    const char *, const char *);
-void zprop_register_index(int, const char *, uint64_t, zprop_attr_t, int,
-    const char *, const char *, const zprop_index_t *);
-void zprop_register_hidden(int, const char *, zprop_type_t, zprop_attr_t,
-    int, const char *);
-
-/*
- * Common routines for zfs and zpool property management
- */
-int zprop_iter_common(zprop_func, void *, boolean_t, boolean_t, zfs_type_t);
-int zprop_name_to_prop(const char *, zfs_type_t);
-int zprop_string_to_index(int, const char *, uint64_t *, zfs_type_t);
-int zprop_index_to_string(int, uint64_t, const char **, zfs_type_t);
-uint64_t zprop_random_value(int, uint64_t, zfs_type_t);
-const char *zprop_values(int, zfs_type_t);
-size_t zprop_width(int, boolean_t *, zfs_type_t);
-boolean_t zprop_valid_for_type(int, zfs_type_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZFS_PROP_H */
index ef2e56208cc80275d39b504e452c75d9f1d95f5e..71dbb39fc3a35346008a56c322b588e8975ae050 100644 (file)
@@ -1,90 +1,88 @@
 MODULE := zfs
 
-EXTRA_CFLAGS  = -I@MODDIR@/zfs/include
-EXTRA_CFLAGS += -I@MODDIR@/zcommon/include
-EXTRA_CFLAGS += -I@MODDIR@/avl/include
-EXTRA_CFLAGS += -I@MODDIR@/nvpair/include
-EXTRA_CFLAGS += -I@MODDIR@/unicode/include
 EXTRA_CFLAGS += @KERNELCPPFLAGS@
+EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h
+EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h
+EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@
 
-obj-m := ${MODULE}.o
+obj-m := $(MODULE).o
 
-${MODULE}-objs += arc.o
-${MODULE}-objs += bplist.o
-${MODULE}-objs += bpobj.o
-${MODULE}-objs += dbuf.o
-${MODULE}-objs += ddt.o
-${MODULE}-objs += ddt_zap.o
-${MODULE}-objs += dmu.o
-${MODULE}-objs += dmu_diff.o
-${MODULE}-objs += dmu_object.o
-${MODULE}-objs += dmu_objset.o
-${MODULE}-objs += dmu_send.o
-${MODULE}-objs += dmu_traverse.o
-${MODULE}-objs += dmu_tx.o
-${MODULE}-objs += dmu_zfetch.o
-${MODULE}-objs += dnode.o
-${MODULE}-objs += dnode_sync.o
-${MODULE}-objs += dsl_dataset.o
-${MODULE}-objs += dsl_deadlist.o
-${MODULE}-objs += dsl_deleg.o
-${MODULE}-objs += dsl_dir.o
-${MODULE}-objs += dsl_pool.o
-${MODULE}-objs += dsl_prop.o
-${MODULE}-objs += dsl_scan.o
-${MODULE}-objs += dsl_synctask.o
-${MODULE}-objs += fm.o
-${MODULE}-objs += gzip.o
-${MODULE}-objs += lzjb.o
-${MODULE}-objs += metaslab.o
-${MODULE}-objs += refcount.o
-${MODULE}-objs += rrwlock.o
-${MODULE}-objs += sa.o
-${MODULE}-objs += sha256.o
-${MODULE}-objs += spa.o
-${MODULE}-objs += spa_boot.o
-${MODULE}-objs += spa_config.o
-${MODULE}-objs += spa_errlog.o
-${MODULE}-objs += spa_history.o
-${MODULE}-objs += spa_misc.o
-${MODULE}-objs += space_map.o
-${MODULE}-objs += txg.o
-${MODULE}-objs += uberblock.o
-${MODULE}-objs += unique.o
-${MODULE}-objs += vdev.o
-${MODULE}-objs += vdev_cache.o
-${MODULE}-objs += vdev_disk.o
-${MODULE}-objs += vdev_file.o
-${MODULE}-objs += vdev_label.o
-${MODULE}-objs += vdev_mirror.o
-${MODULE}-objs += vdev_missing.o
-${MODULE}-objs += vdev_queue.o
-${MODULE}-objs += vdev_raidz.o
-${MODULE}-objs += vdev_root.o
-${MODULE}-objs += zap.o
-${MODULE}-objs += zap_leaf.o
-${MODULE}-objs += zap_micro.o
-${MODULE}-objs += zfs_acl.o
-${MODULE}-objs += zfs_byteswap.o
-${MODULE}-objs += zfs_ctldir.o
-${MODULE}-objs += zfs_debug.o
-${MODULE}-objs += zfs_dir.o
-${MODULE}-objs += zfs_fm.o
-${MODULE}-objs += zfs_fuid.o
-${MODULE}-objs += zfs_ioctl.o
-${MODULE}-objs += zfs_log.o
-${MODULE}-objs += zfs_onexit.o
-${MODULE}-objs += zfs_replay.o
-${MODULE}-objs += zfs_rlock.o
-${MODULE}-objs += zfs_sa.o
-${MODULE}-objs += zfs_vfsops.o
-${MODULE}-objs += zfs_vnops.o
-${MODULE}-objs += zfs_znode.o
-${MODULE}-objs += zil.o
-${MODULE}-objs += zio.o
-${MODULE}-objs += zio_checksum.o
-${MODULE}-objs += zio_compress.o
-${MODULE}-objs += zio_inject.o
-${MODULE}-objs += zle.o
-${MODULE}-objs += zrlock.o
-${MODULE}-objs += zvol.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/arc.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/bplist.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/bpobj.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dbuf.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/ddt.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/ddt_zap.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dmu.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_diff.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_object.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_objset.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_send.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_traverse.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_tx.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_zfetch.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dnode.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dnode_sync.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_dataset.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_deadlist.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_deleg.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_dir.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_pool.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_prop.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_scan.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_synctask.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/fm.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/gzip.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/lzjb.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/metaslab.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/refcount.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/rrwlock.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/sa.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/sha256.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/spa.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/spa_boot.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/spa_config.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/spa_errlog.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/spa_history.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/spa_misc.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/space_map.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/txg.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/uberblock.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/unique.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/vdev.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_cache.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_disk.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_file.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_label.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_mirror.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_missing.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_queue.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_raidz.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_root.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zap.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zap_leaf.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zap_micro.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_acl.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_byteswap.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_ctldir.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_debug.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_dir.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_fm.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_fuid.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_ioctl.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_log.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_onexit.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_replay.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_rlock.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_sa.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_vfsops.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_vnops.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_znode.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zil.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zio.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zio_checksum.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zio_compress.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zio_inject.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zle.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zrlock.o
+$(MODULE)-objs += @top_srcdir@/module/zfs/zvol.o
diff --git a/module/zfs/include/sys/arc.h b/module/zfs/include/sys/arc.h
deleted file mode 100644 (file)
index 8f189c6..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_ARC_H
-#define        _SYS_ARC_H
-
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/zio.h>
-#include <sys/dmu.h>
-#include <sys/spa.h>
-
-typedef struct arc_buf_hdr arc_buf_hdr_t;
-typedef struct arc_buf arc_buf_t;
-typedef void arc_done_func_t(zio_t *zio, arc_buf_t *buf, void *private);
-typedef int arc_evict_func_t(void *private);
-
-/* generic arc_done_func_t's which you can use */
-arc_done_func_t arc_bcopy_func;
-arc_done_func_t arc_getbuf_func;
-
-struct arc_buf {
-       arc_buf_hdr_t           *b_hdr;
-       arc_buf_t               *b_next;
-       kmutex_t                b_evict_lock;
-       krwlock_t               b_data_lock;
-       void                    *b_data;
-       arc_evict_func_t        *b_efunc;
-       void                    *b_private;
-};
-
-typedef enum arc_buf_contents {
-       ARC_BUFC_DATA,                          /* buffer contains data */
-       ARC_BUFC_METADATA,                      /* buffer contains metadata */
-       ARC_BUFC_NUMTYPES
-} arc_buf_contents_t;
-/*
- * These are the flags we pass into calls to the arc
- */
-#define        ARC_WAIT        (1 << 1)        /* perform I/O synchronously */
-#define        ARC_NOWAIT      (1 << 2)        /* perform I/O asynchronously */
-#define        ARC_PREFETCH    (1 << 3)        /* I/O is a prefetch */
-#define        ARC_CACHED      (1 << 4)        /* I/O was already in cache */
-#define        ARC_L2CACHE     (1 << 5)        /* cache in L2ARC */
-
-/*
- * The following breakdows of arc_size exist for kstat only.
- */
-typedef enum arc_space_type {
-       ARC_SPACE_DATA,
-       ARC_SPACE_HDRS,
-       ARC_SPACE_L2HDRS,
-       ARC_SPACE_OTHER,
-       ARC_SPACE_NUMTYPES
-} arc_space_type_t;
-
-void arc_space_consume(uint64_t space, arc_space_type_t type);
-void arc_space_return(uint64_t space, arc_space_type_t type);
-void *arc_data_buf_alloc(uint64_t space);
-void arc_data_buf_free(void *buf, uint64_t space);
-arc_buf_t *arc_buf_alloc(spa_t *spa, int size, void *tag,
-    arc_buf_contents_t type);
-arc_buf_t *arc_loan_buf(spa_t *spa, int size);
-void arc_return_buf(arc_buf_t *buf, void *tag);
-void arc_loan_inuse_buf(arc_buf_t *buf, void *tag);
-void arc_buf_add_ref(arc_buf_t *buf, void *tag);
-int arc_buf_remove_ref(arc_buf_t *buf, void *tag);
-int arc_buf_size(arc_buf_t *buf);
-void arc_release(arc_buf_t *buf, void *tag);
-int arc_release_bp(arc_buf_t *buf, void *tag, blkptr_t *bp, spa_t *spa,
-    zbookmark_t *zb);
-int arc_released(arc_buf_t *buf);
-int arc_has_callback(arc_buf_t *buf);
-void arc_buf_freeze(arc_buf_t *buf);
-void arc_buf_thaw(arc_buf_t *buf);
-#ifdef ZFS_DEBUG
-int arc_referenced(arc_buf_t *buf);
-#endif
-
-int arc_read(zio_t *pio, spa_t *spa, const blkptr_t *bp, arc_buf_t *pbuf,
-    arc_done_func_t *done, void *private, int priority, int zio_flags,
-    uint32_t *arc_flags, const zbookmark_t *zb);
-int arc_read_nolock(zio_t *pio, spa_t *spa, const blkptr_t *bp,
-    arc_done_func_t *done, void *private, int priority, int flags,
-    uint32_t *arc_flags, const zbookmark_t *zb);
-zio_t *arc_write(zio_t *pio, spa_t *spa, uint64_t txg,
-    blkptr_t *bp, arc_buf_t *buf, boolean_t l2arc, const zio_prop_t *zp,
-    arc_done_func_t *ready, arc_done_func_t *done, void *private,
-    int priority, int zio_flags, const zbookmark_t *zb);
-
-void arc_set_callback(arc_buf_t *buf, arc_evict_func_t *func, void *private);
-int arc_buf_evict(arc_buf_t *buf);
-
-void arc_flush(spa_t *spa);
-void arc_tempreserve_clear(uint64_t reserve);
-int arc_tempreserve_space(uint64_t reserve, uint64_t txg);
-
-void arc_init(void);
-void arc_fini(void);
-
-/*
- * Level 2 ARC
- */
-
-void l2arc_add_vdev(spa_t *spa, vdev_t *vd);
-void l2arc_remove_vdev(vdev_t *vd);
-boolean_t l2arc_vdev_present(vdev_t *vd);
-void l2arc_init(void);
-void l2arc_fini(void);
-void l2arc_start(void);
-void l2arc_stop(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ARC_H */
diff --git a/module/zfs/include/sys/blkdev.h b/module/zfs/include/sys/blkdev.h
deleted file mode 100644 (file)
index b84f66a..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
- * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
- * Written by Brian Behlendorf <behlendorf1@llnl.gov>.
- * LLNL-CODE-403049.
- */
-
-#ifndef        _SYS_BLKDEV_H
-#define        _SYS_BLKDEV_H
-
-#ifdef _KERNEL
-
-#include <linux/blkdev.h>
-#include <linux/elevator.h>
-
-#ifndef HAVE_FMODE_T
-typedef unsigned __bitwise__ fmode_t;
-#endif /* HAVE_FMODE_T */
-
-#ifndef HAVE_BLK_FETCH_REQUEST
-static inline struct request *
-blk_fetch_request(struct request_queue *q)
-{
-       struct request *req;
-
-       req = elv_next_request(q);
-       if (req)
-               blkdev_dequeue_request(req);
-
-       return req;
-}
-#endif /* HAVE_BLK_FETCH_REQUEST */
-
-#ifndef HAVE_BLK_REQUEUE_REQUEST
-static inline void
-blk_requeue_request(request_queue_t *q, struct request *req)
-{
-       elv_requeue_request(q, req);
-}
-#endif /* HAVE_BLK_REQUEUE_REQUEST */
-
-#ifndef HAVE_BLK_END_REQUEST
-static inline bool
-__blk_end_request(struct request *req, int error, unsigned int nr_bytes)
-{
-       LIST_HEAD(list);
-
-       /*
-        * Request has already been dequeued but 2.6.18 version of
-        * end_request() unconditionally dequeues the request so we
-        * add it to a local list to prevent hitting the BUG_ON.
-        */
-       list_add(&req->queuelist, &list);
-
-       /*
-        * The old API required the driver to end each segment and not
-        * the entire request.  In our case we always need to end the
-        * entire request partial requests are not supported.
-        */
-       req->hard_cur_sectors = nr_bytes >> 9;
-       end_request(req, ((error == 0) ? 1 : error));
-
-       return 0;
-}
-
-static inline bool
-blk_end_request(struct request *req, int error, unsigned int nr_bytes)
-{
-       struct request_queue *q = req->q;
-       bool rc;
-
-       spin_lock_irq(q->queue_lock);
-       rc = __blk_end_request(req, error, nr_bytes);
-       spin_unlock_irq(q->queue_lock);
-
-       return rc;
-}
-#else
-# ifdef HAVE_BLK_END_REQUEST_GPL_ONLY
-/*
- * Define required to avoid conflicting 2.6.29 non-static prototype for a
- * GPL-only version of the helper.  As of 2.6.31 the helper is available
- * to non-GPL modules and is not explicitly exported GPL-only.
- */
-# define __blk_end_request __blk_end_request_x
-# define blk_end_request blk_end_request_x
-
-static inline bool
-__blk_end_request_x(struct request *req, int error, unsigned int nr_bytes)
-{
-       /*
-        * The old API required the driver to end each segment and not
-        * the entire request.  In our case we always need to end the
-        * entire request partial requests are not supported.
-        */
-       req->hard_cur_sectors = nr_bytes >> 9;
-       end_request(req, ((error == 0) ? 1 : error));
-
-       return 0;
-}
-static inline bool
-blk_end_request_x(struct request *req, int error, unsigned int nr_bytes)
-{
-       struct request_queue *q = req->q;
-       bool rc;
-
-       spin_lock_irq(q->queue_lock);
-       rc = __blk_end_request_x(req, error, nr_bytes);
-       spin_unlock_irq(q->queue_lock);
-
-       return rc;
-}
-# endif /* HAVE_BLK_END_REQUEST_GPL_ONLY */
-#endif /* HAVE_BLK_END_REQUEST */
-
-#ifndef HAVE_BLK_RQ_POS
-static inline sector_t
-blk_rq_pos(struct request *req)
-{
-       return req->sector;
-}
-#endif /* HAVE_BLK_RQ_POS */
-
-#ifndef HAVE_BLK_RQ_SECTORS
-static inline unsigned int
-blk_rq_sectors(struct request *req)
-{
-       return req->nr_sectors;
-}
-#endif /* HAVE_BLK_RQ_SECTORS */
-
-#if !defined(HAVE_BLK_RQ_BYTES) || defined(HAVE_BLK_RQ_BYTES_GPL_ONLY)
-/*
- * Define required to avoid conflicting 2.6.29 non-static prototype for a
- * GPL-only version of the helper.  As of 2.6.31 the helper is available
- * to non-GPL modules in the form of a static inline in the header.
- */
-#define blk_rq_bytes __blk_rq_bytes
-static inline unsigned int
-__blk_rq_bytes(struct request *req)
-{
-       return blk_rq_sectors(req) << 9;
-}
-#endif /* !HAVE_BLK_RQ_BYTES || HAVE_BLK_RQ_BYTES_GPL_ONLY */
-
-#ifndef HAVE_GET_DISK_RO
-static inline int
-get_disk_ro(struct gendisk *disk)
-{
-       int policy = 0;
-
-       if (disk->part[0])
-               policy = disk->part[0]->policy;
-
-       return policy;
-}
-#endif /* HAVE_GET_DISK_RO */
-
-#ifndef HAVE_RQ_IS_SYNC
-static inline bool
-rq_is_sync(struct request *req)
-{
-       return (req->flags & REQ_RW_SYNC);
-}
-#endif /* HAVE_RQ_IS_SYNC */
-
-#ifndef HAVE_RQ_FOR_EACH_SEGMENT
-struct req_iterator {
-       int i;
-       struct bio *bio;
-};
-
-# define for_each_bio(_bio)              \
-       for (; _bio; _bio = _bio->bi_next)
-
-# define __rq_for_each_bio(_bio, rq)    \
-       if ((rq->bio))                  \
-               for (_bio = (rq)->bio; _bio; _bio = _bio->bi_next)
-
-# define rq_for_each_segment(bvl, _rq, _iter)                   \
-       __rq_for_each_bio(_iter.bio, _rq)                       \
-               bio_for_each_segment(bvl, _iter.bio, _iter.i)
-#endif /* HAVE_RQ_FOR_EACH_SEGMENT */
-
-#ifndef DISK_NAME_LEN
-#define DISK_NAME_LEN  32
-#endif /* DISK_NAME_LEN */
-
-#endif /* KERNEL */
-
-#endif /* _SYS_BLKDEV_H */
diff --git a/module/zfs/include/sys/bplist.h b/module/zfs/include/sys/bplist.h
deleted file mode 100644 (file)
index 471be90..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_BPLIST_H
-#define        _SYS_BPLIST_H
-
-#include <sys/zfs_context.h>
-#include <sys/spa.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct bplist_entry {
-       blkptr_t        bpe_blk;
-       list_node_t     bpe_node;
-} bplist_entry_t;
-
-typedef struct bplist {
-       kmutex_t        bpl_lock;
-       list_t          bpl_list;
-} bplist_t;
-
-typedef int bplist_itor_t(void *arg, const blkptr_t *bp, dmu_tx_t *tx);
-
-void bplist_create(bplist_t *bpl);
-void bplist_destroy(bplist_t *bpl);
-void bplist_append(bplist_t *bpl, const blkptr_t *bp);
-void bplist_iterate(bplist_t *bpl, bplist_itor_t *func,
-    void *arg, dmu_tx_t *tx);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_BPLIST_H */
diff --git a/module/zfs/include/sys/bpobj.h b/module/zfs/include/sys/bpobj.h
deleted file mode 100644 (file)
index 3771a95..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_BPOBJ_H
-#define        _SYS_BPOBJ_H
-
-#include <sys/dmu.h>
-#include <sys/spa.h>
-#include <sys/txg.h>
-#include <sys/zio.h>
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct bpobj_phys {
-       /*
-        * This is the bonus buffer for the dead lists.  The object's
-        * contents is an array of bpo_entries blkptr_t's, representing
-        * a total of bpo_bytes physical space.
-        */
-       uint64_t        bpo_num_blkptrs;
-       uint64_t        bpo_bytes;
-       uint64_t        bpo_comp;
-       uint64_t        bpo_uncomp;
-       uint64_t        bpo_subobjs;
-       uint64_t        bpo_num_subobjs;
-} bpobj_phys_t;
-
-#define        BPOBJ_SIZE_V0   (2 * sizeof (uint64_t))
-#define        BPOBJ_SIZE_V1   (4 * sizeof (uint64_t))
-
-typedef struct bpobj {
-       kmutex_t        bpo_lock;
-       objset_t        *bpo_os;
-       uint64_t        bpo_object;
-       int             bpo_epb;
-       uint8_t         bpo_havecomp;
-       uint8_t         bpo_havesubobj;
-       bpobj_phys_t    *bpo_phys;
-       dmu_buf_t       *bpo_dbuf;
-       dmu_buf_t       *bpo_cached_dbuf;
-} bpobj_t;
-
-typedef int bpobj_itor_t(void *arg, const blkptr_t *bp, dmu_tx_t *tx);
-
-uint64_t bpobj_alloc(objset_t *mos, int blocksize, dmu_tx_t *tx);
-void bpobj_free(objset_t *os, uint64_t obj, dmu_tx_t *tx);
-
-int bpobj_open(bpobj_t *bpo, objset_t *mos, uint64_t object);
-void bpobj_close(bpobj_t *bpo);
-
-int bpobj_iterate(bpobj_t *bpo, bpobj_itor_t func, void *arg, dmu_tx_t *tx);
-int bpobj_iterate_nofree(bpobj_t *bpo, bpobj_itor_t func, void *, dmu_tx_t *);
-int bpobj_iterate_dbg(bpobj_t *bpo, uint64_t *itorp, blkptr_t *bp);
-
-void bpobj_enqueue_subobj(bpobj_t *bpo, uint64_t subobj, dmu_tx_t *tx);
-void bpobj_enqueue(bpobj_t *bpo, const blkptr_t *bp, dmu_tx_t *tx);
-
-int bpobj_space(bpobj_t *bpo,
-    uint64_t *usedp, uint64_t *compp, uint64_t *uncompp);
-int bpobj_space_range(bpobj_t *bpo, uint64_t mintxg, uint64_t maxtxg,
-    uint64_t *usedp, uint64_t *compp, uint64_t *uncompp);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_BPOBJ_H */
diff --git a/module/zfs/include/sys/dbuf.h b/module/zfs/include/sys/dbuf.h
deleted file mode 100644 (file)
index cf1bbc0..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DBUF_H
-#define        _SYS_DBUF_H
-
-#include <sys/dmu.h>
-#include <sys/spa.h>
-#include <sys/txg.h>
-#include <sys/zio.h>
-#include <sys/arc.h>
-#include <sys/zfs_context.h>
-#include <sys/refcount.h>
-#include <sys/zrlock.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define        IN_DMU_SYNC 2
-
-/*
- * define flags for dbuf_read
- */
-
-#define        DB_RF_MUST_SUCCEED      (1 << 0)
-#define        DB_RF_CANFAIL           (1 << 1)
-#define        DB_RF_HAVESTRUCT        (1 << 2)
-#define        DB_RF_NOPREFETCH        (1 << 3)
-#define        DB_RF_NEVERWAIT         (1 << 4)
-#define        DB_RF_CACHED            (1 << 5)
-
-/*
- * The simplified state transition diagram for dbufs looks like:
- *
- *             +----> READ ----+
- *             |               |
- *             |               V
- *  (alloc)-->UNCACHED      CACHED-->EVICTING-->(free)
- *             |               ^        ^
- *             |               |        |
- *             +----> FILL ----+        |
- *             |                        |
- *             |                        |
- *             +--------> NOFILL -------+
- */
-typedef enum dbuf_states {
-       DB_UNCACHED,
-       DB_FILL,
-       DB_NOFILL,
-       DB_READ,
-       DB_CACHED,
-       DB_EVICTING
-} dbuf_states_t;
-
-struct dnode;
-struct dmu_tx;
-
-/*
- * level = 0 means the user data
- * level = 1 means the single indirect block
- * etc.
- */
-
-struct dmu_buf_impl;
-
-typedef enum override_states {
-       DR_NOT_OVERRIDDEN,
-       DR_IN_DMU_SYNC,
-       DR_OVERRIDDEN
-} override_states_t;
-
-typedef struct dbuf_dirty_record {
-       /* link on our parents dirty list */
-       list_node_t dr_dirty_node;
-
-       /* transaction group this data will sync in */
-       uint64_t dr_txg;
-
-       /* zio of outstanding write IO */
-       zio_t *dr_zio;
-
-       /* pointer back to our dbuf */
-       struct dmu_buf_impl *dr_dbuf;
-
-       /* pointer to next dirty record */
-       struct dbuf_dirty_record *dr_next;
-
-       /* pointer to parent dirty record */
-       struct dbuf_dirty_record *dr_parent;
-
-       union dirty_types {
-               struct dirty_indirect {
-
-                       /* protect access to list */
-                       kmutex_t dr_mtx;
-
-                       /* Our list of dirty children */
-                       list_t dr_children;
-               } di;
-               struct dirty_leaf {
-
-                       /*
-                        * dr_data is set when we dirty the buffer
-                        * so that we can retain the pointer even if it
-                        * gets COW'd in a subsequent transaction group.
-                        */
-                       arc_buf_t *dr_data;
-                       blkptr_t dr_overridden_by;
-                       override_states_t dr_override_state;
-                       uint8_t dr_copies;
-               } dl;
-       } dt;
-} dbuf_dirty_record_t;
-
-typedef struct dmu_buf_impl {
-       /*
-        * The following members are immutable, with the exception of
-        * db.db_data, which is protected by db_mtx.
-        */
-
-       /* the publicly visible structure */
-       dmu_buf_t db;
-
-       /* the objset we belong to */
-       struct objset *db_objset;
-
-       /*
-        * handle to safely access the dnode we belong to (NULL when evicted)
-        */
-       struct dnode_handle *db_dnode_handle;
-
-       /*
-        * our parent buffer; if the dnode points to us directly,
-        * db_parent == db_dnode_handle->dnh_dnode->dn_dbuf
-        * only accessed by sync thread ???
-        * (NULL when evicted)
-        * May change from NULL to non-NULL under the protection of db_mtx
-        * (see dbuf_check_blkptr())
-        */
-       struct dmu_buf_impl *db_parent;
-
-       /*
-        * link for hash table of all dmu_buf_impl_t's
-        */
-       struct dmu_buf_impl *db_hash_next;
-
-       /* our block number */
-       uint64_t db_blkid;
-
-       /*
-        * Pointer to the blkptr_t which points to us. May be NULL if we
-        * don't have one yet. (NULL when evicted)
-        */
-       blkptr_t *db_blkptr;
-
-       /*
-        * Our indirection level.  Data buffers have db_level==0.
-        * Indirect buffers which point to data buffers have
-        * db_level==1. etc.  Buffers which contain dnodes have
-        * db_level==0, since the dnodes are stored in a file.
-        */
-       uint8_t db_level;
-
-       /* db_mtx protects the members below */
-       kmutex_t db_mtx;
-
-       /*
-        * Current state of the buffer
-        */
-       dbuf_states_t db_state;
-
-       /*
-        * Refcount accessed by dmu_buf_{hold,rele}.
-        * If nonzero, the buffer can't be destroyed.
-        * Protected by db_mtx.
-        */
-       refcount_t db_holds;
-
-       /* buffer holding our data */
-       arc_buf_t *db_buf;
-
-       kcondvar_t db_changed;
-       dbuf_dirty_record_t *db_data_pending;
-
-       /* pointer to most recent dirty record for this buffer */
-       dbuf_dirty_record_t *db_last_dirty;
-
-       /*
-        * Our link on the owner dnodes's dn_dbufs list.
-        * Protected by its dn_dbufs_mtx.
-        */
-       list_node_t db_link;
-
-       /* Data which is unique to data (leaf) blocks: */
-
-       /* stuff we store for the user (see dmu_buf_set_user) */
-       void *db_user_ptr;
-       void **db_user_data_ptr_ptr;
-       dmu_buf_evict_func_t *db_evict_func;
-
-       uint8_t db_immediate_evict;
-       uint8_t db_freed_in_flight;
-
-       uint8_t db_dirtycnt;
-} dmu_buf_impl_t;
-
-/* Note: the dbuf hash table is exposed only for the mdb module */
-#define        DBUF_MUTEXES 256
-#define        DBUF_HASH_MUTEX(h, idx) (&(h)->hash_mutexes[(idx) & (DBUF_MUTEXES-1)])
-typedef struct dbuf_hash_table {
-       uint64_t hash_table_mask;
-       dmu_buf_impl_t **hash_table;
-       kmutex_t hash_mutexes[DBUF_MUTEXES];
-} dbuf_hash_table_t;
-
-
-uint64_t dbuf_whichblock(struct dnode *di, uint64_t offset);
-
-dmu_buf_impl_t *dbuf_create_tlib(struct dnode *dn, char *data);
-void dbuf_create_bonus(struct dnode *dn);
-int dbuf_spill_set_blksz(dmu_buf_t *db, uint64_t blksz, dmu_tx_t *tx);
-void dbuf_spill_hold(struct dnode *dn, dmu_buf_impl_t **dbp, void *tag);
-
-void dbuf_rm_spill(struct dnode *dn, dmu_tx_t *tx);
-
-dmu_buf_impl_t *dbuf_hold(struct dnode *dn, uint64_t blkid, void *tag);
-dmu_buf_impl_t *dbuf_hold_level(struct dnode *dn, int level, uint64_t blkid,
-    void *tag);
-int dbuf_hold_impl(struct dnode *dn, uint8_t level, uint64_t blkid, int create,
-    void *tag, dmu_buf_impl_t **dbp);
-
-void dbuf_prefetch(struct dnode *dn, uint64_t blkid);
-
-void dbuf_add_ref(dmu_buf_impl_t *db, void *tag);
-uint64_t dbuf_refcount(dmu_buf_impl_t *db);
-
-void dbuf_rele(dmu_buf_impl_t *db, void *tag);
-void dbuf_rele_and_unlock(dmu_buf_impl_t *db, void *tag);
-
-dmu_buf_impl_t *dbuf_find(struct dnode *dn, uint8_t level, uint64_t blkid);
-
-int dbuf_read(dmu_buf_impl_t *db, zio_t *zio, uint32_t flags);
-void dbuf_will_dirty(dmu_buf_impl_t *db, dmu_tx_t *tx);
-void dbuf_fill_done(dmu_buf_impl_t *db, dmu_tx_t *tx);
-void dmu_buf_will_not_fill(dmu_buf_t *db, dmu_tx_t *tx);
-void dmu_buf_will_fill(dmu_buf_t *db, dmu_tx_t *tx);
-void dmu_buf_fill_done(dmu_buf_t *db, dmu_tx_t *tx);
-void dbuf_assign_arcbuf(dmu_buf_impl_t *db, arc_buf_t *buf, dmu_tx_t *tx);
-dbuf_dirty_record_t *dbuf_dirty(dmu_buf_impl_t *db, dmu_tx_t *tx);
-arc_buf_t *dbuf_loan_arcbuf(dmu_buf_impl_t *db);
-
-void dbuf_clear(dmu_buf_impl_t *db);
-void dbuf_evict(dmu_buf_impl_t *db);
-
-void dbuf_setdirty(dmu_buf_impl_t *db, dmu_tx_t *tx);
-void dbuf_unoverride(dbuf_dirty_record_t *dr);
-void dbuf_sync_list(list_t *list, dmu_tx_t *tx);
-void dbuf_release_bp(dmu_buf_impl_t *db);
-
-void dbuf_free_range(struct dnode *dn, uint64_t start, uint64_t end,
-    struct dmu_tx *);
-
-void dbuf_new_size(dmu_buf_impl_t *db, int size, dmu_tx_t *tx);
-
-#define        DB_DNODE(_db)           ((_db)->db_dnode_handle->dnh_dnode)
-#define        DB_DNODE_LOCK(_db)      ((_db)->db_dnode_handle->dnh_zrlock)
-#define        DB_DNODE_ENTER(_db)     (zrl_add(&DB_DNODE_LOCK(_db)))
-#define        DB_DNODE_EXIT(_db)      (zrl_remove(&DB_DNODE_LOCK(_db)))
-#define        DB_DNODE_HELD(_db)      (!zrl_is_zero(&DB_DNODE_LOCK(_db)))
-#define        DB_GET_SPA(_spa_p, _db) {               \
-       dnode_t *__dn;                          \
-       DB_DNODE_ENTER(_db);                    \
-       __dn = DB_DNODE(_db);                   \
-       *(_spa_p) = __dn->dn_objset->os_spa;    \
-       DB_DNODE_EXIT(_db);                     \
-}
-#define        DB_GET_OBJSET(_os_p, _db) {             \
-       dnode_t *__dn;                          \
-       DB_DNODE_ENTER(_db);                    \
-       __dn = DB_DNODE(_db);                   \
-       *(_os_p) = __dn->dn_objset;             \
-       DB_DNODE_EXIT(_db);                     \
-}
-
-void dbuf_init(void);
-void dbuf_fini(void);
-
-boolean_t dbuf_is_metadata(dmu_buf_impl_t *db);
-
-#define        DBUF_IS_METADATA(_db)   \
-       (dbuf_is_metadata(_db))
-
-#define        DBUF_GET_BUFC_TYPE(_db) \
-       (DBUF_IS_METADATA(_db) ? ARC_BUFC_METADATA : ARC_BUFC_DATA)
-
-#define        DBUF_IS_CACHEABLE(_db)                                          \
-       ((_db)->db_objset->os_primary_cache == ZFS_CACHE_ALL ||         \
-       (DBUF_IS_METADATA(_db) &&                                       \
-       ((_db)->db_objset->os_primary_cache == ZFS_CACHE_METADATA)))
-
-#define        DBUF_IS_L2CACHEABLE(_db)                                        \
-       ((_db)->db_objset->os_secondary_cache == ZFS_CACHE_ALL ||       \
-       (DBUF_IS_METADATA(_db) &&                                       \
-       ((_db)->db_objset->os_secondary_cache == ZFS_CACHE_METADATA)))
-
-#ifdef ZFS_DEBUG
-
-/*
- * There should be a ## between the string literal and fmt, to make it
- * clear that we're joining two strings together, but gcc does not
- * support that preprocessor token.
- */
-#define        dprintf_dbuf(dbuf, fmt, ...) do { \
-       if (zfs_flags & ZFS_DEBUG_DPRINTF) { \
-       char __db_buf[32]; \
-       uint64_t __db_obj = (dbuf)->db.db_object; \
-       if (__db_obj == DMU_META_DNODE_OBJECT) \
-               (void) strcpy(__db_buf, "mdn"); \
-       else \
-               (void) snprintf(__db_buf, sizeof (__db_buf), "%lld", \
-                   (u_longlong_t)__db_obj); \
-       dprintf_ds((dbuf)->db_objset->os_dsl_dataset, \
-           "obj=%s lvl=%u blkid=%lld " fmt, \
-           __db_buf, (dbuf)->db_level, \
-           (u_longlong_t)(dbuf)->db_blkid, __VA_ARGS__); \
-       } \
-_NOTE(CONSTCOND) } while (0)
-
-#define        dprintf_dbuf_bp(db, bp, fmt, ...) do {                  \
-       if (zfs_flags & ZFS_DEBUG_DPRINTF) {                    \
-       char *__blkbuf = kmem_alloc(BP_SPRINTF_LEN, KM_SLEEP);  \
-       sprintf_blkptr(__blkbuf, bp);                           \
-       dprintf_dbuf(db, fmt " %s\n", __VA_ARGS__, __blkbuf);   \
-       kmem_free(__blkbuf, BP_SPRINTF_LEN);                    \
-       }                                                       \
-_NOTE(CONSTCOND) } while (0)
-
-#define        DBUF_VERIFY(db) dbuf_verify(db)
-
-#else
-
-#define        dprintf_dbuf(db, fmt, ...)
-#define        dprintf_dbuf_bp(db, bp, fmt, ...)
-#define        DBUF_VERIFY(db)
-
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DBUF_H */
diff --git a/module/zfs/include/sys/ddt.h b/module/zfs/include/sys/ddt.h
deleted file mode 100644 (file)
index 9724d6e..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _SYS_DDT_H
-#define        _SYS_DDT_H
-
-#include <sys/sysmacros.h>
-#include <sys/types.h>
-#include <sys/fs/zfs.h>
-#include <sys/zio.h>
-#include <sys/dmu.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * On-disk DDT formats, in the desired search order (newest version first).
- */
-enum ddt_type {
-       DDT_TYPE_ZAP = 0,
-       DDT_TYPES
-};
-
-/*
- * DDT classes, in the desired search order (highest replication level first).
- */
-enum ddt_class {
-       DDT_CLASS_DITTO = 0,
-       DDT_CLASS_DUPLICATE,
-       DDT_CLASS_UNIQUE,
-       DDT_CLASSES
-};
-
-#define        DDT_TYPE_CURRENT                0
-
-#define        DDT_COMPRESS_BYTEORDER_MASK     0x80
-#define        DDT_COMPRESS_FUNCTION_MASK      0x7f
-
-/*
- * On-disk ddt entry:  key (name) and physical storage (value).
- */
-typedef struct ddt_key {
-       zio_cksum_t     ddk_cksum;      /* 256-bit block checksum */
-       uint64_t        ddk_prop;       /* LSIZE, PSIZE, compression */
-} ddt_key_t;
-
-/*
- * ddk_prop layout:
- *
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- *     |   0   |   0   |   0   | comp  |     PSIZE     |     LSIZE     |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- */
-#define        DDK_GET_LSIZE(ddk)      \
-       BF64_GET_SB((ddk)->ddk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1)
-#define        DDK_SET_LSIZE(ddk, x)   \
-       BF64_SET_SB((ddk)->ddk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1, x)
-
-#define        DDK_GET_PSIZE(ddk)      \
-       BF64_GET_SB((ddk)->ddk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1)
-#define        DDK_SET_PSIZE(ddk, x)   \
-       BF64_SET_SB((ddk)->ddk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1, x)
-
-#define        DDK_GET_COMPRESS(ddk)           BF64_GET((ddk)->ddk_prop, 32, 8)
-#define        DDK_SET_COMPRESS(ddk, x)        BF64_SET((ddk)->ddk_prop, 32, 8, x)
-
-#define        DDT_KEY_WORDS   (sizeof (ddt_key_t) / sizeof (uint64_t))
-
-typedef struct ddt_phys {
-       dva_t           ddp_dva[SPA_DVAS_PER_BP];
-       uint64_t        ddp_refcnt;
-       uint64_t        ddp_phys_birth;
-} ddt_phys_t;
-
-enum ddt_phys_type {
-       DDT_PHYS_DITTO = 0,
-       DDT_PHYS_SINGLE = 1,
-       DDT_PHYS_DOUBLE = 2,
-       DDT_PHYS_TRIPLE = 3,
-       DDT_PHYS_TYPES
-};
-
-/*
- * In-core ddt entry
- */
-struct ddt_entry {
-       ddt_key_t       dde_key;
-       ddt_phys_t      dde_phys[DDT_PHYS_TYPES];
-       zio_t           *dde_lead_zio[DDT_PHYS_TYPES];
-       void            *dde_repair_data;
-       enum ddt_type   dde_type;
-       enum ddt_class  dde_class;
-       uint8_t         dde_loading;
-       uint8_t         dde_loaded;
-       kcondvar_t      dde_cv;
-       avl_node_t      dde_node;
-};
-
-/*
- * In-core ddt
- */
-struct ddt {
-       kmutex_t        ddt_lock;
-       avl_tree_t      ddt_tree;
-       avl_tree_t      ddt_repair_tree;
-       enum zio_checksum ddt_checksum;
-       spa_t           *ddt_spa;
-       objset_t        *ddt_os;
-       uint64_t        ddt_stat_object;
-       uint64_t        ddt_object[DDT_TYPES][DDT_CLASSES];
-       ddt_histogram_t ddt_histogram[DDT_TYPES][DDT_CLASSES];
-       ddt_histogram_t ddt_histogram_cache[DDT_TYPES][DDT_CLASSES];
-       ddt_object_t    ddt_object_stats[DDT_TYPES][DDT_CLASSES];
-       avl_node_t      ddt_node;
-};
-
-/*
- * In-core and on-disk bookmark for DDT walks
- */
-typedef struct ddt_bookmark {
-       uint64_t        ddb_class;
-       uint64_t        ddb_type;
-       uint64_t        ddb_checksum;
-       uint64_t        ddb_cursor;
-} ddt_bookmark_t;
-
-/*
- * Ops vector to access a specific DDT object type.
- */
-typedef struct ddt_ops {
-       char ddt_op_name[32];
-       int (*ddt_op_create)(objset_t *os, uint64_t *object, dmu_tx_t *tx,
-           boolean_t prehash);
-       int (*ddt_op_destroy)(objset_t *os, uint64_t object, dmu_tx_t *tx);
-       int (*ddt_op_lookup)(objset_t *os, uint64_t object, ddt_entry_t *dde);
-       void (*ddt_op_prefetch)(objset_t *os, uint64_t object,
-           ddt_entry_t *dde);
-       int (*ddt_op_update)(objset_t *os, uint64_t object, ddt_entry_t *dde,
-           dmu_tx_t *tx);
-       int (*ddt_op_remove)(objset_t *os, uint64_t object, ddt_entry_t *dde,
-           dmu_tx_t *tx);
-       int (*ddt_op_walk)(objset_t *os, uint64_t object, ddt_entry_t *dde,
-           uint64_t *walk);
-       uint64_t (*ddt_op_count)(objset_t *os, uint64_t object);
-} ddt_ops_t;
-
-#define        DDT_NAMELEN     80
-
-extern void ddt_object_name(ddt_t *ddt, enum ddt_type type,
-    enum ddt_class class, char *name);
-extern int ddt_object_walk(ddt_t *ddt, enum ddt_type type,
-    enum ddt_class class, uint64_t *walk, ddt_entry_t *dde);
-extern uint64_t ddt_object_count(ddt_t *ddt, enum ddt_type type,
-    enum ddt_class class);
-extern int ddt_object_info(ddt_t *ddt, enum ddt_type type,
-    enum ddt_class class, dmu_object_info_t *);
-extern boolean_t ddt_object_exists(ddt_t *ddt, enum ddt_type type,
-    enum ddt_class class);
-
-extern void ddt_bp_fill(const ddt_phys_t *ddp, blkptr_t *bp,
-    uint64_t txg);
-extern void ddt_bp_create(enum zio_checksum checksum, const ddt_key_t *ddk,
-    const ddt_phys_t *ddp, blkptr_t *bp);
-
-extern void ddt_key_fill(ddt_key_t *ddk, const blkptr_t *bp);
-
-extern void ddt_phys_fill(ddt_phys_t *ddp, const blkptr_t *bp);
-extern void ddt_phys_clear(ddt_phys_t *ddp);
-extern void ddt_phys_addref(ddt_phys_t *ddp);
-extern void ddt_phys_decref(ddt_phys_t *ddp);
-extern void ddt_phys_free(ddt_t *ddt, ddt_key_t *ddk, ddt_phys_t *ddp,
-    uint64_t txg);
-extern ddt_phys_t *ddt_phys_select(const ddt_entry_t *dde, const blkptr_t *bp);
-extern uint64_t ddt_phys_total_refcnt(const ddt_entry_t *dde);
-
-extern void ddt_stat_add(ddt_stat_t *dst, const ddt_stat_t *src, uint64_t neg);
-
-extern void ddt_histogram_add(ddt_histogram_t *dst, const ddt_histogram_t *src);
-extern void ddt_histogram_stat(ddt_stat_t *dds, const ddt_histogram_t *ddh);
-extern boolean_t ddt_histogram_empty(const ddt_histogram_t *ddh);
-extern void ddt_get_dedup_object_stats(spa_t *spa, ddt_object_t *ddo);
-extern void ddt_get_dedup_histogram(spa_t *spa, ddt_histogram_t *ddh);
-extern void ddt_get_dedup_stats(spa_t *spa, ddt_stat_t *dds_total);
-
-extern uint64_t ddt_get_dedup_dspace(spa_t *spa);
-extern uint64_t ddt_get_pool_dedup_ratio(spa_t *spa);
-
-extern int ddt_ditto_copies_needed(ddt_t *ddt, ddt_entry_t *dde,
-    ddt_phys_t *ddp_willref);
-extern int ddt_ditto_copies_present(ddt_entry_t *dde);
-
-extern size_t ddt_compress(void *src, uchar_t *dst, size_t s_len, size_t d_len);
-extern void ddt_decompress(uchar_t *src, void *dst, size_t s_len, size_t d_len);
-
-extern ddt_t *ddt_select(spa_t *spa, const blkptr_t *bp);
-extern void ddt_enter(ddt_t *ddt);
-extern void ddt_exit(ddt_t *ddt);
-extern ddt_entry_t *ddt_lookup(ddt_t *ddt, const blkptr_t *bp, boolean_t add);
-extern void ddt_prefetch(spa_t *spa, const blkptr_t *bp);
-extern void ddt_remove(ddt_t *ddt, ddt_entry_t *dde);
-
-extern boolean_t ddt_class_contains(spa_t *spa, enum ddt_class max_class,
-    const blkptr_t *bp);
-
-extern ddt_entry_t *ddt_repair_start(ddt_t *ddt, const blkptr_t *bp);
-extern void ddt_repair_done(ddt_t *ddt, ddt_entry_t *dde);
-
-extern int ddt_entry_compare(const void *x1, const void *x2);
-
-extern void ddt_create(spa_t *spa);
-extern int ddt_load(spa_t *spa);
-extern void ddt_unload(spa_t *spa);
-extern void ddt_sync(spa_t *spa, uint64_t txg);
-extern int ddt_walk(spa_t *spa, ddt_bookmark_t *ddb, ddt_entry_t *dde);
-extern int ddt_object_update(ddt_t *ddt, enum ddt_type type,
-    enum ddt_class class, ddt_entry_t *dde, dmu_tx_t *tx);
-
-extern const ddt_ops_t ddt_zap_ops;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DDT_H */
diff --git a/module/zfs/include/sys/dmu.h b/module/zfs/include/sys/dmu.h
deleted file mode 100644 (file)
index 575cb2d..0000000
+++ /dev/null
@@ -1,743 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* Portions Copyright 2010 Robert Milkowski */
-
-#ifndef        _SYS_DMU_H
-#define        _SYS_DMU_H
-
-/*
- * This file describes the interface that the DMU provides for its
- * consumers.
- *
- * The DMU also interacts with the SPA.  That interface is described in
- * dmu_spa.h.
- */
-
-#include <sys/inttypes.h>
-#include <sys/types.h>
-#include <sys/param.h>
-#include <sys/cred.h>
-#include <sys/time.h>
-#include <sys/uio.h>
-#ifdef _KERNEL
-#include <sys/blkdev.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct page;
-struct vnode;
-struct spa;
-struct zilog;
-struct zio;
-struct blkptr;
-struct zap_cursor;
-struct dsl_dataset;
-struct dsl_pool;
-struct dnode;
-struct drr_begin;
-struct drr_end;
-struct zbookmark;
-struct spa;
-struct nvlist;
-struct arc_buf;
-struct zio_prop;
-struct sa_handle;
-
-typedef struct objset objset_t;
-typedef struct dmu_tx dmu_tx_t;
-typedef struct dsl_dir dsl_dir_t;
-
-typedef enum dmu_object_type {
-       DMU_OT_NONE,
-       /* general: */
-       DMU_OT_OBJECT_DIRECTORY,        /* ZAP */
-       DMU_OT_OBJECT_ARRAY,            /* UINT64 */
-       DMU_OT_PACKED_NVLIST,           /* UINT8 (XDR by nvlist_pack/unpack) */
-       DMU_OT_PACKED_NVLIST_SIZE,      /* UINT64 */
-       DMU_OT_BPOBJ,                   /* UINT64 */
-       DMU_OT_BPOBJ_HDR,               /* UINT64 */
-       /* spa: */
-       DMU_OT_SPACE_MAP_HEADER,        /* UINT64 */
-       DMU_OT_SPACE_MAP,               /* UINT64 */
-       /* zil: */
-       DMU_OT_INTENT_LOG,              /* UINT64 */
-       /* dmu: */
-       DMU_OT_DNODE,                   /* DNODE */
-       DMU_OT_OBJSET,                  /* OBJSET */
-       /* dsl: */
-       DMU_OT_DSL_DIR,                 /* UINT64 */
-       DMU_OT_DSL_DIR_CHILD_MAP,       /* ZAP */
-       DMU_OT_DSL_DS_SNAP_MAP,         /* ZAP */
-       DMU_OT_DSL_PROPS,               /* ZAP */
-       DMU_OT_DSL_DATASET,             /* UINT64 */
-       /* zpl: */
-       DMU_OT_ZNODE,                   /* ZNODE */
-       DMU_OT_OLDACL,                  /* Old ACL */
-       DMU_OT_PLAIN_FILE_CONTENTS,     /* UINT8 */
-       DMU_OT_DIRECTORY_CONTENTS,      /* ZAP */
-       DMU_OT_MASTER_NODE,             /* ZAP */
-       DMU_OT_UNLINKED_SET,            /* ZAP */
-       /* zvol: */
-       DMU_OT_ZVOL,                    /* UINT8 */
-       DMU_OT_ZVOL_PROP,               /* ZAP */
-       /* other; for testing only! */
-       DMU_OT_PLAIN_OTHER,             /* UINT8 */
-       DMU_OT_UINT64_OTHER,            /* UINT64 */
-       DMU_OT_ZAP_OTHER,               /* ZAP */
-       /* new object types: */
-       DMU_OT_ERROR_LOG,               /* ZAP */
-       DMU_OT_SPA_HISTORY,             /* UINT8 */
-       DMU_OT_SPA_HISTORY_OFFSETS,     /* spa_his_phys_t */
-       DMU_OT_POOL_PROPS,              /* ZAP */
-       DMU_OT_DSL_PERMS,               /* ZAP */
-       DMU_OT_ACL,                     /* ACL */
-       DMU_OT_SYSACL,                  /* SYSACL */
-       DMU_OT_FUID,                    /* FUID table (Packed NVLIST UINT8) */
-       DMU_OT_FUID_SIZE,               /* FUID table size UINT64 */
-       DMU_OT_NEXT_CLONES,             /* ZAP */
-       DMU_OT_SCAN_QUEUE,              /* ZAP */
-       DMU_OT_USERGROUP_USED,          /* ZAP */
-       DMU_OT_USERGROUP_QUOTA,         /* ZAP */
-       DMU_OT_USERREFS,                /* ZAP */
-       DMU_OT_DDT_ZAP,                 /* ZAP */
-       DMU_OT_DDT_STATS,               /* ZAP */
-       DMU_OT_SA,                      /* System attr */
-       DMU_OT_SA_MASTER_NODE,          /* ZAP */
-       DMU_OT_SA_ATTR_REGISTRATION,    /* ZAP */
-       DMU_OT_SA_ATTR_LAYOUTS,         /* ZAP */
-       DMU_OT_SCAN_XLATE,              /* ZAP */
-       DMU_OT_DEDUP,                   /* fake dedup BP from ddt_bp_create() */
-       DMU_OT_DEADLIST,                /* ZAP */
-       DMU_OT_DEADLIST_HDR,            /* UINT64 */
-       DMU_OT_DSL_CLONES,              /* ZAP */
-       DMU_OT_BPOBJ_SUBOBJ,            /* UINT64 */
-       DMU_OT_NUMTYPES
-} dmu_object_type_t;
-
-typedef enum dmu_objset_type {
-       DMU_OST_NONE,
-       DMU_OST_META,
-       DMU_OST_ZFS,
-       DMU_OST_ZVOL,
-       DMU_OST_OTHER,                  /* For testing only! */
-       DMU_OST_ANY,                    /* Be careful! */
-       DMU_OST_NUMTYPES
-} dmu_objset_type_t;
-
-void byteswap_uint64_array(void *buf, size_t size);
-void byteswap_uint32_array(void *buf, size_t size);
-void byteswap_uint16_array(void *buf, size_t size);
-void byteswap_uint8_array(void *buf, size_t size);
-void zap_byteswap(void *buf, size_t size);
-void zfs_oldacl_byteswap(void *buf, size_t size);
-void zfs_acl_byteswap(void *buf, size_t size);
-void zfs_znode_byteswap(void *buf, size_t size);
-
-#define        DS_FIND_SNAPSHOTS       (1<<0)
-#define        DS_FIND_CHILDREN        (1<<1)
-
-/*
- * The maximum number of bytes that can be accessed as part of one
- * operation, including metadata.
- */
-#define        DMU_MAX_ACCESS (10<<20) /* 10MB */
-#define        DMU_MAX_DELETEBLKCNT (20480) /* ~5MB of indirect blocks */
-
-#define        DMU_USERUSED_OBJECT     (-1ULL)
-#define        DMU_GROUPUSED_OBJECT    (-2ULL)
-#define        DMU_DEADLIST_OBJECT     (-3ULL)
-
-/*
- * artificial blkids for bonus buffer and spill blocks
- */
-#define        DMU_BONUS_BLKID         (-1ULL)
-#define        DMU_SPILL_BLKID         (-2ULL)
-/*
- * Public routines to create, destroy, open, and close objsets.
- */
-int dmu_objset_hold(const char *name, void *tag, objset_t **osp);
-int dmu_objset_own(const char *name, dmu_objset_type_t type,
-    boolean_t readonly, void *tag, objset_t **osp);
-void dmu_objset_rele(objset_t *os, void *tag);
-void dmu_objset_disown(objset_t *os, void *tag);
-int dmu_objset_open_ds(struct dsl_dataset *ds, objset_t **osp);
-
-int dmu_objset_evict_dbufs(objset_t *os);
-int dmu_objset_create(const char *name, dmu_objset_type_t type, uint64_t flags,
-    void (*func)(objset_t *os, void *arg, cred_t *cr, dmu_tx_t *tx), void *arg);
-int dmu_objset_clone(const char *name, struct dsl_dataset *clone_origin,
-    uint64_t flags);
-int dmu_objset_destroy(const char *name, boolean_t defer);
-int dmu_snapshots_destroy(char *fsname, char *snapname, boolean_t defer);
-int dmu_objset_snapshot(char *fsname, char *snapname, char *tag,
-    struct nvlist *props, boolean_t recursive, boolean_t temporary, int fd);
-int dmu_objset_rename(const char *name, const char *newname,
-    boolean_t recursive);
-int dmu_objset_find(char *name, int func(const char *, void *), void *arg,
-    int flags);
-void dmu_objset_byteswap(void *buf, size_t size);
-
-typedef struct dmu_buf {
-       uint64_t db_object;             /* object that this buffer is part of */
-       uint64_t db_offset;             /* byte offset in this object */
-       uint64_t db_size;               /* size of buffer in bytes */
-       void *db_data;                  /* data in buffer */
-} dmu_buf_t;
-
-typedef void dmu_buf_evict_func_t(struct dmu_buf *db, void *user_ptr);
-
-/*
- * The names of zap entries in the DIRECTORY_OBJECT of the MOS.
- */
-#define        DMU_POOL_DIRECTORY_OBJECT       1
-#define        DMU_POOL_CONFIG                 "config"
-#define        DMU_POOL_ROOT_DATASET           "root_dataset"
-#define        DMU_POOL_SYNC_BPOBJ             "sync_bplist"
-#define        DMU_POOL_ERRLOG_SCRUB           "errlog_scrub"
-#define        DMU_POOL_ERRLOG_LAST            "errlog_last"
-#define        DMU_POOL_SPARES                 "spares"
-#define        DMU_POOL_DEFLATE                "deflate"
-#define        DMU_POOL_HISTORY                "history"
-#define        DMU_POOL_PROPS                  "pool_props"
-#define        DMU_POOL_L2CACHE                "l2cache"
-#define        DMU_POOL_TMP_USERREFS           "tmp_userrefs"
-#define        DMU_POOL_DDT                    "DDT-%s-%s-%s"
-#define        DMU_POOL_DDT_STATS              "DDT-statistics"
-#define        DMU_POOL_CREATION_VERSION       "creation_version"
-#define        DMU_POOL_SCAN                   "scan"
-#define        DMU_POOL_FREE_BPOBJ             "free_bpobj"
-
-/*
- * Allocate an object from this objset.  The range of object numbers
- * available is (0, DN_MAX_OBJECT).  Object 0 is the meta-dnode.
- *
- * The transaction must be assigned to a txg.  The newly allocated
- * object will be "held" in the transaction (ie. you can modify the
- * newly allocated object in this transaction).
- *
- * dmu_object_alloc() chooses an object and returns it in *objectp.
- *
- * dmu_object_claim() allocates a specific object number.  If that
- * number is already allocated, it fails and returns EEXIST.
- *
- * Return 0 on success, or ENOSPC or EEXIST as specified above.
- */
-uint64_t dmu_object_alloc(objset_t *os, dmu_object_type_t ot,
-    int blocksize, dmu_object_type_t bonus_type, int bonus_len, dmu_tx_t *tx);
-int dmu_object_claim(objset_t *os, uint64_t object, dmu_object_type_t ot,
-    int blocksize, dmu_object_type_t bonus_type, int bonus_len, dmu_tx_t *tx);
-int dmu_object_reclaim(objset_t *os, uint64_t object, dmu_object_type_t ot,
-    int blocksize, dmu_object_type_t bonustype, int bonuslen);
-
-/*
- * Free an object from this objset.
- *
- * The object's data will be freed as well (ie. you don't need to call
- * dmu_free(object, 0, -1, tx)).
- *
- * The object need not be held in the transaction.
- *
- * If there are any holds on this object's buffers (via dmu_buf_hold()),
- * or tx holds on the object (via dmu_tx_hold_object()), you can not
- * free it; it fails and returns EBUSY.
- *
- * If the object is not allocated, it fails and returns ENOENT.
- *
- * Return 0 on success, or EBUSY or ENOENT as specified above.
- */
-int dmu_object_free(objset_t *os, uint64_t object, dmu_tx_t *tx);
-
-/*
- * Find the next allocated or free object.
- *
- * The objectp parameter is in-out.  It will be updated to be the next
- * object which is allocated.  Ignore objects which have not been
- * modified since txg.
- *
- * XXX Can only be called on a objset with no dirty data.
- *
- * Returns 0 on success, or ENOENT if there are no more objects.
- */
-int dmu_object_next(objset_t *os, uint64_t *objectp,
-    boolean_t hole, uint64_t txg);
-
-/*
- * Set the data blocksize for an object.
- *
- * The object cannot have any blocks allcated beyond the first.  If
- * the first block is allocated already, the new size must be greater
- * than the current block size.  If these conditions are not met,
- * ENOTSUP will be returned.
- *
- * Returns 0 on success, or EBUSY if there are any holds on the object
- * contents, or ENOTSUP as described above.
- */
-int dmu_object_set_blocksize(objset_t *os, uint64_t object, uint64_t size,
-    int ibs, dmu_tx_t *tx);
-
-/*
- * Set the checksum property on a dnode.  The new checksum algorithm will
- * apply to all newly written blocks; existing blocks will not be affected.
- */
-void dmu_object_set_checksum(objset_t *os, uint64_t object, uint8_t checksum,
-    dmu_tx_t *tx);
-
-/*
- * Set the compress property on a dnode.  The new compression algorithm will
- * apply to all newly written blocks; existing blocks will not be affected.
- */
-void dmu_object_set_compress(objset_t *os, uint64_t object, uint8_t compress,
-    dmu_tx_t *tx);
-
-/*
- * Decide how to write a block: checksum, compression, number of copies, etc.
- */
-#define        WP_NOFILL       0x1
-#define        WP_DMU_SYNC     0x2
-#define        WP_SPILL        0x4
-
-void dmu_write_policy(objset_t *os, struct dnode *dn, int level, int wp,
-    struct zio_prop *zp);
-/*
- * The bonus data is accessed more or less like a regular buffer.
- * You must dmu_bonus_hold() to get the buffer, which will give you a
- * dmu_buf_t with db_offset==-1ULL, and db_size = the size of the bonus
- * data.  As with any normal buffer, you must call dmu_buf_read() to
- * read db_data, dmu_buf_will_dirty() before modifying it, and the
- * object must be held in an assigned transaction before calling
- * dmu_buf_will_dirty.  You may use dmu_buf_set_user() on the bonus
- * buffer as well.  You must release your hold with dmu_buf_rele().
- */
-int dmu_bonus_hold(objset_t *os, uint64_t object, void *tag, dmu_buf_t **);
-int dmu_bonus_max(void);
-int dmu_set_bonus(dmu_buf_t *, int, dmu_tx_t *);
-int dmu_set_bonustype(dmu_buf_t *, dmu_object_type_t, dmu_tx_t *);
-dmu_object_type_t dmu_get_bonustype(dmu_buf_t *);
-int dmu_rm_spill(objset_t *, uint64_t, dmu_tx_t *);
-
-/*
- * Special spill buffer support used by "SA" framework
- */
-
-int dmu_spill_hold_by_bonus(dmu_buf_t *bonus, void *tag, dmu_buf_t **dbp);
-int dmu_spill_hold_by_dnode(struct dnode *dn, uint32_t flags,
-    void *tag, dmu_buf_t **dbp);
-int dmu_spill_hold_existing(dmu_buf_t *bonus, void *tag, dmu_buf_t **dbp);
-
-/*
- * Obtain the DMU buffer from the specified object which contains the
- * specified offset.  dmu_buf_hold() puts a "hold" on the buffer, so
- * that it will remain in memory.  You must release the hold with
- * dmu_buf_rele().  You musn't access the dmu_buf_t after releasing your
- * hold.  You must have a hold on any dmu_buf_t* you pass to the DMU.
- *
- * You must call dmu_buf_read, dmu_buf_will_dirty, or dmu_buf_will_fill
- * on the returned buffer before reading or writing the buffer's
- * db_data.  The comments for those routines describe what particular
- * operations are valid after calling them.
- *
- * The object number must be a valid, allocated object number.
- */
-int dmu_buf_hold(objset_t *os, uint64_t object, uint64_t offset,
-    void *tag, dmu_buf_t **, int flags);
-void dmu_buf_add_ref(dmu_buf_t *db, void* tag);
-void dmu_buf_rele(dmu_buf_t *db, void *tag);
-uint64_t dmu_buf_refcount(dmu_buf_t *db);
-
-/*
- * dmu_buf_hold_array holds the DMU buffers which contain all bytes in a
- * range of an object.  A pointer to an array of dmu_buf_t*'s is
- * returned (in *dbpp).
- *
- * dmu_buf_rele_array releases the hold on an array of dmu_buf_t*'s, and
- * frees the array.  The hold on the array of buffers MUST be released
- * with dmu_buf_rele_array.  You can NOT release the hold on each buffer
- * individually with dmu_buf_rele.
- */
-int dmu_buf_hold_array_by_bonus(dmu_buf_t *db, uint64_t offset,
-    uint64_t length, int read, void *tag, int *numbufsp, dmu_buf_t ***dbpp);
-void dmu_buf_rele_array(dmu_buf_t **, int numbufs, void *tag);
-
-/*
- * Returns NULL on success, or the existing user ptr if it's already
- * been set.
- *
- * user_ptr is for use by the user and can be obtained via dmu_buf_get_user().
- *
- * user_data_ptr_ptr should be NULL, or a pointer to a pointer which
- * will be set to db->db_data when you are allowed to access it.  Note
- * that db->db_data (the pointer) can change when you do dmu_buf_read(),
- * dmu_buf_tryupgrade(), dmu_buf_will_dirty(), or dmu_buf_will_fill().
- * *user_data_ptr_ptr will be set to the new value when it changes.
- *
- * If non-NULL, pageout func will be called when this buffer is being
- * excised from the cache, so that you can clean up the data structure
- * pointed to by user_ptr.
- *
- * dmu_evict_user() will call the pageout func for all buffers in a
- * objset with a given pageout func.
- */
-void *dmu_buf_set_user(dmu_buf_t *db, void *user_ptr, void *user_data_ptr_ptr,
-    dmu_buf_evict_func_t *pageout_func);
-/*
- * set_user_ie is the same as set_user, but request immediate eviction
- * when hold count goes to zero.
- */
-void *dmu_buf_set_user_ie(dmu_buf_t *db, void *user_ptr,
-    void *user_data_ptr_ptr, dmu_buf_evict_func_t *pageout_func);
-void *dmu_buf_update_user(dmu_buf_t *db_fake, void *old_user_ptr,
-    void *user_ptr, void *user_data_ptr_ptr,
-    dmu_buf_evict_func_t *pageout_func);
-void dmu_evict_user(objset_t *os, dmu_buf_evict_func_t *func);
-
-/*
- * Returns the user_ptr set with dmu_buf_set_user(), or NULL if not set.
- */
-void *dmu_buf_get_user(dmu_buf_t *db);
-
-/*
- * Indicate that you are going to modify the buffer's data (db_data).
- *
- * The transaction (tx) must be assigned to a txg (ie. you've called
- * dmu_tx_assign()).  The buffer's object must be held in the tx
- * (ie. you've called dmu_tx_hold_object(tx, db->db_object)).
- */
-void dmu_buf_will_dirty(dmu_buf_t *db, dmu_tx_t *tx);
-
-/*
- * Tells if the given dbuf is freeable.
- */
-boolean_t dmu_buf_freeable(dmu_buf_t *);
-
-/*
- * You must create a transaction, then hold the objects which you will
- * (or might) modify as part of this transaction.  Then you must assign
- * the transaction to a transaction group.  Once the transaction has
- * been assigned, you can modify buffers which belong to held objects as
- * part of this transaction.  You can't modify buffers before the
- * transaction has been assigned; you can't modify buffers which don't
- * belong to objects which this transaction holds; you can't hold
- * objects once the transaction has been assigned.  You may hold an
- * object which you are going to free (with dmu_object_free()), but you
- * don't have to.
- *
- * You can abort the transaction before it has been assigned.
- *
- * Note that you may hold buffers (with dmu_buf_hold) at any time,
- * regardless of transaction state.
- */
-
-#define        DMU_NEW_OBJECT  (-1ULL)
-#define        DMU_OBJECT_END  (-1ULL)
-
-dmu_tx_t *dmu_tx_create(objset_t *os);
-void dmu_tx_hold_write(dmu_tx_t *tx, uint64_t object, uint64_t off, int len);
-void dmu_tx_hold_free(dmu_tx_t *tx, uint64_t object, uint64_t off,
-    uint64_t len);
-void dmu_tx_hold_zap(dmu_tx_t *tx, uint64_t object, int add, const char *name);
-void dmu_tx_hold_bonus(dmu_tx_t *tx, uint64_t object);
-void dmu_tx_hold_spill(dmu_tx_t *tx, uint64_t object);
-void dmu_tx_hold_sa(dmu_tx_t *tx, struct sa_handle *hdl, boolean_t may_grow);
-void dmu_tx_hold_sa_create(dmu_tx_t *tx, int total_size);
-void dmu_tx_abort(dmu_tx_t *tx);
-int dmu_tx_assign(dmu_tx_t *tx, uint64_t txg_how);
-void dmu_tx_wait(dmu_tx_t *tx);
-void dmu_tx_commit(dmu_tx_t *tx);
-
-/*
- * To register a commit callback, dmu_tx_callback_register() must be called.
- *
- * dcb_data is a pointer to caller private data that is passed on as a
- * callback parameter. The caller is responsible for properly allocating and
- * freeing it.
- *
- * When registering a callback, the transaction must be already created, but
- * it cannot be committed or aborted. It can be assigned to a txg or not.
- *
- * The callback will be called after the transaction has been safely written
- * to stable storage and will also be called if the dmu_tx is aborted.
- * If there is any error which prevents the transaction from being committed to
- * disk, the callback will be called with a value of error != 0.
- */
-typedef void dmu_tx_callback_func_t(void *dcb_data, int error);
-
-void dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *dcb_func,
-    void *dcb_data);
-
-/*
- * Free up the data blocks for a defined range of a file.  If size is
- * zero, the range from offset to end-of-file is freed.
- */
-int dmu_free_range(objset_t *os, uint64_t object, uint64_t offset,
-       uint64_t size, dmu_tx_t *tx);
-int dmu_free_long_range(objset_t *os, uint64_t object, uint64_t offset,
-       uint64_t size);
-int dmu_free_object(objset_t *os, uint64_t object);
-
-/*
- * Convenience functions.
- *
- * Canfail routines will return 0 on success, or an errno if there is a
- * nonrecoverable I/O error.
- */
-#define        DMU_READ_PREFETCH       0 /* prefetch */
-#define        DMU_READ_NO_PREFETCH    1 /* don't prefetch */
-int dmu_read(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
-       void *buf, uint32_t flags);
-void dmu_write(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
-       const void *buf, dmu_tx_t *tx);
-void dmu_prealloc(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
-       dmu_tx_t *tx);
-#ifdef _KERNEL
-int dmu_read_req(objset_t *os, uint64_t object, struct request *req);
-int dmu_write_req(objset_t *os, uint64_t object, struct request *req, dmu_tx_t *tx);
-#endif
-#ifdef HAVE_ZPL
-int dmu_write_pages(objset_t *os, uint64_t object, uint64_t offset,
-    uint64_t size, struct page *pp, dmu_tx_t *tx);
-#endif
-struct arc_buf *dmu_request_arcbuf(dmu_buf_t *handle, int size);
-void dmu_return_arcbuf(struct arc_buf *buf);
-void dmu_assign_arcbuf(dmu_buf_t *handle, uint64_t offset, struct arc_buf *buf,
-    dmu_tx_t *tx);
-int dmu_xuio_init(struct xuio *uio, int niov);
-void dmu_xuio_fini(struct xuio *uio);
-int dmu_xuio_add(struct xuio *uio, struct arc_buf *abuf, offset_t off,
-    size_t n);
-int dmu_xuio_cnt(struct xuio *uio);
-struct arc_buf *dmu_xuio_arcbuf(struct xuio *uio, int i);
-void dmu_xuio_clear(struct xuio *uio, int i);
-void xuio_stat_wbuf_copied(void);
-void xuio_stat_wbuf_nocopy(void);
-
-extern int zfs_prefetch_disable;
-
-/*
- * Asynchronously try to read in the data.
- */
-void dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset,
-    uint64_t len);
-
-typedef struct dmu_object_info {
-       /* All sizes are in bytes unless otherwise indicated. */
-       uint32_t doi_data_block_size;
-       uint32_t doi_metadata_block_size;
-       dmu_object_type_t doi_type;
-       dmu_object_type_t doi_bonus_type;
-       uint64_t doi_bonus_size;
-       uint8_t doi_indirection;                /* 2 = dnode->indirect->data */
-       uint8_t doi_checksum;
-       uint8_t doi_compress;
-       uint8_t doi_pad[5];
-       uint64_t doi_physical_blocks_512;       /* data + metadata, 512b blks */
-       uint64_t doi_max_offset;
-       uint64_t doi_fill_count;                /* number of non-empty blocks */
-} dmu_object_info_t;
-
-typedef void arc_byteswap_func_t(void *buf, size_t size);
-
-typedef struct dmu_object_type_info {
-       arc_byteswap_func_t     *ot_byteswap;
-       boolean_t               ot_metadata;
-       char                    *ot_name;
-} dmu_object_type_info_t;
-
-extern const dmu_object_type_info_t dmu_ot[DMU_OT_NUMTYPES];
-
-/*
- * Get information on a DMU object.
- *
- * Return 0 on success or ENOENT if object is not allocated.
- *
- * If doi is NULL, just indicates whether the object exists.
- */
-int dmu_object_info(objset_t *os, uint64_t object, dmu_object_info_t *doi);
-void dmu_object_info_from_dnode(struct dnode *dn, dmu_object_info_t *doi);
-void dmu_object_info_from_db(dmu_buf_t *db, dmu_object_info_t *doi);
-void dmu_object_size_from_db(dmu_buf_t *db, uint32_t *blksize,
-    u_longlong_t *nblk512);
-
-typedef struct dmu_objset_stats {
-       uint64_t dds_num_clones; /* number of clones of this */
-       uint64_t dds_creation_txg;
-       uint64_t dds_guid;
-       dmu_objset_type_t dds_type;
-       uint8_t dds_is_snapshot;
-       uint8_t dds_inconsistent;
-       char dds_origin[MAXNAMELEN];
-} dmu_objset_stats_t;
-
-/*
- * Get stats on a dataset.
- */
-void dmu_objset_fast_stat(objset_t *os, dmu_objset_stats_t *stat);
-
-/*
- * Add entries to the nvlist for all the objset's properties.  See
- * zfs_prop_table[] and zfs(1m) for details on the properties.
- */
-void dmu_objset_stats(objset_t *os, struct nvlist *nv);
-
-/*
- * Get the space usage statistics for statvfs().
- *
- * refdbytes is the amount of space "referenced" by this objset.
- * availbytes is the amount of space available to this objset, taking
- * into account quotas & reservations, assuming that no other objsets
- * use the space first.  These values correspond to the 'referenced' and
- * 'available' properties, described in the zfs(1m) manpage.
- *
- * usedobjs and availobjs are the number of objects currently allocated,
- * and available.
- */
-void dmu_objset_space(objset_t *os, uint64_t *refdbytesp, uint64_t *availbytesp,
-    uint64_t *usedobjsp, uint64_t *availobjsp);
-
-/*
- * The fsid_guid is a 56-bit ID that can change to avoid collisions.
- * (Contrast with the ds_guid which is a 64-bit ID that will never
- * change, so there is a small probability that it will collide.)
- */
-uint64_t dmu_objset_fsid_guid(objset_t *os);
-
-/*
- * Get the [cm]time for an objset's snapshot dir
- */
-timestruc_t dmu_objset_snap_cmtime(objset_t *os);
-
-int dmu_objset_is_snapshot(objset_t *os);
-
-extern struct spa *dmu_objset_spa(objset_t *os);
-extern struct zilog *dmu_objset_zil(objset_t *os);
-extern struct dsl_pool *dmu_objset_pool(objset_t *os);
-extern struct dsl_dataset *dmu_objset_ds(objset_t *os);
-extern void dmu_objset_name(objset_t *os, char *buf);
-extern dmu_objset_type_t dmu_objset_type(objset_t *os);
-extern uint64_t dmu_objset_id(objset_t *os);
-extern uint64_t dmu_objset_syncprop(objset_t *os);
-extern uint64_t dmu_objset_logbias(objset_t *os);
-extern int dmu_snapshot_list_next(objset_t *os, int namelen, char *name,
-    uint64_t *id, uint64_t *offp, boolean_t *case_conflict);
-extern int dmu_snapshot_realname(objset_t *os, char *name, char *real,
-    int maxlen, boolean_t *conflict);
-extern int dmu_dir_list_next(objset_t *os, int namelen, char *name,
-    uint64_t *idp, uint64_t *offp);
-
-typedef int objset_used_cb_t(dmu_object_type_t bonustype,
-    void *bonus, uint64_t *userp, uint64_t *groupp);
-extern void dmu_objset_register_type(dmu_objset_type_t ost,
-    objset_used_cb_t *cb);
-extern void dmu_objset_set_user(objset_t *os, void *user_ptr);
-extern void *dmu_objset_get_user(objset_t *os);
-
-/*
- * Return the txg number for the given assigned transaction.
- */
-uint64_t dmu_tx_get_txg(dmu_tx_t *tx);
-
-/*
- * Synchronous write.
- * If a parent zio is provided this function initiates a write on the
- * provided buffer as a child of the parent zio.
- * In the absence of a parent zio, the write is completed synchronously.
- * At write completion, blk is filled with the bp of the written block.
- * Note that while the data covered by this function will be on stable
- * storage when the write completes this new data does not become a
- * permanent part of the file until the associated transaction commits.
- */
-
-/*
- * {zfs,zvol,ztest}_get_done() args
- */
-typedef struct zgd {
-       struct zilog    *zgd_zilog;
-       struct blkptr   *zgd_bp;
-       dmu_buf_t       *zgd_db;
-       struct rl       *zgd_rl;
-       void            *zgd_private;
-} zgd_t;
-
-typedef void dmu_sync_cb_t(zgd_t *arg, int error);
-int dmu_sync(struct zio *zio, uint64_t txg, dmu_sync_cb_t *done, zgd_t *zgd);
-
-/*
- * Find the next hole or data block in file starting at *off
- * Return found offset in *off. Return ESRCH for end of file.
- */
-int dmu_offset_next(objset_t *os, uint64_t object, boolean_t hole,
-    uint64_t *off);
-
-/*
- * Initial setup and final teardown.
- */
-extern void dmu_init(void);
-extern void dmu_fini(void);
-
-typedef void (*dmu_traverse_cb_t)(objset_t *os, void *arg, struct blkptr *bp,
-    uint64_t object, uint64_t offset, int len);
-void dmu_traverse_objset(objset_t *os, uint64_t txg_start,
-    dmu_traverse_cb_t cb, void *arg);
-
-int dmu_sendbackup(objset_t *tosnap, objset_t *fromsnap, boolean_t fromorigin,
-    struct vnode *vp, offset_t *off);
-
-typedef struct dmu_recv_cookie {
-       /*
-        * This structure is opaque!
-        *
-        * If logical and real are different, we are recving the stream
-        * into the "real" temporary clone, and then switching it with
-        * the "logical" target.
-        */
-       struct dsl_dataset *drc_logical_ds;
-       struct dsl_dataset *drc_real_ds;
-       struct drr_begin *drc_drrb;
-       char *drc_tosnap;
-       char *drc_top_ds;
-       boolean_t drc_newfs;
-       boolean_t drc_force;
-} dmu_recv_cookie_t;
-
-int dmu_recv_begin(char *tofs, char *tosnap, char *topds, struct drr_begin *,
-    boolean_t force, objset_t *origin, dmu_recv_cookie_t *);
-int dmu_recv_stream(dmu_recv_cookie_t *drc, struct vnode *vp, offset_t *voffp,
-    int cleanup_fd, uint64_t *action_handlep);
-int dmu_recv_end(dmu_recv_cookie_t *drc);
-
-int dmu_diff(objset_t *tosnap, objset_t *fromsnap, struct vnode *vp,
-    offset_t *off);
-
-/* CRC64 table */
-#define        ZFS_CRC64_POLY  0xC96C5795D7870F42ULL   /* ECMA-182, reflected form */
-extern uint64_t zfs_crc64_table[256];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DMU_H */
diff --git a/module/zfs/include/sys/dmu_impl.h b/module/zfs/include/sys/dmu_impl.h
deleted file mode 100644 (file)
index 0b8748d..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_DMU_IMPL_H
-#define        _SYS_DMU_IMPL_H
-
-#include <sys/txg_impl.h>
-#include <sys/zio.h>
-#include <sys/dnode.h>
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * This is the locking strategy for the DMU.  Numbers in parenthesis are
- * cases that use that lock order, referenced below:
- *
- * ARC is self-contained
- * bplist is self-contained
- * refcount is self-contained
- * txg is self-contained (hopefully!)
- * zst_lock
- * zf_rwlock
- *
- * XXX try to improve evicting path?
- *
- * dp_config_rwlock > os_obj_lock > dn_struct_rwlock >
- *     dn_dbufs_mtx > hash_mutexes > db_mtx > dd_lock > leafs
- *
- * dp_config_rwlock
- *    must be held before: everything
- *    protects dd namespace changes
- *    protects property changes globally
- *    held from:
- *     dsl_dir_open/r:
- *     dsl_dir_create_sync/w:
- *     dsl_dir_sync_destroy/w:
- *     dsl_dir_rename_sync/w:
- *     dsl_prop_changed_notify/r:
- *
- * os_obj_lock
- *   must be held before:
- *     everything except dp_config_rwlock
- *   protects os_obj_next
- *   held from:
- *     dmu_object_alloc: dn_dbufs_mtx, db_mtx, hash_mutexes, dn_struct_rwlock
- *
- * dn_struct_rwlock
- *   must be held before:
- *     everything except dp_config_rwlock and os_obj_lock
- *   protects structure of dnode (eg. nlevels)
- *     db_blkptr can change when syncing out change to nlevels
- *     dn_maxblkid
- *     dn_nlevels
- *     dn_*blksz*
- *     phys nlevels, maxblkid, physical blkptr_t's (?)
- *   held from:
- *     callers of dbuf_read_impl, dbuf_hold[_impl], dbuf_prefetch
- *     dmu_object_info_from_dnode: dn_dirty_mtx (dn_datablksz)
- *     dmu_tx_count_free:
- *     dbuf_read_impl: db_mtx, dmu_zfetch()
- *     dmu_zfetch: zf_rwlock/r, zst_lock, dbuf_prefetch()
- *     dbuf_new_size: db_mtx
- *     dbuf_dirty: db_mtx
- *     dbuf_findbp: (callers, phys? - the real need)
- *     dbuf_create: dn_dbufs_mtx, hash_mutexes, db_mtx (phys?)
- *     dbuf_prefetch: dn_dirty_mtx, hash_mutexes, db_mtx, dn_dbufs_mtx
- *     dbuf_hold_impl: hash_mutexes, db_mtx, dn_dbufs_mtx, dbuf_findbp()
- *     dnode_sync/w (increase_indirection): db_mtx (phys)
- *     dnode_set_blksz/w: dn_dbufs_mtx (dn_*blksz*)
- *     dnode_new_blkid/w: (dn_maxblkid)
- *     dnode_free_range/w: dn_dirty_mtx (dn_maxblkid)
- *     dnode_next_offset: (phys)
- *
- * dn_dbufs_mtx
- *    must be held before:
- *     db_mtx, hash_mutexes
- *    protects:
- *     dn_dbufs
- *     dn_evicted
- *    held from:
- *     dmu_evict_user: db_mtx (dn_dbufs)
- *     dbuf_free_range: db_mtx (dn_dbufs)
- *     dbuf_remove_ref: db_mtx, callees:
- *             dbuf_hash_remove: hash_mutexes, db_mtx
- *     dbuf_create: hash_mutexes, db_mtx (dn_dbufs)
- *     dnode_set_blksz: (dn_dbufs)
- *
- * hash_mutexes (global)
- *   must be held before:
- *     db_mtx
- *   protects dbuf_hash_table (global) and db_hash_next
- *   held from:
- *     dbuf_find: db_mtx
- *     dbuf_hash_insert: db_mtx
- *     dbuf_hash_remove: db_mtx
- *
- * db_mtx (meta-leaf)
- *   must be held before:
- *     dn_mtx, dn_dirty_mtx, dd_lock (leaf mutexes)
- *   protects:
- *     db_state
- *     db_holds
- *     db_buf
- *     db_changed
- *     db_data_pending
- *     db_dirtied
- *     db_link
- *     db_dirty_node (??)
- *     db_dirtycnt
- *     db_d.*
- *     db.*
- *   held from:
- *     dbuf_dirty: dn_mtx, dn_dirty_mtx
- *     dbuf_dirty->dsl_dir_willuse_space: dd_lock
- *     dbuf_dirty->dbuf_new_block->dsl_dataset_block_freeable: dd_lock
- *     dbuf_undirty: dn_dirty_mtx (db_d)
- *     dbuf_write_done: dn_dirty_mtx (db_state)
- *     dbuf_*
- *     dmu_buf_update_user: none (db_d)
- *     dmu_evict_user: none (db_d) (maybe can eliminate)
- *     dbuf_find: none (db_holds)
- *     dbuf_hash_insert: none (db_holds)
- *     dmu_buf_read_array_impl: none (db_state, db_changed)
- *     dmu_sync: none (db_dirty_node, db_d)
- *     dnode_reallocate: none (db)
- *
- * dn_mtx (leaf)
- *   protects:
- *     dn_dirty_dbufs
- *     dn_ranges
- *     phys accounting
- *     dn_allocated_txg
- *     dn_free_txg
- *     dn_assigned_txg
- *     dd_assigned_tx
- *     dn_notxholds
- *     dn_dirtyctx
- *     dn_dirtyctx_firstset
- *     (dn_phys copy fields?)
- *     (dn_phys contents?)
- *   held from:
- *     dnode_*
- *     dbuf_dirty: none
- *     dbuf_sync: none (phys accounting)
- *     dbuf_undirty: none (dn_ranges, dn_dirty_dbufs)
- *     dbuf_write_done: none (phys accounting)
- *     dmu_object_info_from_dnode: none (accounting)
- *     dmu_tx_commit: none
- *     dmu_tx_hold_object_impl: none
- *     dmu_tx_try_assign: dn_notxholds(cv)
- *     dmu_tx_unassign: none
- *
- * dd_lock
- *    must be held before:
- *      ds_lock
- *      ancestors' dd_lock
- *    protects:
- *     dd_prop_cbs
- *     dd_sync_*
- *     dd_used_bytes
- *     dd_tempreserved
- *     dd_space_towrite
- *     dd_myname
- *     dd_phys accounting?
- *    held from:
- *     dsl_dir_*
- *     dsl_prop_changed_notify: none (dd_prop_cbs)
- *     dsl_prop_register: none (dd_prop_cbs)
- *     dsl_prop_unregister: none (dd_prop_cbs)
- *     dsl_dataset_block_freeable: none (dd_sync_*)
- *
- * os_lock (leaf)
- *   protects:
- *     os_dirty_dnodes
- *     os_free_dnodes
- *     os_dnodes
- *     os_downgraded_dbufs
- *     dn_dirtyblksz
- *     dn_dirty_link
- *   held from:
- *     dnode_create: none (os_dnodes)
- *     dnode_destroy: none (os_dnodes)
- *     dnode_setdirty: none (dn_dirtyblksz, os_*_dnodes)
- *     dnode_free: none (dn_dirtyblksz, os_*_dnodes)
- *
- * ds_lock
- *    protects:
- *     ds_objset
- *     ds_open_refcount
- *     ds_snapname
- *     ds_phys accounting
- *     ds_phys userrefs zapobj
- *     ds_reserved
- *    held from:
- *     dsl_dataset_*
- *
- * dr_mtx (leaf)
- *    protects:
- *     dr_children
- *    held from:
- *     dbuf_dirty
- *     dbuf_undirty
- *     dbuf_sync_indirect
- *     dnode_new_blkid
- */
-
-struct objset;
-struct dmu_pool;
-
-typedef struct dmu_xuio {
-       int next;
-       int cnt;
-       struct arc_buf **bufs;
-       iovec_t *iovp;
-} dmu_xuio_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DMU_IMPL_H */
diff --git a/module/zfs/include/sys/dmu_objset.h b/module/zfs/include/sys/dmu_objset.h
deleted file mode 100644 (file)
index c6d202e..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* Portions Copyright 2010 Robert Milkowski */
-
-#ifndef        _SYS_DMU_OBJSET_H
-#define        _SYS_DMU_OBJSET_H
-
-#include <sys/spa.h>
-#include <sys/arc.h>
-#include <sys/txg.h>
-#include <sys/zfs_context.h>
-#include <sys/dnode.h>
-#include <sys/zio.h>
-#include <sys/zil.h>
-#include <sys/sa.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern krwlock_t os_lock;
-
-struct dsl_dataset;
-struct dmu_tx;
-
-#define        OBJSET_PHYS_SIZE 2048
-#define        OBJSET_OLD_PHYS_SIZE 1024
-
-#define        OBJSET_BUF_HAS_USERUSED(buf) \
-       (arc_buf_size(buf) > OBJSET_OLD_PHYS_SIZE)
-
-#define        OBJSET_FLAG_USERACCOUNTING_COMPLETE     (1ULL<<0)
-
-typedef struct objset_phys {
-       dnode_phys_t os_meta_dnode;
-       zil_header_t os_zil_header;
-       uint64_t os_type;
-       uint64_t os_flags;
-       char os_pad[OBJSET_PHYS_SIZE - sizeof (dnode_phys_t)*3 -
-           sizeof (zil_header_t) - sizeof (uint64_t)*2];
-       dnode_phys_t os_userused_dnode;
-       dnode_phys_t os_groupused_dnode;
-} objset_phys_t;
-
-struct objset {
-       /* Immutable: */
-       struct dsl_dataset *os_dsl_dataset;
-       spa_t *os_spa;
-       arc_buf_t *os_phys_buf;
-       objset_phys_t *os_phys;
-       /*
-        * The following "special" dnodes have no parent and are exempt from
-        * dnode_move(), but they root their descendents in this objset using
-        * handles anyway, so that all access to dnodes from dbufs consistently
-        * uses handles.
-        */
-       dnode_handle_t os_meta_dnode;
-       dnode_handle_t os_userused_dnode;
-       dnode_handle_t os_groupused_dnode;
-       zilog_t *os_zil;
-
-       /* can change, under dsl_dir's locks: */
-       uint8_t os_checksum;
-       uint8_t os_compress;
-       uint8_t os_copies;
-       uint8_t os_dedup_checksum;
-       uint8_t os_dedup_verify;
-       uint8_t os_logbias;
-       uint8_t os_primary_cache;
-       uint8_t os_secondary_cache;
-       uint8_t os_sync;
-
-       /* no lock needed: */
-       struct dmu_tx *os_synctx; /* XXX sketchy */
-       blkptr_t *os_rootbp;
-       zil_header_t os_zil_header;
-       list_t os_synced_dnodes;
-       uint64_t os_flags;
-
-       /* Protected by os_obj_lock */
-       kmutex_t os_obj_lock;
-       uint64_t os_obj_next;
-
-       /* Protected by os_lock */
-       kmutex_t os_lock;
-       list_t os_dirty_dnodes[TXG_SIZE];
-       list_t os_free_dnodes[TXG_SIZE];
-       list_t os_dnodes;
-       list_t os_downgraded_dbufs;
-
-       /* stuff we store for the user */
-       kmutex_t os_user_ptr_lock;
-       void *os_user_ptr;
-
-       /* SA layout/attribute registration */
-       sa_os_t *os_sa;
-};
-
-#define        DMU_META_OBJSET         0
-#define        DMU_META_DNODE_OBJECT   0
-#define        DMU_OBJECT_IS_SPECIAL(obj) ((int64_t)(obj) <= 0)
-#define        DMU_META_DNODE(os)      ((os)->os_meta_dnode.dnh_dnode)
-#define        DMU_USERUSED_DNODE(os)  ((os)->os_userused_dnode.dnh_dnode)
-#define        DMU_GROUPUSED_DNODE(os) ((os)->os_groupused_dnode.dnh_dnode)
-
-#define        DMU_OS_IS_L2CACHEABLE(os)                               \
-       ((os)->os_secondary_cache == ZFS_CACHE_ALL ||           \
-       (os)->os_secondary_cache == ZFS_CACHE_METADATA)
-
-/* called from zpl */
-int dmu_objset_hold(const char *name, void *tag, objset_t **osp);
-int dmu_objset_own(const char *name, dmu_objset_type_t type,
-    boolean_t readonly, void *tag, objset_t **osp);
-void dmu_objset_rele(objset_t *os, void *tag);
-void dmu_objset_disown(objset_t *os, void *tag);
-int dmu_objset_from_ds(struct dsl_dataset *ds, objset_t **osp);
-
-int dmu_objset_create(const char *name, dmu_objset_type_t type, uint64_t flags,
-    void (*func)(objset_t *os, void *arg, cred_t *cr, dmu_tx_t *tx), void *arg);
-int dmu_objset_clone(const char *name, struct dsl_dataset *clone_origin,
-    uint64_t flags);
-int dmu_objset_destroy(const char *name, boolean_t defer);
-int dmu_objset_snapshot(char *fsname, char *snapname, char *tag,
-    struct nvlist *props, boolean_t recursive, boolean_t temporary, int fd);
-void dmu_objset_stats(objset_t *os, nvlist_t *nv);
-void dmu_objset_fast_stat(objset_t *os, dmu_objset_stats_t *stat);
-void dmu_objset_space(objset_t *os, uint64_t *refdbytesp, uint64_t *availbytesp,
-    uint64_t *usedobjsp, uint64_t *availobjsp);
-uint64_t dmu_objset_fsid_guid(objset_t *os);
-int dmu_objset_find(char *name, int func(const char *, void *), void *arg,
-    int flags);
-int dmu_objset_find_spa(spa_t *spa, const char *name,
-    int func(spa_t *, uint64_t, const char *, void *), void *arg, int flags);
-int dmu_objset_prefetch(const char *name, void *arg);
-void dmu_objset_byteswap(void *buf, size_t size);
-int dmu_objset_evict_dbufs(objset_t *os);
-timestruc_t dmu_objset_snap_cmtime(objset_t *os);
-
-/* called from dsl */
-void dmu_objset_sync(objset_t *os, zio_t *zio, dmu_tx_t *tx);
-boolean_t dmu_objset_is_dirty(objset_t *os, uint64_t txg);
-boolean_t dmu_objset_is_dirty_anywhere(objset_t *os);
-objset_t *dmu_objset_create_impl(spa_t *spa, struct dsl_dataset *ds,
-    blkptr_t *bp, dmu_objset_type_t type, dmu_tx_t *tx);
-int dmu_objset_open_impl(spa_t *spa, struct dsl_dataset *ds, blkptr_t *bp,
-    objset_t **osp);
-void dmu_objset_evict(objset_t *os);
-void dmu_objset_do_userquota_updates(objset_t *os, dmu_tx_t *tx);
-void dmu_objset_userquota_get_ids(dnode_t *dn, boolean_t before, dmu_tx_t *tx);
-boolean_t dmu_objset_userused_enabled(objset_t *os);
-int dmu_objset_userspace_upgrade(objset_t *os);
-boolean_t dmu_objset_userspace_present(objset_t *os);
-
-void dmu_objset_init(void);
-void dmu_objset_fini(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DMU_OBJSET_H */
diff --git a/module/zfs/include/sys/dmu_traverse.h b/module/zfs/include/sys/dmu_traverse.h
deleted file mode 100644 (file)
index 5b326cd..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DMU_TRAVERSE_H
-#define        _SYS_DMU_TRAVERSE_H
-
-#include <sys/zfs_context.h>
-#include <sys/spa.h>
-#include <sys/zio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct dnode_phys;
-struct dsl_dataset;
-struct zilog;
-struct arc_buf;
-
-typedef int (blkptr_cb_t)(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
-    struct arc_buf *pbuf, const zbookmark_t *zb, const struct dnode_phys *dnp,
-    void *arg);
-
-#define        TRAVERSE_PRE                    (1<<0)
-#define        TRAVERSE_POST                   (1<<1)
-#define        TRAVERSE_PREFETCH_METADATA      (1<<2)
-#define        TRAVERSE_PREFETCH_DATA          (1<<3)
-#define        TRAVERSE_PREFETCH (TRAVERSE_PREFETCH_METADATA | TRAVERSE_PREFETCH_DATA)
-#define        TRAVERSE_HARD                   (1<<4)
-
-/* Special traverse error return value to indicate skipping of children */
-#define        TRAVERSE_VISIT_NO_CHILDREN      -1
-
-int traverse_dataset(struct dsl_dataset *ds,
-    uint64_t txg_start, int flags, blkptr_cb_t func, void *arg);
-int traverse_pool(spa_t *spa,
-    uint64_t txg_start, int flags, blkptr_cb_t func, void *arg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DMU_TRAVERSE_H */
diff --git a/module/zfs/include/sys/dmu_tx.h b/module/zfs/include/sys/dmu_tx.h
deleted file mode 100644 (file)
index c5ea50f..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _SYS_DMU_TX_H
-#define        _SYS_DMU_TX_H
-
-#include <sys/inttypes.h>
-#include <sys/dmu.h>
-#include <sys/txg.h>
-#include <sys/refcount.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct dmu_buf_impl;
-struct dmu_tx_hold;
-struct dnode_link;
-struct dsl_pool;
-struct dnode;
-struct dsl_dir;
-
-struct dmu_tx {
-       /*
-        * No synchronization is needed because a tx can only be handled
-        * by one thread.
-        */
-       list_t tx_holds; /* list of dmu_tx_hold_t */
-       objset_t *tx_objset;
-       struct dsl_dir *tx_dir;
-       struct dsl_pool *tx_pool;
-       uint64_t tx_txg;
-       uint64_t tx_lastsnap_txg;
-       uint64_t tx_lasttried_txg;
-       txg_handle_t tx_txgh;
-       void *tx_tempreserve_cookie;
-       struct dmu_tx_hold *tx_needassign_txh;
-       list_t tx_callbacks; /* list of dmu_tx_callback_t on this dmu_tx */
-       uint8_t tx_anyobj;
-       int tx_err;
-#ifdef ZFS_DEBUG
-       uint64_t tx_space_towrite;
-       uint64_t tx_space_tofree;
-       uint64_t tx_space_tooverwrite;
-       uint64_t tx_space_tounref;
-       refcount_t tx_space_written;
-       refcount_t tx_space_freed;
-#endif
-};
-
-enum dmu_tx_hold_type {
-       THT_NEWOBJECT,
-       THT_WRITE,
-       THT_BONUS,
-       THT_FREE,
-       THT_ZAP,
-       THT_SPACE,
-       THT_SPILL,
-       THT_NUMTYPES
-};
-
-typedef struct dmu_tx_hold {
-       dmu_tx_t *txh_tx;
-       list_node_t txh_node;
-       struct dnode *txh_dnode;
-       uint64_t txh_space_towrite;
-       uint64_t txh_space_tofree;
-       uint64_t txh_space_tooverwrite;
-       uint64_t txh_space_tounref;
-       uint64_t txh_memory_tohold;
-       uint64_t txh_fudge;
-#ifdef ZFS_DEBUG
-       enum dmu_tx_hold_type txh_type;
-       uint64_t txh_arg1;
-       uint64_t txh_arg2;
-#endif
-} dmu_tx_hold_t;
-
-typedef struct dmu_tx_callback {
-       list_node_t             dcb_node;    /* linked to tx_callbacks list */
-       dmu_tx_callback_func_t  *dcb_func;   /* caller function pointer */
-       void                    *dcb_data;   /* caller private data */
-} dmu_tx_callback_t;
-
-/*
- * These routines are defined in dmu.h, and are called by the user.
- */
-dmu_tx_t *dmu_tx_create(objset_t *dd);
-int dmu_tx_assign(dmu_tx_t *tx, uint64_t txg_how);
-void dmu_tx_commit(dmu_tx_t *tx);
-void dmu_tx_abort(dmu_tx_t *tx);
-uint64_t dmu_tx_get_txg(dmu_tx_t *tx);
-void dmu_tx_wait(dmu_tx_t *tx);
-
-void dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *dcb_func,
-    void *dcb_data);
-void dmu_tx_do_callbacks(list_t *cb_list, int error);
-
-/*
- * These routines are defined in dmu_spa.h, and are called by the SPA.
- */
-extern dmu_tx_t *dmu_tx_create_assigned(struct dsl_pool *dp, uint64_t txg);
-
-/*
- * These routines are only called by the DMU.
- */
-dmu_tx_t *dmu_tx_create_dd(dsl_dir_t *dd);
-int dmu_tx_is_syncing(dmu_tx_t *tx);
-int dmu_tx_private_ok(dmu_tx_t *tx);
-void dmu_tx_add_new_object(dmu_tx_t *tx, objset_t *os, uint64_t object);
-void dmu_tx_willuse_space(dmu_tx_t *tx, int64_t delta);
-void dmu_tx_dirty_buf(dmu_tx_t *tx, struct dmu_buf_impl *db);
-int dmu_tx_holds(dmu_tx_t *tx, uint64_t object);
-void dmu_tx_hold_space(dmu_tx_t *tx, uint64_t space);
-
-#ifdef ZFS_DEBUG
-#define        DMU_TX_DIRTY_BUF(tx, db)        dmu_tx_dirty_buf(tx, db)
-#else
-#define        DMU_TX_DIRTY_BUF(tx, db)
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DMU_TX_H */
diff --git a/module/zfs/include/sys/dmu_zfetch.h b/module/zfs/include/sys/dmu_zfetch.h
deleted file mode 100644 (file)
index 78cadd2..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _DFETCH_H
-#define        _DFETCH_H
-
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern uint64_t        zfetch_array_rd_sz;
-
-struct dnode;                          /* so we can reference dnode */
-
-typedef enum zfetch_dirn {
-       ZFETCH_FORWARD = 1,             /* prefetch increasing block numbers */
-       ZFETCH_BACKWARD = -1            /* prefetch decreasing block numbers */
-} zfetch_dirn_t;
-
-typedef struct zstream {
-       uint64_t        zst_offset;     /* offset of starting block in range */
-       uint64_t        zst_len;        /* length of range, in blocks */
-       zfetch_dirn_t   zst_direction;  /* direction of prefetch */
-       uint64_t        zst_stride;     /* length of stride, in blocks */
-       uint64_t        zst_ph_offset;  /* prefetch offset, in blocks */
-       uint64_t        zst_cap;        /* prefetch limit (cap), in blocks */
-       kmutex_t        zst_lock;       /* protects stream */
-       clock_t         zst_last;       /* lbolt of last prefetch */
-       avl_node_t      zst_node;       /* embed avl node here */
-} zstream_t;
-
-typedef struct zfetch {
-       krwlock_t       zf_rwlock;      /* protects zfetch structure */
-       list_t          zf_stream;      /* AVL tree of zstream_t's */
-       struct dnode    *zf_dnode;      /* dnode that owns this zfetch */
-       uint32_t        zf_stream_cnt;  /* # of active streams */
-       uint64_t        zf_alloc_fail;  /* # of failed attempts to alloc strm */
-} zfetch_t;
-
-void           zfetch_init(void);
-void           zfetch_fini(void);
-
-void           dmu_zfetch_init(zfetch_t *, struct dnode *);
-void           dmu_zfetch_rele(zfetch_t *);
-void           dmu_zfetch(zfetch_t *, uint64_t, uint64_t, int);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _DFETCH_H */
diff --git a/module/zfs/include/sys/dnode.h b/module/zfs/include/sys/dnode.h
deleted file mode 100644 (file)
index 9ad4be3..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DNODE_H
-#define        _SYS_DNODE_H
-
-#include <sys/zfs_context.h>
-#include <sys/avl.h>
-#include <sys/spa.h>
-#include <sys/txg.h>
-#include <sys/zio.h>
-#include <sys/refcount.h>
-#include <sys/dmu_zfetch.h>
-#include <sys/zrlock.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * dnode_hold() flags.
- */
-#define        DNODE_MUST_BE_ALLOCATED 1
-#define        DNODE_MUST_BE_FREE      2
-
-/*
- * dnode_next_offset() flags.
- */
-#define        DNODE_FIND_HOLE         1
-#define        DNODE_FIND_BACKWARDS    2
-#define        DNODE_FIND_HAVELOCK     4
-
-/*
- * Fixed constants.
- */
-#define        DNODE_SHIFT             9       /* 512 bytes */
-#define        DN_MIN_INDBLKSHIFT      10      /* 1k */
-#define        DN_MAX_INDBLKSHIFT      14      /* 16k */
-#define        DNODE_BLOCK_SHIFT       14      /* 16k */
-#define        DNODE_CORE_SIZE         64      /* 64 bytes for dnode sans blkptrs */
-#define        DN_MAX_OBJECT_SHIFT     48      /* 256 trillion (zfs_fid_t limit) */
-#define        DN_MAX_OFFSET_SHIFT     64      /* 2^64 bytes in a dnode */
-
-/*
- * dnode id flags
- *
- * Note: a file will never ever have its
- * ids moved from bonus->spill
- * and only in a crypto environment would it be on spill
- */
-#define        DN_ID_CHKED_BONUS       0x1
-#define        DN_ID_CHKED_SPILL       0x2
-#define        DN_ID_OLD_EXIST         0x4
-#define        DN_ID_NEW_EXIST         0x8
-
-/*
- * Derived constants.
- */
-#define        DNODE_SIZE      (1 << DNODE_SHIFT)
-#define        DN_MAX_NBLKPTR  ((DNODE_SIZE - DNODE_CORE_SIZE) >> SPA_BLKPTRSHIFT)
-#define        DN_MAX_BONUSLEN (DNODE_SIZE - DNODE_CORE_SIZE - (1 << SPA_BLKPTRSHIFT))
-#define        DN_MAX_OBJECT   (1ULL << DN_MAX_OBJECT_SHIFT)
-#define        DN_ZERO_BONUSLEN        (DN_MAX_BONUSLEN + 1)
-#define        DN_KILL_SPILLBLK (1)
-
-#define        DNODES_PER_BLOCK_SHIFT  (DNODE_BLOCK_SHIFT - DNODE_SHIFT)
-#define        DNODES_PER_BLOCK        (1ULL << DNODES_PER_BLOCK_SHIFT)
-#define        DNODES_PER_LEVEL_SHIFT  (DN_MAX_INDBLKSHIFT - SPA_BLKPTRSHIFT)
-#define        DNODES_PER_LEVEL        (1ULL << DNODES_PER_LEVEL_SHIFT)
-
-/* The +2 here is a cheesy way to round up */
-#define        DN_MAX_LEVELS   (2 + ((DN_MAX_OFFSET_SHIFT - SPA_MINBLOCKSHIFT) / \
-       (DN_MIN_INDBLKSHIFT - SPA_BLKPTRSHIFT)))
-
-#define        DN_BONUS(dnp)   ((void*)((dnp)->dn_bonus + \
-       (((dnp)->dn_nblkptr - 1) * sizeof (blkptr_t))))
-
-#define        DN_USED_BYTES(dnp) (((dnp)->dn_flags & DNODE_FLAG_USED_BYTES) ? \
-       (dnp)->dn_used : (dnp)->dn_used << SPA_MINBLOCKSHIFT)
-
-#define        EPB(blkshift, typeshift)        (1 << (blkshift - typeshift))
-
-struct dmu_buf_impl;
-struct objset;
-struct zio;
-
-enum dnode_dirtycontext {
-       DN_UNDIRTIED,
-       DN_DIRTY_OPEN,
-       DN_DIRTY_SYNC
-};
-
-/* Is dn_used in bytes?  if not, it's in multiples of SPA_MINBLOCKSIZE */
-#define        DNODE_FLAG_USED_BYTES           (1<<0)
-#define        DNODE_FLAG_USERUSED_ACCOUNTED   (1<<1)
-
-/* Does dnode have a SA spill blkptr in bonus? */
-#define        DNODE_FLAG_SPILL_BLKPTR (1<<2)
-
-typedef struct dnode_phys {
-       uint8_t dn_type;                /* dmu_object_type_t */
-       uint8_t dn_indblkshift;         /* ln2(indirect block size) */
-       uint8_t dn_nlevels;             /* 1=dn_blkptr->data blocks */
-       uint8_t dn_nblkptr;             /* length of dn_blkptr */
-       uint8_t dn_bonustype;           /* type of data in bonus buffer */
-       uint8_t dn_checksum;            /* ZIO_CHECKSUM type */
-       uint8_t dn_compress;            /* ZIO_COMPRESS type */
-       uint8_t dn_flags;               /* DNODE_FLAG_* */
-       uint16_t dn_datablkszsec;       /* data block size in 512b sectors */
-       uint16_t dn_bonuslen;           /* length of dn_bonus */
-       uint8_t dn_pad2[4];
-
-       /* accounting is protected by dn_dirty_mtx */
-       uint64_t dn_maxblkid;           /* largest allocated block ID */
-       uint64_t dn_used;               /* bytes (or sectors) of disk space */
-
-       uint64_t dn_pad3[4];
-
-       blkptr_t dn_blkptr[1];
-       uint8_t dn_bonus[DN_MAX_BONUSLEN - sizeof (blkptr_t)];
-       blkptr_t dn_spill;
-} dnode_phys_t;
-
-typedef struct dnode {
-       /*
-        * dn_struct_rwlock protects the structure of the dnode,
-        * including the number of levels of indirection (dn_nlevels),
-        * dn_maxblkid, and dn_next_*
-        */
-       krwlock_t dn_struct_rwlock;
-
-       /* Our link on dn_objset->os_dnodes list; protected by os_lock.  */
-       list_node_t dn_link;
-
-       /* immutable: */
-       struct objset *dn_objset;
-       uint64_t dn_object;
-       struct dmu_buf_impl *dn_dbuf;
-       struct dnode_handle *dn_handle;
-       dnode_phys_t *dn_phys; /* pointer into dn->dn_dbuf->db.db_data */
-
-       /*
-        * Copies of stuff in dn_phys.  They're valid in the open
-        * context (eg. even before the dnode is first synced).
-        * Where necessary, these are protected by dn_struct_rwlock.
-        */
-       dmu_object_type_t dn_type;      /* object type */
-       uint16_t dn_bonuslen;           /* bonus length */
-       uint8_t dn_bonustype;           /* bonus type */
-       uint8_t dn_nblkptr;             /* number of blkptrs (immutable) */
-       uint8_t dn_checksum;            /* ZIO_CHECKSUM type */
-       uint8_t dn_compress;            /* ZIO_COMPRESS type */
-       uint8_t dn_nlevels;
-       uint8_t dn_indblkshift;
-       uint8_t dn_datablkshift;        /* zero if blksz not power of 2! */
-       uint8_t dn_moved;               /* Has this dnode been moved? */
-       uint16_t dn_datablkszsec;       /* in 512b sectors */
-       uint32_t dn_datablksz;          /* in bytes */
-       uint64_t dn_maxblkid;
-       uint8_t dn_next_nblkptr[TXG_SIZE];
-       uint8_t dn_next_nlevels[TXG_SIZE];
-       uint8_t dn_next_indblkshift[TXG_SIZE];
-       uint8_t dn_next_bonustype[TXG_SIZE];
-       uint8_t dn_rm_spillblk[TXG_SIZE];       /* for removing spill blk */
-       uint16_t dn_next_bonuslen[TXG_SIZE];
-       uint32_t dn_next_blksz[TXG_SIZE];       /* next block size in bytes */
-
-       /* protected by dn_dbufs_mtx; declared here to fill 32-bit hole */
-       uint32_t dn_dbufs_count;        /* count of dn_dbufs */
-
-       /* protected by os_lock: */
-       list_node_t dn_dirty_link[TXG_SIZE];    /* next on dataset's dirty */
-
-       /* protected by dn_mtx: */
-       kmutex_t dn_mtx;
-       list_t dn_dirty_records[TXG_SIZE];
-       avl_tree_t dn_ranges[TXG_SIZE];
-       uint64_t dn_allocated_txg;
-       uint64_t dn_free_txg;
-       uint64_t dn_assigned_txg;
-       kcondvar_t dn_notxholds;
-       enum dnode_dirtycontext dn_dirtyctx;
-       uint8_t *dn_dirtyctx_firstset;          /* dbg: contents meaningless */
-
-       /* protected by own devices */
-       refcount_t dn_tx_holds;
-       refcount_t dn_holds;
-
-       kmutex_t dn_dbufs_mtx;
-       list_t dn_dbufs;                /* descendent dbufs */
-
-       /* protected by dn_struct_rwlock */
-       struct dmu_buf_impl *dn_bonus;  /* bonus buffer dbuf */
-
-       boolean_t dn_have_spill;        /* have spill or are spilling */
-
-       /* parent IO for current sync write */
-       zio_t *dn_zio;
-
-       /* used in syncing context */
-       uint64_t dn_oldused;    /* old phys used bytes */
-       uint64_t dn_oldflags;   /* old phys dn_flags */
-       uint64_t dn_olduid, dn_oldgid;
-       uint64_t dn_newuid, dn_newgid;
-       int dn_id_flags;
-
-       /* holds prefetch structure */
-       struct zfetch   dn_zfetch;
-} dnode_t;
-
-/*
- * Adds a level of indirection between the dbuf and the dnode to avoid
- * iterating descendent dbufs in dnode_move(). Handles are not allocated
- * individually, but as an array of child dnodes in dnode_hold_impl().
- */
-typedef struct dnode_handle {
-       /* Protects dnh_dnode from modification by dnode_move(). */
-       zrlock_t dnh_zrlock;
-       dnode_t *dnh_dnode;
-} dnode_handle_t;
-
-typedef struct dnode_children {
-       size_t dnc_count;               /* number of children */
-       dnode_handle_t dnc_children[1]; /* sized dynamically */
-} dnode_children_t;
-
-typedef struct free_range {
-       avl_node_t fr_node;
-       uint64_t fr_blkid;
-       uint64_t fr_nblks;
-} free_range_t;
-
-dnode_t *dnode_special_open(struct objset *dd, dnode_phys_t *dnp,
-    uint64_t object, dnode_handle_t *dnh);
-void dnode_special_close(dnode_handle_t *dnh);
-
-void dnode_setbonuslen(dnode_t *dn, int newsize, dmu_tx_t *tx);
-void dnode_setbonus_type(dnode_t *dn, dmu_object_type_t, dmu_tx_t *tx);
-void dnode_rm_spill(dnode_t *dn, dmu_tx_t *tx);
-
-int dnode_hold(struct objset *dd, uint64_t object,
-    void *ref, dnode_t **dnp);
-int dnode_hold_impl(struct objset *dd, uint64_t object, int flag,
-    void *ref, dnode_t **dnp);
-boolean_t dnode_add_ref(dnode_t *dn, void *ref);
-void dnode_rele(dnode_t *dn, void *ref);
-void dnode_setdirty(dnode_t *dn, dmu_tx_t *tx);
-void dnode_sync(dnode_t *dn, dmu_tx_t *tx);
-void dnode_allocate(dnode_t *dn, dmu_object_type_t ot, int blocksize, int ibs,
-    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
-void dnode_reallocate(dnode_t *dn, dmu_object_type_t ot, int blocksize,
-    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
-void dnode_free(dnode_t *dn, dmu_tx_t *tx);
-void dnode_byteswap(dnode_phys_t *dnp);
-void dnode_buf_byteswap(void *buf, size_t size);
-void dnode_verify(dnode_t *dn);
-int dnode_set_blksz(dnode_t *dn, uint64_t size, int ibs, dmu_tx_t *tx);
-uint64_t dnode_current_max_length(dnode_t *dn);
-void dnode_free_range(dnode_t *dn, uint64_t off, uint64_t len, dmu_tx_t *tx);
-void dnode_clear_range(dnode_t *dn, uint64_t blkid,
-    uint64_t nblks, dmu_tx_t *tx);
-void dnode_diduse_space(dnode_t *dn, int64_t space);
-void dnode_willuse_space(dnode_t *dn, int64_t space, dmu_tx_t *tx);
-void dnode_new_blkid(dnode_t *dn, uint64_t blkid, dmu_tx_t *tx, boolean_t);
-uint64_t dnode_block_freed(dnode_t *dn, uint64_t blkid);
-void dnode_init(void);
-void dnode_fini(void);
-int dnode_next_offset(dnode_t *dn, int flags, uint64_t *off,
-    int minlvl, uint64_t blkfill, uint64_t txg);
-void dnode_evict_dbufs(dnode_t *dn);
-
-#ifdef ZFS_DEBUG
-
-/*
- * There should be a ## between the string literal and fmt, to make it
- * clear that we're joining two strings together, but that piece of shit
- * gcc doesn't support that preprocessor token.
- */
-#define        dprintf_dnode(dn, fmt, ...) do { \
-       if (zfs_flags & ZFS_DEBUG_DPRINTF) { \
-       char __db_buf[32]; \
-       uint64_t __db_obj = (dn)->dn_object; \
-       if (__db_obj == DMU_META_DNODE_OBJECT) \
-               (void) strcpy(__db_buf, "mdn"); \
-       else \
-               (void) snprintf(__db_buf, sizeof (__db_buf), "%lld", \
-                   (u_longlong_t)__db_obj);\
-       dprintf_ds((dn)->dn_objset->os_dsl_dataset, "obj=%s " fmt, \
-           __db_buf, __VA_ARGS__); \
-       } \
-_NOTE(CONSTCOND) } while (0)
-
-#define        DNODE_VERIFY(dn)                dnode_verify(dn)
-#define        FREE_VERIFY(db, start, end, tx) free_verify(db, start, end, tx)
-
-#else
-
-#define        dprintf_dnode(db, fmt, ...)
-#define        DNODE_VERIFY(dn)
-#define        FREE_VERIFY(db, start, end, tx)
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DNODE_H */
diff --git a/module/zfs/include/sys/dsl_dataset.h b/module/zfs/include/sys/dsl_dataset.h
deleted file mode 100644 (file)
index 22733d0..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DSL_DATASET_H
-#define        _SYS_DSL_DATASET_H
-
-#include <sys/dmu.h>
-#include <sys/spa.h>
-#include <sys/txg.h>
-#include <sys/zio.h>
-#include <sys/bplist.h>
-#include <sys/dsl_synctask.h>
-#include <sys/zfs_context.h>
-#include <sys/dsl_deadlist.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct dsl_dataset;
-struct dsl_dir;
-struct dsl_pool;
-
-#define        DS_FLAG_INCONSISTENT    (1ULL<<0)
-#define        DS_IS_INCONSISTENT(ds)  \
-       ((ds)->ds_phys->ds_flags & DS_FLAG_INCONSISTENT)
-/*
- * NB: nopromote can not yet be set, but we want support for it in this
- * on-disk version, so that we don't need to upgrade for it later.  It
- * will be needed when we implement 'zfs split' (where the split off
- * clone should not be promoted).
- */
-#define        DS_FLAG_NOPROMOTE       (1ULL<<1)
-
-/*
- * DS_FLAG_UNIQUE_ACCURATE is set if ds_unique_bytes has been correctly
- * calculated for head datasets (starting with SPA_VERSION_UNIQUE_ACCURATE,
- * refquota/refreservations).
- */
-#define        DS_FLAG_UNIQUE_ACCURATE (1ULL<<2)
-
-/*
- * DS_FLAG_DEFER_DESTROY is set after 'zfs destroy -d' has been called
- * on a dataset. This allows the dataset to be destroyed using 'zfs release'.
- */
-#define        DS_FLAG_DEFER_DESTROY   (1ULL<<3)
-#define        DS_IS_DEFER_DESTROY(ds) \
-       ((ds)->ds_phys->ds_flags & DS_FLAG_DEFER_DESTROY)
-
-/*
- * DS_FLAG_CI_DATASET is set if the dataset contains a file system whose
- * name lookups should be performed case-insensitively.
- */
-#define        DS_FLAG_CI_DATASET      (1ULL<<16)
-
-typedef struct dsl_dataset_phys {
-       uint64_t ds_dir_obj;            /* DMU_OT_DSL_DIR */
-       uint64_t ds_prev_snap_obj;      /* DMU_OT_DSL_DATASET */
-       uint64_t ds_prev_snap_txg;
-       uint64_t ds_next_snap_obj;      /* DMU_OT_DSL_DATASET */
-       uint64_t ds_snapnames_zapobj;   /* DMU_OT_DSL_DS_SNAP_MAP 0 for snaps */
-       uint64_t ds_num_children;       /* clone/snap children; ==0 for head */
-       uint64_t ds_creation_time;      /* seconds since 1970 */
-       uint64_t ds_creation_txg;
-       uint64_t ds_deadlist_obj;       /* DMU_OT_DEADLIST */
-       uint64_t ds_used_bytes;
-       uint64_t ds_compressed_bytes;
-       uint64_t ds_uncompressed_bytes;
-       uint64_t ds_unique_bytes;       /* only relevant to snapshots */
-       /*
-        * The ds_fsid_guid is a 56-bit ID that can change to avoid
-        * collisions.  The ds_guid is a 64-bit ID that will never
-        * change, so there is a small probability that it will collide.
-        */
-       uint64_t ds_fsid_guid;
-       uint64_t ds_guid;
-       uint64_t ds_flags;              /* DS_FLAG_* */
-       blkptr_t ds_bp;
-       uint64_t ds_next_clones_obj;    /* DMU_OT_DSL_CLONES */
-       uint64_t ds_props_obj;          /* DMU_OT_DSL_PROPS for snaps */
-       uint64_t ds_userrefs_obj;       /* DMU_OT_USERREFS */
-       uint64_t ds_pad[5]; /* pad out to 320 bytes for good measure */
-} dsl_dataset_phys_t;
-
-typedef struct dsl_dataset {
-       /* Immutable: */
-       struct dsl_dir *ds_dir;
-       dsl_dataset_phys_t *ds_phys;
-       dmu_buf_t *ds_dbuf;
-       uint64_t ds_object;
-       uint64_t ds_fsid_guid;
-
-       /* only used in syncing context, only valid for non-snapshots: */
-       struct dsl_dataset *ds_prev;
-
-       /* has internal locking: */
-       dsl_deadlist_t ds_deadlist;
-       bplist_t ds_pending_deadlist;
-
-       /* to protect against multiple concurrent incremental recv */
-       kmutex_t ds_recvlock;
-
-       /* protected by lock on pool's dp_dirty_datasets list */
-       txg_node_t ds_dirty_link;
-       list_node_t ds_synced_link;
-
-       /*
-        * ds_phys->ds_<accounting> is also protected by ds_lock.
-        * Protected by ds_lock:
-        */
-       kmutex_t ds_lock;
-       objset_t *ds_objset;
-       uint64_t ds_userrefs;
-
-       /*
-        * ds_owner is protected by the ds_rwlock and the ds_lock
-        */
-       krwlock_t ds_rwlock;
-       kcondvar_t ds_exclusive_cv;
-       void *ds_owner;
-
-       /* no locking; only for making guesses */
-       uint64_t ds_trysnap_txg;
-
-       /* for objset_open() */
-       kmutex_t ds_opening_lock;
-
-       uint64_t ds_reserved;   /* cached refreservation */
-       uint64_t ds_quota;      /* cached refquota */
-
-       /* Protected by ds_lock; keep at end of struct for better locality */
-       char ds_snapname[MAXNAMELEN];
-} dsl_dataset_t;
-
-struct dsl_ds_destroyarg {
-       dsl_dataset_t *ds;              /* ds to destroy */
-       dsl_dataset_t *rm_origin;       /* also remove our origin? */
-       boolean_t is_origin_rm;         /* set if removing origin snap */
-       boolean_t defer;                /* destroy -d requested? */
-       boolean_t releasing;            /* destroying due to release? */
-       boolean_t need_prep;            /* do we need to retry due to EBUSY? */
-};
-
-/*
- * The max length of a temporary tag prefix is the number of hex digits
- * required to express UINT64_MAX plus one for the hyphen.
- */
-#define        MAX_TAG_PREFIX_LEN      17
-
-struct dsl_ds_holdarg {
-       dsl_sync_task_group_t *dstg;
-       char *htag;
-       char *snapname;
-       boolean_t recursive;
-       boolean_t gotone;
-       boolean_t temphold;
-       char failed[MAXPATHLEN];
-};
-
-#define        dsl_dataset_is_snapshot(ds) \
-       ((ds)->ds_phys->ds_num_children != 0)
-
-#define        DS_UNIQUE_IS_ACCURATE(ds)       \
-       (((ds)->ds_phys->ds_flags & DS_FLAG_UNIQUE_ACCURATE) != 0)
-
-int dsl_dataset_hold(const char *name, void *tag, dsl_dataset_t **dsp);
-int dsl_dataset_hold_obj(struct dsl_pool *dp, uint64_t dsobj,
-    void *tag, dsl_dataset_t **);
-int dsl_dataset_own(const char *name, boolean_t inconsistentok,
-    void *tag, dsl_dataset_t **dsp);
-int dsl_dataset_own_obj(struct dsl_pool *dp, uint64_t dsobj,
-    boolean_t inconsistentok, void *tag, dsl_dataset_t **dsp);
-void dsl_dataset_name(dsl_dataset_t *ds, char *name);
-void dsl_dataset_rele(dsl_dataset_t *ds, void *tag);
-void dsl_dataset_disown(dsl_dataset_t *ds, void *tag);
-void dsl_dataset_drop_ref(dsl_dataset_t *ds, void *tag);
-boolean_t dsl_dataset_tryown(dsl_dataset_t *ds, boolean_t inconsistentok,
-    void *tag);
-void dsl_dataset_make_exclusive(dsl_dataset_t *ds, void *tag);
-void dsl_register_onexit_hold_cleanup(dsl_dataset_t *ds, const char *htag,
-    minor_t minor);
-uint64_t dsl_dataset_create_sync(dsl_dir_t *pds, const char *lastname,
-    dsl_dataset_t *origin, uint64_t flags, cred_t *, dmu_tx_t *);
-uint64_t dsl_dataset_create_sync_dd(dsl_dir_t *dd, dsl_dataset_t *origin,
-    uint64_t flags, dmu_tx_t *tx);
-int dsl_dataset_destroy(dsl_dataset_t *ds, void *tag, boolean_t defer);
-int dsl_snapshots_destroy(char *fsname, char *snapname, boolean_t defer);
-dsl_checkfunc_t dsl_dataset_destroy_check;
-dsl_syncfunc_t dsl_dataset_destroy_sync;
-dsl_checkfunc_t dsl_dataset_snapshot_check;
-dsl_syncfunc_t dsl_dataset_snapshot_sync;
-dsl_syncfunc_t dsl_dataset_user_hold_sync;
-int dsl_dataset_rename(char *name, const char *newname, boolean_t recursive);
-int dsl_dataset_promote(const char *name, char *conflsnap);
-int dsl_dataset_clone_swap(dsl_dataset_t *clone, dsl_dataset_t *origin_head,
-    boolean_t force);
-int dsl_dataset_user_hold(char *dsname, char *snapname, char *htag,
-    boolean_t recursive, boolean_t temphold, int cleanup_fd);
-int dsl_dataset_user_hold_for_send(dsl_dataset_t *ds, char *htag,
-    boolean_t temphold);
-int dsl_dataset_user_release(char *dsname, char *snapname, char *htag,
-    boolean_t recursive);
-int dsl_dataset_user_release_tmp(struct dsl_pool *dp, uint64_t dsobj,
-    char *htag, boolean_t retry);
-int dsl_dataset_get_holds(const char *dsname, nvlist_t **nvp);
-
-blkptr_t *dsl_dataset_get_blkptr(dsl_dataset_t *ds);
-void dsl_dataset_set_blkptr(dsl_dataset_t *ds, blkptr_t *bp, dmu_tx_t *tx);
-
-spa_t *dsl_dataset_get_spa(dsl_dataset_t *ds);
-
-boolean_t dsl_dataset_modified_since_lastsnap(dsl_dataset_t *ds);
-
-void dsl_dataset_sync(dsl_dataset_t *os, zio_t *zio, dmu_tx_t *tx);
-
-void dsl_dataset_block_born(dsl_dataset_t *ds, const blkptr_t *bp,
-    dmu_tx_t *tx);
-int dsl_dataset_block_kill(dsl_dataset_t *ds, const blkptr_t *bp,
-    dmu_tx_t *tx, boolean_t async);
-boolean_t dsl_dataset_block_freeable(dsl_dataset_t *ds, const blkptr_t *bp,
-    uint64_t blk_birth);
-uint64_t dsl_dataset_prev_snap_txg(dsl_dataset_t *ds);
-
-void dsl_dataset_dirty(dsl_dataset_t *ds, dmu_tx_t *tx);
-void dsl_dataset_stats(dsl_dataset_t *os, nvlist_t *nv);
-void dsl_dataset_fast_stat(dsl_dataset_t *ds, dmu_objset_stats_t *stat);
-void dsl_dataset_space(dsl_dataset_t *ds,
-    uint64_t *refdbytesp, uint64_t *availbytesp,
-    uint64_t *usedobjsp, uint64_t *availobjsp);
-uint64_t dsl_dataset_fsid_guid(dsl_dataset_t *ds);
-
-int dsl_dsobj_to_dsname(char *pname, uint64_t obj, char *buf);
-
-int dsl_dataset_check_quota(dsl_dataset_t *ds, boolean_t check_quota,
-    uint64_t asize, uint64_t inflight, uint64_t *used,
-    uint64_t *ref_rsrv);
-int dsl_dataset_set_quota(const char *dsname, zprop_source_t source,
-    uint64_t quota);
-dsl_syncfunc_t dsl_dataset_set_quota_sync;
-int dsl_dataset_set_reservation(const char *dsname, zprop_source_t source,
-    uint64_t reservation);
-
-int dsl_destroy_inconsistent(const char *dsname, void *arg);
-
-#ifdef ZFS_DEBUG
-#define        dprintf_ds(ds, fmt, ...) do { \
-       if (zfs_flags & ZFS_DEBUG_DPRINTF) { \
-       char *__ds_name = kmem_alloc(MAXNAMELEN, KM_SLEEP); \
-       dsl_dataset_name(ds, __ds_name); \
-       dprintf("ds=%s " fmt, __ds_name, __VA_ARGS__); \
-       kmem_free(__ds_name, MAXNAMELEN); \
-       } \
-_NOTE(CONSTCOND) } while (0)
-#else
-#define        dprintf_ds(dd, fmt, ...)
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DSL_DATASET_H */
diff --git a/module/zfs/include/sys/dsl_deadlist.h b/module/zfs/include/sys/dsl_deadlist.h
deleted file mode 100644 (file)
index d2c16d7..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DSL_DEADLIST_H
-#define        _SYS_DSL_DEADLIST_H
-
-#include <sys/bpobj.h>
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct dmu_buf;
-struct dsl_dataset;
-
-typedef struct dsl_deadlist_phys {
-       uint64_t dl_used;
-       uint64_t dl_comp;
-       uint64_t dl_uncomp;
-       uint64_t dl_pad[37]; /* pad out to 320b for future expansion */
-} dsl_deadlist_phys_t;
-
-typedef struct dsl_deadlist {
-       objset_t *dl_os;
-       uint64_t dl_object;
-       avl_tree_t dl_tree;
-       boolean_t dl_havetree;
-       struct dmu_buf *dl_dbuf;
-       dsl_deadlist_phys_t *dl_phys;
-       kmutex_t dl_lock;
-
-       /* if it's the old on-disk format: */
-       bpobj_t dl_bpobj;
-       boolean_t dl_oldfmt;
-} dsl_deadlist_t;
-
-typedef struct dsl_deadlist_entry {
-       avl_node_t dle_node;
-       uint64_t dle_mintxg;
-       bpobj_t dle_bpobj;
-} dsl_deadlist_entry_t;
-
-void dsl_deadlist_open(dsl_deadlist_t *dl, objset_t *os, uint64_t object);
-void dsl_deadlist_close(dsl_deadlist_t *dl);
-uint64_t dsl_deadlist_alloc(objset_t *os, dmu_tx_t *tx);
-void dsl_deadlist_free(objset_t *os, uint64_t dlobj, dmu_tx_t *tx);
-void dsl_deadlist_insert(dsl_deadlist_t *dl, const blkptr_t *bp, dmu_tx_t *tx);
-void dsl_deadlist_add_key(dsl_deadlist_t *dl, uint64_t mintxg, dmu_tx_t *tx);
-void dsl_deadlist_remove_key(dsl_deadlist_t *dl, uint64_t mintxg, dmu_tx_t *tx);
-uint64_t dsl_deadlist_clone(dsl_deadlist_t *dl, uint64_t maxtxg,
-    uint64_t mrs_obj, dmu_tx_t *tx);
-void dsl_deadlist_space(dsl_deadlist_t *dl,
-    uint64_t *usedp, uint64_t *compp, uint64_t *uncompp);
-void dsl_deadlist_space_range(dsl_deadlist_t *dl,
-    uint64_t mintxg, uint64_t maxtxg,
-    uint64_t *usedp, uint64_t *compp, uint64_t *uncompp);
-void dsl_deadlist_merge(dsl_deadlist_t *dl, uint64_t obj, dmu_tx_t *tx);
-void dsl_deadlist_move_bpobj(dsl_deadlist_t *dl, bpobj_t *bpo, uint64_t mintxg,
-    dmu_tx_t *tx);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DSL_DEADLIST_H */
diff --git a/module/zfs/include/sys/dsl_deleg.h b/module/zfs/include/sys/dsl_deleg.h
deleted file mode 100644 (file)
index 73c43bd..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DSL_DELEG_H
-#define        _SYS_DSL_DELEG_H
-
-#include <sys/dmu.h>
-#include <sys/dsl_pool.h>
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define        ZFS_DELEG_PERM_NONE             ""
-#define        ZFS_DELEG_PERM_CREATE           "create"
-#define        ZFS_DELEG_PERM_DESTROY          "destroy"
-#define        ZFS_DELEG_PERM_SNAPSHOT         "snapshot"
-#define        ZFS_DELEG_PERM_ROLLBACK         "rollback"
-#define        ZFS_DELEG_PERM_CLONE            "clone"
-#define        ZFS_DELEG_PERM_PROMOTE          "promote"
-#define        ZFS_DELEG_PERM_RENAME           "rename"
-#define        ZFS_DELEG_PERM_MOUNT            "mount"
-#define        ZFS_DELEG_PERM_SHARE            "share"
-#define        ZFS_DELEG_PERM_SEND             "send"
-#define        ZFS_DELEG_PERM_RECEIVE          "receive"
-#define        ZFS_DELEG_PERM_ALLOW            "allow"
-#define        ZFS_DELEG_PERM_USERPROP         "userprop"
-#define        ZFS_DELEG_PERM_VSCAN            "vscan"
-#define        ZFS_DELEG_PERM_USERQUOTA        "userquota"
-#define        ZFS_DELEG_PERM_GROUPQUOTA       "groupquota"
-#define        ZFS_DELEG_PERM_USERUSED         "userused"
-#define        ZFS_DELEG_PERM_GROUPUSED        "groupused"
-#define        ZFS_DELEG_PERM_HOLD             "hold"
-#define        ZFS_DELEG_PERM_RELEASE          "release"
-#define        ZFS_DELEG_PERM_DIFF             "diff"
-
-/*
- * Note: the names of properties that are marked delegatable are also
- * valid delegated permissions
- */
-
-int dsl_deleg_get(const char *ddname, nvlist_t **nvp);
-int dsl_deleg_set(const char *ddname, nvlist_t *nvp, boolean_t unset);
-int dsl_deleg_access(const char *ddname, const char *perm, cred_t *cr);
-int dsl_deleg_access_impl(struct dsl_dataset *ds, const char *perm, cred_t *cr);
-void dsl_deleg_set_create_perms(dsl_dir_t *dd, dmu_tx_t *tx, cred_t *cr);
-int dsl_deleg_can_allow(char *ddname, nvlist_t *nvp, cred_t *cr);
-int dsl_deleg_can_unallow(char *ddname, nvlist_t *nvp, cred_t *cr);
-int dsl_deleg_destroy(objset_t *os, uint64_t zapobj, dmu_tx_t *tx);
-boolean_t dsl_delegation_on(objset_t *os);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DSL_DELEG_H */
diff --git a/module/zfs/include/sys/dsl_dir.h b/module/zfs/include/sys/dsl_dir.h
deleted file mode 100644 (file)
index 2191635..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DSL_DIR_H
-#define        _SYS_DSL_DIR_H
-
-#include <sys/dmu.h>
-#include <sys/dsl_pool.h>
-#include <sys/dsl_synctask.h>
-#include <sys/refcount.h>
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct dsl_dataset;
-
-typedef enum dd_used {
-       DD_USED_HEAD,
-       DD_USED_SNAP,
-       DD_USED_CHILD,
-       DD_USED_CHILD_RSRV,
-       DD_USED_REFRSRV,
-       DD_USED_NUM
-} dd_used_t;
-
-#define        DD_FLAG_USED_BREAKDOWN (1<<0)
-
-typedef struct dsl_dir_phys {
-       uint64_t dd_creation_time; /* not actually used */
-       uint64_t dd_head_dataset_obj;
-       uint64_t dd_parent_obj;
-       uint64_t dd_origin_obj;
-       uint64_t dd_child_dir_zapobj;
-       /*
-        * how much space our children are accounting for; for leaf
-        * datasets, == physical space used by fs + snaps
-        */
-       uint64_t dd_used_bytes;
-       uint64_t dd_compressed_bytes;
-       uint64_t dd_uncompressed_bytes;
-       /* Administrative quota setting */
-       uint64_t dd_quota;
-       /* Administrative reservation setting */
-       uint64_t dd_reserved;
-       uint64_t dd_props_zapobj;
-       uint64_t dd_deleg_zapobj; /* dataset delegation permissions */
-       uint64_t dd_flags;
-       uint64_t dd_used_breakdown[DD_USED_NUM];
-       uint64_t dd_clones; /* dsl_dir objects */
-       uint64_t dd_pad[13]; /* pad out to 256 bytes for good measure */
-} dsl_dir_phys_t;
-
-struct dsl_dir {
-       /* These are immutable; no lock needed: */
-       uint64_t dd_object;
-       dsl_dir_phys_t *dd_phys;
-       dmu_buf_t *dd_dbuf;
-       dsl_pool_t *dd_pool;
-
-       /* protected by lock on pool's dp_dirty_dirs list */
-       txg_node_t dd_dirty_link;
-
-       /* protected by dp_config_rwlock */
-       dsl_dir_t *dd_parent;
-
-       /* Protected by dd_lock */
-       kmutex_t dd_lock;
-       list_t dd_prop_cbs; /* list of dsl_prop_cb_record_t's */
-       timestruc_t dd_snap_cmtime; /* last time snapshot namespace changed */
-       uint64_t dd_origin_txg;
-
-       /* gross estimate of space used by in-flight tx's */
-       uint64_t dd_tempreserved[TXG_SIZE];
-       /* amount of space we expect to write; == amount of dirty data */
-       int64_t dd_space_towrite[TXG_SIZE];
-
-       /* protected by dd_lock; keep at end of struct for better locality */
-       char dd_myname[MAXNAMELEN];
-};
-
-void dsl_dir_close(dsl_dir_t *dd, void *tag);
-int dsl_dir_open(const char *name, void *tag, dsl_dir_t **, const char **tail);
-int dsl_dir_open_spa(spa_t *spa, const char *name, void *tag, dsl_dir_t **,
-    const char **tailp);
-int dsl_dir_open_obj(dsl_pool_t *dp, uint64_t ddobj,
-    const char *tail, void *tag, dsl_dir_t **);
-void dsl_dir_name(dsl_dir_t *dd, char *buf);
-int dsl_dir_namelen(dsl_dir_t *dd);
-uint64_t dsl_dir_create_sync(dsl_pool_t *dp, dsl_dir_t *pds,
-    const char *name, dmu_tx_t *tx);
-dsl_checkfunc_t dsl_dir_destroy_check;
-dsl_syncfunc_t dsl_dir_destroy_sync;
-void dsl_dir_stats(dsl_dir_t *dd, nvlist_t *nv);
-uint64_t dsl_dir_space_available(dsl_dir_t *dd,
-    dsl_dir_t *ancestor, int64_t delta, int ondiskonly);
-void dsl_dir_dirty(dsl_dir_t *dd, dmu_tx_t *tx);
-void dsl_dir_sync(dsl_dir_t *dd, dmu_tx_t *tx);
-int dsl_dir_tempreserve_space(dsl_dir_t *dd, uint64_t mem,
-    uint64_t asize, uint64_t fsize, uint64_t usize, void **tr_cookiep,
-    dmu_tx_t *tx);
-void dsl_dir_tempreserve_clear(void *tr_cookie, dmu_tx_t *tx);
-void dsl_dir_willuse_space(dsl_dir_t *dd, int64_t space, dmu_tx_t *tx);
-void dsl_dir_diduse_space(dsl_dir_t *dd, dd_used_t type,
-    int64_t used, int64_t compressed, int64_t uncompressed, dmu_tx_t *tx);
-void dsl_dir_transfer_space(dsl_dir_t *dd, int64_t delta,
-    dd_used_t oldtype, dd_used_t newtype, dmu_tx_t *tx);
-int dsl_dir_set_quota(const char *ddname, zprop_source_t source,
-    uint64_t quota);
-int dsl_dir_set_reservation(const char *ddname, zprop_source_t source,
-    uint64_t reservation);
-int dsl_dir_rename(dsl_dir_t *dd, const char *newname);
-int dsl_dir_transfer_possible(dsl_dir_t *sdd, dsl_dir_t *tdd, uint64_t space);
-int dsl_dir_set_reservation_check(void *arg1, void *arg2, dmu_tx_t *tx);
-boolean_t dsl_dir_is_clone(dsl_dir_t *dd);
-void dsl_dir_new_refreservation(dsl_dir_t *dd, struct dsl_dataset *ds,
-    uint64_t reservation, cred_t *cr, dmu_tx_t *tx);
-void dsl_dir_snap_cmtime_update(dsl_dir_t *dd);
-timestruc_t dsl_dir_snap_cmtime(dsl_dir_t *dd);
-
-/* internal reserved dir name */
-#define        MOS_DIR_NAME "$MOS"
-#define        ORIGIN_DIR_NAME "$ORIGIN"
-#define        XLATION_DIR_NAME "$XLATION"
-#define        FREE_DIR_NAME "$FREE"
-
-#ifdef ZFS_DEBUG
-#define        dprintf_dd(dd, fmt, ...) do { \
-       if (zfs_flags & ZFS_DEBUG_DPRINTF) { \
-       char *__ds_name = kmem_alloc(MAXNAMELEN + strlen(MOS_DIR_NAME) + 1, \
-           KM_SLEEP); \
-       dsl_dir_name(dd, __ds_name); \
-       dprintf("dd=%s " fmt, __ds_name, __VA_ARGS__); \
-       kmem_free(__ds_name, MAXNAMELEN + strlen(MOS_DIR_NAME) + 1); \
-       } \
-_NOTE(CONSTCOND) } while (0)
-#else
-#define        dprintf_dd(dd, fmt, ...)
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DSL_DIR_H */
diff --git a/module/zfs/include/sys/dsl_pool.h b/module/zfs/include/sys/dsl_pool.h
deleted file mode 100644 (file)
index 7d25bd7..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DSL_POOL_H
-#define        _SYS_DSL_POOL_H
-
-#include <sys/spa.h>
-#include <sys/txg.h>
-#include <sys/txg_impl.h>
-#include <sys/zfs_context.h>
-#include <sys/zio.h>
-#include <sys/dnode.h>
-#include <sys/ddt.h>
-#include <sys/arc.h>
-#include <sys/bpobj.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct objset;
-struct dsl_dir;
-struct dsl_dataset;
-struct dsl_pool;
-struct dmu_tx;
-struct dsl_scan;
-
-/* These macros are for indexing into the zfs_all_blkstats_t. */
-#define        DMU_OT_DEFERRED DMU_OT_NONE
-#define        DMU_OT_TOTAL    DMU_OT_NUMTYPES
-
-typedef struct zfs_blkstat {
-       uint64_t        zb_count;
-       uint64_t        zb_asize;
-       uint64_t        zb_lsize;
-       uint64_t        zb_psize;
-       uint64_t        zb_gangs;
-       uint64_t        zb_ditto_2_of_2_samevdev;
-       uint64_t        zb_ditto_2_of_3_samevdev;
-       uint64_t        zb_ditto_3_of_3_samevdev;
-} zfs_blkstat_t;
-
-typedef struct zfs_all_blkstats {
-       zfs_blkstat_t   zab_type[DN_MAX_LEVELS + 1][DMU_OT_TOTAL + 1];
-} zfs_all_blkstats_t;
-
-
-typedef struct dsl_pool {
-       /* Immutable */
-       spa_t *dp_spa;
-       struct objset *dp_meta_objset;
-       struct dsl_dir *dp_root_dir;
-       struct dsl_dir *dp_mos_dir;
-       struct dsl_dir *dp_free_dir;
-       struct dsl_dataset *dp_origin_snap;
-       uint64_t dp_root_dir_obj;
-       struct taskq *dp_vnrele_taskq;
-
-       /* No lock needed - sync context only */
-       blkptr_t dp_meta_rootbp;
-       list_t dp_synced_datasets;
-       hrtime_t dp_read_overhead;
-       uint64_t dp_throughput; /* bytes per millisec */
-       uint64_t dp_write_limit;
-       uint64_t dp_tmp_userrefs_obj;
-       bpobj_t dp_free_bpobj;
-
-       struct dsl_scan *dp_scan;
-
-       /* Uses dp_lock */
-       kmutex_t dp_lock;
-       uint64_t dp_space_towrite[TXG_SIZE];
-       uint64_t dp_tempreserved[TXG_SIZE];
-
-       /* Has its own locking */
-       tx_state_t dp_tx;
-       txg_list_t dp_dirty_datasets;
-       txg_list_t dp_dirty_dirs;
-       txg_list_t dp_sync_tasks;
-
-       /*
-        * Protects administrative changes (properties, namespace)
-        * It is only held for write in syncing context.  Therefore
-        * syncing context does not need to ever have it for read, since
-        * nobody else could possibly have it for write.
-        */
-       krwlock_t dp_config_rwlock;
-
-       zfs_all_blkstats_t *dp_blkstats;
-} dsl_pool_t;
-
-int dsl_pool_open(spa_t *spa, uint64_t txg, dsl_pool_t **dpp);
-void dsl_pool_close(dsl_pool_t *dp);
-dsl_pool_t *dsl_pool_create(spa_t *spa, nvlist_t *zplprops, uint64_t txg);
-void dsl_pool_sync(dsl_pool_t *dp, uint64_t txg);
-void dsl_pool_sync_done(dsl_pool_t *dp, uint64_t txg);
-int dsl_pool_sync_context(dsl_pool_t *dp);
-uint64_t dsl_pool_adjustedsize(dsl_pool_t *dp, boolean_t netfree);
-uint64_t dsl_pool_adjustedfree(dsl_pool_t *dp, boolean_t netfree);
-int dsl_pool_tempreserve_space(dsl_pool_t *dp, uint64_t space, dmu_tx_t *tx);
-void dsl_pool_tempreserve_clear(dsl_pool_t *dp, int64_t space, dmu_tx_t *tx);
-void dsl_pool_memory_pressure(dsl_pool_t *dp);
-void dsl_pool_willuse_space(dsl_pool_t *dp, int64_t space, dmu_tx_t *tx);
-void dsl_free(dsl_pool_t *dp, uint64_t txg, const blkptr_t *bpp);
-void dsl_free_sync(zio_t *pio, dsl_pool_t *dp, uint64_t txg,
-    const blkptr_t *bpp);
-int dsl_read(zio_t *pio, spa_t *spa, const blkptr_t *bpp, arc_buf_t *pbuf,
-    arc_done_func_t *done, void *private, int priority, int zio_flags,
-    uint32_t *arc_flags, const zbookmark_t *zb);
-int dsl_read_nolock(zio_t *pio, spa_t *spa, const blkptr_t *bpp,
-    arc_done_func_t *done, void *private, int priority, int zio_flags,
-    uint32_t *arc_flags, const zbookmark_t *zb);
-void dsl_pool_create_origin(dsl_pool_t *dp, dmu_tx_t *tx);
-void dsl_pool_upgrade_clones(dsl_pool_t *dp, dmu_tx_t *tx);
-void dsl_pool_upgrade_dir_clones(dsl_pool_t *dp, dmu_tx_t *tx);
-
-taskq_t *dsl_pool_vnrele_taskq(dsl_pool_t *dp);
-
-extern int dsl_pool_user_hold(dsl_pool_t *dp, uint64_t dsobj,
-    const char *tag, uint64_t *now, dmu_tx_t *tx);
-extern int dsl_pool_user_release(dsl_pool_t *dp, uint64_t dsobj,
-    const char *tag, dmu_tx_t *tx);
-extern void dsl_pool_clean_tmp_userrefs(dsl_pool_t *dp);
-int dsl_pool_open_special_dir(dsl_pool_t *dp, const char *name, dsl_dir_t **);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DSL_POOL_H */
diff --git a/module/zfs/include/sys/dsl_prop.h b/module/zfs/include/sys/dsl_prop.h
deleted file mode 100644 (file)
index a636ad3..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DSL_PROP_H
-#define        _SYS_DSL_PROP_H
-
-#include <sys/dmu.h>
-#include <sys/dsl_pool.h>
-#include <sys/zfs_context.h>
-#include <sys/dsl_synctask.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct dsl_dataset;
-struct dsl_dir;
-
-/* The callback func may not call into the DMU or DSL! */
-typedef void (dsl_prop_changed_cb_t)(void *arg, uint64_t newval);
-
-typedef struct dsl_prop_cb_record {
-       list_node_t cbr_node; /* link on dd_prop_cbs */
-       struct dsl_dataset *cbr_ds;
-       const char *cbr_propname;
-       dsl_prop_changed_cb_t *cbr_func;
-       void *cbr_arg;
-} dsl_prop_cb_record_t;
-
-typedef struct dsl_props_arg {
-       nvlist_t *pa_props;
-       zprop_source_t pa_source;
-} dsl_props_arg_t;
-
-typedef struct dsl_prop_set_arg {
-       const char *psa_name;
-       zprop_source_t psa_source;
-       int psa_intsz;
-       int psa_numints;
-       const void *psa_value;
-
-       /*
-        * Used to handle the special requirements of the quota and reservation
-        * properties.
-        */
-       uint64_t psa_effective_value;
-} dsl_prop_setarg_t;
-
-int dsl_prop_register(struct dsl_dataset *ds, const char *propname,
-    dsl_prop_changed_cb_t *callback, void *cbarg);
-int dsl_prop_unregister(struct dsl_dataset *ds, const char *propname,
-    dsl_prop_changed_cb_t *callback, void *cbarg);
-int dsl_prop_numcb(struct dsl_dataset *ds);
-
-int dsl_prop_get(const char *ddname, const char *propname,
-    int intsz, int numints, void *buf, char *setpoint);
-int dsl_prop_get_integer(const char *ddname, const char *propname,
-    uint64_t *valuep, char *setpoint);
-int dsl_prop_get_all(objset_t *os, nvlist_t **nvp);
-int dsl_prop_get_received(objset_t *os, nvlist_t **nvp);
-int dsl_prop_get_ds(struct dsl_dataset *ds, const char *propname,
-    int intsz, int numints, void *buf, char *setpoint);
-int dsl_prop_get_dd(struct dsl_dir *dd, const char *propname,
-    int intsz, int numints, void *buf, char *setpoint,
-    boolean_t snapshot);
-
-dsl_syncfunc_t dsl_props_set_sync;
-int dsl_prop_set(const char *ddname, const char *propname,
-    zprop_source_t source, int intsz, int numints, const void *buf);
-int dsl_props_set(const char *dsname, zprop_source_t source, nvlist_t *nvl);
-void dsl_dir_prop_set_uint64_sync(dsl_dir_t *dd, const char *name, uint64_t val,
-    dmu_tx_t *tx);
-
-void dsl_prop_setarg_init_uint64(dsl_prop_setarg_t *psa, const char *propname,
-    zprop_source_t source, uint64_t *value);
-int dsl_prop_predict_sync(dsl_dir_t *dd, dsl_prop_setarg_t *psa);
-#ifdef ZFS_DEBUG
-void dsl_prop_check_prediction(dsl_dir_t *dd, dsl_prop_setarg_t *psa);
-#define        DSL_PROP_CHECK_PREDICTION(dd, psa)      \
-       dsl_prop_check_prediction((dd), (psa))
-#else
-#define        DSL_PROP_CHECK_PREDICTION(dd, psa)      /* nothing */
-#endif
-
-/* flag first receive on or after SPA_VERSION_RECVD_PROPS */
-boolean_t dsl_prop_get_hasrecvd(objset_t *os);
-void dsl_prop_set_hasrecvd(objset_t *os);
-void dsl_prop_unset_hasrecvd(objset_t *os);
-
-void dsl_prop_nvlist_add_uint64(nvlist_t *nv, zfs_prop_t prop, uint64_t value);
-void dsl_prop_nvlist_add_string(nvlist_t *nv,
-    zfs_prop_t prop, const char *value);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DSL_PROP_H */
diff --git a/module/zfs/include/sys/dsl_scan.h b/module/zfs/include/sys/dsl_scan.h
deleted file mode 100644 (file)
index c79666e..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DSL_SCAN_H
-#define        _SYS_DSL_SCAN_H
-
-#include <sys/zfs_context.h>
-#include <sys/zio.h>
-#include <sys/ddt.h>
-#include <sys/bplist.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct objset;
-struct dsl_dir;
-struct dsl_dataset;
-struct dsl_pool;
-struct dmu_tx;
-
-/*
- * All members of this structure must be uint64_t, for byteswap
- * purposes.
- */
-typedef struct dsl_scan_phys {
-       uint64_t scn_func; /* pool_scan_func_t */
-       uint64_t scn_state; /* dsl_scan_state_t */
-       uint64_t scn_queue_obj;
-       uint64_t scn_min_txg;
-       uint64_t scn_max_txg;
-       uint64_t scn_cur_min_txg;
-       uint64_t scn_cur_max_txg;
-       uint64_t scn_start_time;
-       uint64_t scn_end_time;
-       uint64_t scn_to_examine; /* total bytes to be scanned */
-       uint64_t scn_examined; /* bytes scanned so far */
-       uint64_t scn_to_process;
-       uint64_t scn_processed;
-       uint64_t scn_errors;    /* scan I/O error count */
-       uint64_t scn_ddt_class_max;
-       ddt_bookmark_t scn_ddt_bookmark;
-       zbookmark_t scn_bookmark;
-       uint64_t scn_flags; /* dsl_scan_flags_t */
-} dsl_scan_phys_t;
-
-#define        SCAN_PHYS_NUMINTS (sizeof (dsl_scan_phys_t) / sizeof (uint64_t))
-
-typedef enum dsl_scan_flags {
-       DSF_VISIT_DS_AGAIN = 1<<0,
-} dsl_scan_flags_t;
-
-typedef struct dsl_scan {
-       struct dsl_pool *scn_dp;
-
-       boolean_t scn_pausing;
-       uint64_t scn_restart_txg;
-       uint64_t scn_sync_start_time;
-       zio_t *scn_zio_root;
-
-       /* for debugging / information */
-       uint64_t scn_visited_this_txg;
-
-       dsl_scan_phys_t scn_phys;
-} dsl_scan_t;
-
-int dsl_scan_init(struct dsl_pool *dp, uint64_t txg);
-void dsl_scan_fini(struct dsl_pool *dp);
-void dsl_scan_sync(struct dsl_pool *, dmu_tx_t *);
-int dsl_scan_cancel(struct dsl_pool *);
-int dsl_scan(struct dsl_pool *, pool_scan_func_t);
-void dsl_resilver_restart(struct dsl_pool *, uint64_t txg);
-boolean_t dsl_scan_resilvering(struct dsl_pool *dp);
-boolean_t dsl_dataset_unstable(struct dsl_dataset *ds);
-void dsl_scan_ddt_entry(dsl_scan_t *scn, enum zio_checksum checksum,
-    ddt_entry_t *dde, dmu_tx_t *tx);
-void dsl_scan_ds_destroyed(struct dsl_dataset *ds, struct dmu_tx *tx);
-void dsl_scan_ds_snapshotted(struct dsl_dataset *ds, struct dmu_tx *tx);
-void dsl_scan_ds_clone_swapped(struct dsl_dataset *ds1, struct dsl_dataset *ds2,
-    struct dmu_tx *tx);
-boolean_t dsl_scan_active(dsl_scan_t *scn);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DSL_SCAN_H */
diff --git a/module/zfs/include/sys/dsl_synctask.h b/module/zfs/include/sys/dsl_synctask.h
deleted file mode 100644 (file)
index 9126290..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_DSL_SYNCTASK_H
-#define        _SYS_DSL_SYNCTASK_H
-
-#include <sys/txg.h>
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct dsl_pool;
-
-typedef int (dsl_checkfunc_t)(void *, void *, dmu_tx_t *);
-typedef void (dsl_syncfunc_t)(void *, void *, dmu_tx_t *);
-
-typedef struct dsl_sync_task {
-       list_node_t dst_node;
-       dsl_checkfunc_t *dst_checkfunc;
-       dsl_syncfunc_t *dst_syncfunc;
-       void *dst_arg1;
-       void *dst_arg2;
-       int dst_err;
-} dsl_sync_task_t;
-
-typedef struct dsl_sync_task_group {
-       txg_node_t dstg_node;
-       list_t dstg_tasks;
-       struct dsl_pool *dstg_pool;
-       uint64_t dstg_txg;
-       int dstg_err;
-       int dstg_space;
-       boolean_t dstg_nowaiter;
-} dsl_sync_task_group_t;
-
-dsl_sync_task_group_t *dsl_sync_task_group_create(struct dsl_pool *dp);
-void dsl_sync_task_create(dsl_sync_task_group_t *dstg,
-    dsl_checkfunc_t *, dsl_syncfunc_t *,
-    void *arg1, void *arg2, int blocks_modified);
-int dsl_sync_task_group_wait(dsl_sync_task_group_t *dstg);
-void dsl_sync_task_group_nowait(dsl_sync_task_group_t *dstg, dmu_tx_t *tx);
-void dsl_sync_task_group_destroy(dsl_sync_task_group_t *dstg);
-void dsl_sync_task_group_sync(dsl_sync_task_group_t *dstg, dmu_tx_t *tx);
-
-int dsl_sync_task_do(struct dsl_pool *dp,
-    dsl_checkfunc_t *checkfunc, dsl_syncfunc_t *syncfunc,
-    void *arg1, void *arg2, int blocks_modified);
-void dsl_sync_task_do_nowait(struct dsl_pool *dp,
-    dsl_checkfunc_t *checkfunc, dsl_syncfunc_t *syncfunc,
-    void *arg1, void *arg2, int blocks_modified, dmu_tx_t *tx);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_DSL_SYNCTASK_H */
diff --git a/module/zfs/include/sys/fm/fs/zfs.h b/module/zfs/include/sys/fm/fs/zfs.h
deleted file mode 100644 (file)
index d5c71d1..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _SYS_FM_FS_ZFS_H
-#define        _SYS_FM_FS_ZFS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define        ZFS_ERROR_CLASS                         "fs.zfs"
-
-#define        FM_EREPORT_ZFS_CHECKSUM                 "checksum"
-#define        FM_EREPORT_ZFS_IO                       "io"
-#define        FM_EREPORT_ZFS_DATA                     "data"
-#define        FM_EREPORT_ZFS_CONFIG_SYNC              "config.sync"
-#define        FM_EREPORT_ZFS_POOL                     "zpool"
-#define        FM_EREPORT_ZFS_POOL_DESTROY             "zpool.destroy"
-#define        FM_EREPORT_ZFS_DEVICE_UNKNOWN           "vdev.unknown"
-#define        FM_EREPORT_ZFS_DEVICE_OPEN_FAILED       "vdev.open_failed"
-#define        FM_EREPORT_ZFS_DEVICE_CORRUPT_DATA      "vdev.corrupt_data"
-#define        FM_EREPORT_ZFS_DEVICE_NO_REPLICAS       "vdev.no_replicas"
-#define        FM_EREPORT_ZFS_DEVICE_BAD_GUID_SUM      "vdev.bad_guid_sum"
-#define        FM_EREPORT_ZFS_DEVICE_TOO_SMALL         "vdev.too_small"
-#define        FM_EREPORT_ZFS_DEVICE_BAD_LABEL         "vdev.bad_label"
-#define        FM_EREPORT_ZFS_DEVICE_REMOVE            "vdev.remove"
-#define        FM_EREPORT_ZFS_DEVICE_CLEAR             "vdev.clear"
-#define        FM_EREPORT_ZFS_DEVICE_CHECK             "vdev.check"
-#define        FM_EREPORT_ZFS_DEVICE_SPARE             "vdev.spare"
-#define        FM_EREPORT_ZFS_DEVICE_AUTOEXPAND        "vdev.autoexpand"
-#define        FM_EREPORT_ZFS_IO_FAILURE               "io_failure"
-#define        FM_EREPORT_ZFS_PROBE_FAILURE            "probe_failure"
-#define        FM_EREPORT_ZFS_LOG_REPLAY               "log_replay"
-#define        FM_EREPORT_ZFS_RESILVER_START           "resilver.start"
-#define        FM_EREPORT_ZFS_RESILVER_FINISH          "resilver.finish"
-#define        FM_EREPORT_ZFS_SCRUB_START              "scrub.start"
-#define        FM_EREPORT_ZFS_SCRUB_FINISH             "scrub.finish"
-#define        FM_EREPORT_ZFS_BOOTFS_VDEV_ATTACH       "bootfs.vdev.attach"
-
-#define        FM_EREPORT_PAYLOAD_ZFS_POOL             "pool"
-#define        FM_EREPORT_PAYLOAD_ZFS_POOL_FAILMODE    "pool_failmode"
-#define        FM_EREPORT_PAYLOAD_ZFS_POOL_GUID        "pool_guid"
-#define        FM_EREPORT_PAYLOAD_ZFS_POOL_CONTEXT     "pool_context"
-#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_GUID        "vdev_guid"
-#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_TYPE        "vdev_type"
-#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_PATH        "vdev_path"
-#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_DEVID       "vdev_devid"
-#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_FRU         "vdev_fru"
-#define        FM_EREPORT_PAYLOAD_ZFS_VDEV_STATE       "vdev_state"
-#define        FM_EREPORT_PAYLOAD_ZFS_PARENT_GUID      "parent_guid"
-#define        FM_EREPORT_PAYLOAD_ZFS_PARENT_TYPE      "parent_type"
-#define        FM_EREPORT_PAYLOAD_ZFS_PARENT_PATH      "parent_path"
-#define        FM_EREPORT_PAYLOAD_ZFS_PARENT_DEVID     "parent_devid"
-#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_OBJSET       "zio_objset"
-#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_OBJECT       "zio_object"
-#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_LEVEL        "zio_level"
-#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_BLKID        "zio_blkid"
-#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_ERR          "zio_err"
-#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_OFFSET       "zio_offset"
-#define        FM_EREPORT_PAYLOAD_ZFS_ZIO_SIZE         "zio_size"
-#define        FM_EREPORT_PAYLOAD_ZFS_PREV_STATE       "prev_state"
-#define        FM_EREPORT_PAYLOAD_ZFS_CKSUM_EXPECTED   "cksum_expected"
-#define        FM_EREPORT_PAYLOAD_ZFS_CKSUM_ACTUAL     "cksum_actual"
-#define        FM_EREPORT_PAYLOAD_ZFS_CKSUM_ALGO       "cksum_algorithm"
-#define        FM_EREPORT_PAYLOAD_ZFS_CKSUM_BYTESWAP   "cksum_byteswap"
-#define        FM_EREPORT_PAYLOAD_ZFS_BAD_OFFSET_RANGES "bad_ranges"
-#define        FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_MIN_GAP "bad_ranges_min_gap"
-#define        FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_SETS   "bad_range_sets"
-#define        FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_CLEARS "bad_range_clears"
-#define        FM_EREPORT_PAYLOAD_ZFS_BAD_SET_BITS     "bad_set_bits"
-#define        FM_EREPORT_PAYLOAD_ZFS_BAD_CLEARED_BITS "bad_cleared_bits"
-#define        FM_EREPORT_PAYLOAD_ZFS_BAD_SET_HISTOGRAM "bad_set_histogram"
-#define        FM_EREPORT_PAYLOAD_ZFS_BAD_CLEARED_HISTOGRAM "bad_cleared_histogram"
-
-#define        FM_EREPORT_FAILMODE_WAIT                "wait"
-#define        FM_EREPORT_FAILMODE_CONTINUE            "continue"
-#define        FM_EREPORT_FAILMODE_PANIC               "panic"
-
-#define        FM_EREPORT_RESOURCE_REMOVED             "removed"
-#define        FM_EREPORT_RESOURCE_AUTOREPLACE         "autoreplace"
-#define        FM_EREPORT_RESOURCE_STATECHANGE         "statechange"
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_FM_FS_ZFS_H */
diff --git a/module/zfs/include/sys/fm/protocol.h b/module/zfs/include/sys/fm/protocol.h
deleted file mode 100644 (file)
index 1ee2212..0000000
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_FM_PROTOCOL_H
-#define        _SYS_FM_PROTOCOL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef _KERNEL
-#include <sys/varargs.h>
-#include <sys/nvpair.h>
-#else
-#include <libnvpair.h>
-#include <stdarg.h>
-#endif
-#include <sys/processor.h>
-
-/* FM common member names */
-#define        FM_CLASS                        "class"
-#define        FM_VERSION                      "version"
-
-/* FM protocol category 1 class names */
-#define        FM_EREPORT_CLASS                "ereport"
-#define        FM_FAULT_CLASS                  "fault"
-#define        FM_DEFECT_CLASS                 "defect"
-#define        FM_RSRC_CLASS                   "resource"
-#define        FM_LIST_EVENT                   "list"
-#define        FM_IREPORT_CLASS                "ireport"
-
-/* FM list.* event class values */
-#define        FM_LIST_SUSPECT_CLASS           FM_LIST_EVENT ".suspect"
-#define        FM_LIST_ISOLATED_CLASS          FM_LIST_EVENT ".isolated"
-#define        FM_LIST_REPAIRED_CLASS          FM_LIST_EVENT ".repaired"
-#define        FM_LIST_UPDATED_CLASS           FM_LIST_EVENT ".updated"
-#define        FM_LIST_RESOLVED_CLASS          FM_LIST_EVENT ".resolved"
-
-/* ereport class subcategory values */
-#define        FM_ERROR_CPU                    "cpu"
-#define        FM_ERROR_IO                     "io"
-
-/* ereport version and payload member names */
-#define        FM_EREPORT_VERS0                0
-#define        FM_EREPORT_VERSION              FM_EREPORT_VERS0
-
-/* ereport payload member names */
-#define        FM_EREPORT_DETECTOR             "detector"
-#define        FM_EREPORT_ENA                  "ena"
-#define        FM_EREPORT_TIME                 "time"
-
-/* list.* event payload member names */
-#define        FM_LIST_EVENT_SIZE              "list-sz"
-
-/* ireport.* event payload member names */
-#define        FM_IREPORT_DETECTOR             "detector"
-#define        FM_IREPORT_UUID                 "uuid"
-#define        FM_IREPORT_PRIORITY             "pri"
-#define        FM_IREPORT_ATTRIBUTES           "attr"
-
-/*
- * list.suspect, isolated, updated, repaired and resolved
- * versions/payload member names.
- */
-#define        FM_SUSPECT_UUID                 "uuid"
-#define        FM_SUSPECT_DIAG_CODE            "code"
-#define        FM_SUSPECT_DIAG_TIME            "diag-time"
-#define        FM_SUSPECT_DE                   "de"
-#define        FM_SUSPECT_FAULT_LIST           "fault-list"
-#define        FM_SUSPECT_FAULT_SZ             "fault-list-sz"
-#define        FM_SUSPECT_FAULT_STATUS         "fault-status"
-#define        FM_SUSPECT_INJECTED             "__injected"
-#define        FM_SUSPECT_MESSAGE              "message"
-#define        FM_SUSPECT_RETIRE               "retire"
-#define        FM_SUSPECT_RESPONSE             "response"
-#define        FM_SUSPECT_SEVERITY             "severity"
-
-#define        FM_SUSPECT_VERS0                0
-#define        FM_SUSPECT_VERSION              FM_SUSPECT_VERS0
-
-#define        FM_SUSPECT_FAULTY               0x1
-#define        FM_SUSPECT_UNUSABLE             0x2
-#define        FM_SUSPECT_NOT_PRESENT          0x4
-#define        FM_SUSPECT_DEGRADED             0x8
-#define        FM_SUSPECT_REPAIRED             0x10
-#define        FM_SUSPECT_REPLACED             0x20
-#define        FM_SUSPECT_ACQUITTED            0x40
-
-/* fault event versions and payload member names */
-#define        FM_FAULT_VERS0                  0
-#define        FM_FAULT_VERSION                FM_FAULT_VERS0
-
-#define        FM_FAULT_ASRU                   "asru"
-#define        FM_FAULT_FRU                    "fru"
-#define        FM_FAULT_FRU_LABEL              "fru-label"
-#define        FM_FAULT_CERTAINTY              "certainty"
-#define        FM_FAULT_RESOURCE               "resource"
-#define        FM_FAULT_LOCATION               "location"
-
-/* resource event versions and payload member names */
-#define        FM_RSRC_VERS0                   0
-#define        FM_RSRC_VERSION                 FM_RSRC_VERS0
-#define        FM_RSRC_RESOURCE                "resource"
-
-/* resource.fm.asru.* payload member names */
-#define        FM_RSRC_ASRU_UUID               "uuid"
-#define        FM_RSRC_ASRU_CODE               "code"
-#define        FM_RSRC_ASRU_FAULTY             "faulty"
-#define        FM_RSRC_ASRU_REPAIRED           "repaired"
-#define        FM_RSRC_ASRU_REPLACED           "replaced"
-#define        FM_RSRC_ASRU_ACQUITTED          "acquitted"
-#define        FM_RSRC_ASRU_RESOLVED           "resolved"
-#define        FM_RSRC_ASRU_UNUSABLE           "unusable"
-#define        FM_RSRC_ASRU_EVENT              "event"
-
-/* resource.fm.xprt.* versions and payload member names */
-#define        FM_RSRC_XPRT_VERS0              0
-#define        FM_RSRC_XPRT_VERSION            FM_RSRC_XPRT_VERS0
-#define        FM_RSRC_XPRT_UUID               "uuid"
-#define        FM_RSRC_XPRT_SUBCLASS           "subclass"
-#define        FM_RSRC_XPRT_FAULT_STATUS       "fault-status"
-#define        FM_RSRC_XPRT_FAULT_HAS_ASRU     "fault-has-asru"
-
-/*
- * FM ENA Format Macros
- */
-#define        ENA_FORMAT_MASK                 0x3
-#define        ENA_FORMAT(ena)                 ((ena) & ENA_FORMAT_MASK)
-
-/* ENA format types */
-#define        FM_ENA_FMT0                     0
-#define        FM_ENA_FMT1                     1
-#define        FM_ENA_FMT2                     2
-
-/* Format 1 */
-#define        ENA_FMT1_GEN_MASK               0x00000000000003FCull
-#define        ENA_FMT1_ID_MASK                0xFFFFFFFFFFFFFC00ull
-#define        ENA_FMT1_CPUID_MASK             0x00000000000FFC00ull
-#define        ENA_FMT1_TIME_MASK              0xFFFFFFFFFFF00000ull
-#define        ENA_FMT1_GEN_SHFT               2
-#define        ENA_FMT1_ID_SHFT                10
-#define        ENA_FMT1_CPUID_SHFT             ENA_FMT1_ID_SHFT
-#define        ENA_FMT1_TIME_SHFT              20
-
-/* Format 2 */
-#define        ENA_FMT2_GEN_MASK               0x00000000000003FCull
-#define        ENA_FMT2_ID_MASK                0xFFFFFFFFFFFFFC00ull
-#define        ENA_FMT2_TIME_MASK              ENA_FMT2_ID_MASK
-#define        ENA_FMT2_GEN_SHFT               2
-#define        ENA_FMT2_ID_SHFT                10
-#define        ENA_FMT2_TIME_SHFT              ENA_FMT2_ID_SHFT
-
-/* Common FMRI type names */
-#define        FM_FMRI_AUTHORITY               "authority"
-#define        FM_FMRI_SCHEME                  "scheme"
-#define        FM_FMRI_SVC_AUTHORITY           "svc-authority"
-#define        FM_FMRI_FACILITY                "facility"
-
-/* FMRI authority-type member names */
-#define        FM_FMRI_AUTH_CHASSIS            "chassis-id"
-#define        FM_FMRI_AUTH_PRODUCT_SN         "product-sn"
-#define        FM_FMRI_AUTH_PRODUCT            "product-id"
-#define        FM_FMRI_AUTH_DOMAIN             "domain-id"
-#define        FM_FMRI_AUTH_SERVER             "server-id"
-#define        FM_FMRI_AUTH_HOST               "host-id"
-
-#define        FM_AUTH_VERS0                   0
-#define        FM_FMRI_AUTH_VERSION            FM_AUTH_VERS0
-
-/* scheme name values */
-#define        FM_FMRI_SCHEME_FMD              "fmd"
-#define        FM_FMRI_SCHEME_DEV              "dev"
-#define        FM_FMRI_SCHEME_HC               "hc"
-#define        FM_FMRI_SCHEME_SVC              "svc"
-#define        FM_FMRI_SCHEME_CPU              "cpu"
-#define        FM_FMRI_SCHEME_MEM              "mem"
-#define        FM_FMRI_SCHEME_MOD              "mod"
-#define        FM_FMRI_SCHEME_PKG              "pkg"
-#define        FM_FMRI_SCHEME_LEGACY           "legacy-hc"
-#define        FM_FMRI_SCHEME_ZFS              "zfs"
-#define        FM_FMRI_SCHEME_SW               "sw"
-
-/* Scheme versions */
-#define        FMD_SCHEME_VERSION0             0
-#define        FM_FMD_SCHEME_VERSION           FMD_SCHEME_VERSION0
-#define        DEV_SCHEME_VERSION0             0
-#define        FM_DEV_SCHEME_VERSION           DEV_SCHEME_VERSION0
-#define        FM_HC_VERS0                     0
-#define        FM_HC_SCHEME_VERSION            FM_HC_VERS0
-#define        CPU_SCHEME_VERSION0             0
-#define        CPU_SCHEME_VERSION1             1
-#define        FM_CPU_SCHEME_VERSION           CPU_SCHEME_VERSION1
-#define        MEM_SCHEME_VERSION0             0
-#define        FM_MEM_SCHEME_VERSION           MEM_SCHEME_VERSION0
-#define        MOD_SCHEME_VERSION0             0
-#define        FM_MOD_SCHEME_VERSION           MOD_SCHEME_VERSION0
-#define        PKG_SCHEME_VERSION0             0
-#define        FM_PKG_SCHEME_VERSION           PKG_SCHEME_VERSION0
-#define        LEGACY_SCHEME_VERSION0          0
-#define        FM_LEGACY_SCHEME_VERSION        LEGACY_SCHEME_VERSION0
-#define        SVC_SCHEME_VERSION0             0
-#define        FM_SVC_SCHEME_VERSION           SVC_SCHEME_VERSION0
-#define        ZFS_SCHEME_VERSION0             0
-#define        FM_ZFS_SCHEME_VERSION           ZFS_SCHEME_VERSION0
-#define        SW_SCHEME_VERSION0              0
-#define        FM_SW_SCHEME_VERSION            SW_SCHEME_VERSION0
-
-/* hc scheme member names */
-#define        FM_FMRI_HC_SERIAL_ID            "serial"
-#define        FM_FMRI_HC_PART                 "part"
-#define        FM_FMRI_HC_REVISION             "revision"
-#define        FM_FMRI_HC_ROOT                 "hc-root"
-#define        FM_FMRI_HC_LIST_SZ              "hc-list-sz"
-#define        FM_FMRI_HC_LIST                 "hc-list"
-#define        FM_FMRI_HC_SPECIFIC             "hc-specific"
-
-/* facility member names */
-#define        FM_FMRI_FACILITY_NAME           "facility-name"
-#define        FM_FMRI_FACILITY_TYPE           "facility-type"
-
-/* hc-list version and member names */
-#define        FM_FMRI_HC_NAME                 "hc-name"
-#define        FM_FMRI_HC_ID                   "hc-id"
-
-#define        HC_LIST_VERSION0                0
-#define        FM_HC_LIST_VERSION              HC_LIST_VERSION0
-
-/* hc-specific member names */
-#define        FM_FMRI_HC_SPECIFIC_OFFSET      "offset"
-#define        FM_FMRI_HC_SPECIFIC_PHYSADDR    "physaddr"
-
-/* fmd module scheme member names */
-#define        FM_FMRI_FMD_NAME                "mod-name"
-#define        FM_FMRI_FMD_VERSION             "mod-version"
-
-/* dev scheme member names */
-#define        FM_FMRI_DEV_ID                  "devid"
-#define        FM_FMRI_DEV_TGTPTLUN0           "target-port-l0id"
-#define        FM_FMRI_DEV_PATH                "device-path"
-
-/* pkg scheme member names */
-#define        FM_FMRI_PKG_BASEDIR             "pkg-basedir"
-#define        FM_FMRI_PKG_INST                "pkg-inst"
-#define        FM_FMRI_PKG_VERSION             "pkg-version"
-
-/* svc scheme member names */
-#define        FM_FMRI_SVC_NAME                "svc-name"
-#define        FM_FMRI_SVC_INSTANCE            "svc-instance"
-#define        FM_FMRI_SVC_CONTRACT_ID         "svc-contract-id"
-
-/* svc-authority member names */
-#define        FM_FMRI_SVC_AUTH_SCOPE          "scope"
-#define        FM_FMRI_SVC_AUTH_SYSTEM_FQN     "system-fqn"
-
-/* cpu scheme member names */
-#define        FM_FMRI_CPU_ID                  "cpuid"
-#define        FM_FMRI_CPU_SERIAL_ID           "serial"
-#define        FM_FMRI_CPU_MASK                "cpumask"
-#define        FM_FMRI_CPU_VID                 "cpuvid"
-#define        FM_FMRI_CPU_CPUFRU              "cpufru"
-#define        FM_FMRI_CPU_CACHE_INDEX         "cacheindex"
-#define        FM_FMRI_CPU_CACHE_WAY           "cacheway"
-#define        FM_FMRI_CPU_CACHE_BIT           "cachebit"
-#define        FM_FMRI_CPU_CACHE_TYPE          "cachetype"
-
-#define        FM_FMRI_CPU_CACHE_TYPE_L2       0
-#define        FM_FMRI_CPU_CACHE_TYPE_L3       1
-
-/* legacy-hc scheme member names */
-#define        FM_FMRI_LEGACY_HC               "component"
-#define        FM_FMRI_LEGACY_HC_PREFIX        FM_FMRI_SCHEME_HC":///" \
-    FM_FMRI_LEGACY_HC"="
-
-/* mem scheme member names */
-#define        FM_FMRI_MEM_UNUM                "unum"
-#define        FM_FMRI_MEM_SERIAL_ID           "serial"
-#define        FM_FMRI_MEM_PHYSADDR            "physaddr"
-#define        FM_FMRI_MEM_MEMCONFIG           "memconfig"
-#define        FM_FMRI_MEM_OFFSET              "offset"
-
-/* mod scheme member names */
-#define        FM_FMRI_MOD_PKG                 "mod-pkg"
-#define        FM_FMRI_MOD_NAME                "mod-name"
-#define        FM_FMRI_MOD_ID                  "mod-id"
-#define        FM_FMRI_MOD_DESC                "mod-desc"
-
-/* zfs scheme member names */
-#define        FM_FMRI_ZFS_POOL                "pool"
-#define        FM_FMRI_ZFS_VDEV                "vdev"
-
-/* sw scheme member names - extra indentation for members of an nvlist */
-#define        FM_FMRI_SW_OBJ                  "object"
-#define        FM_FMRI_SW_OBJ_PATH                     "path"
-#define        FM_FMRI_SW_OBJ_ROOT                     "root"
-#define        FM_FMRI_SW_OBJ_PKG                      "pkg"
-#define        FM_FMRI_SW_SITE                 "site"
-#define        FM_FMRI_SW_SITE_TOKEN                   "token"
-#define        FM_FMRI_SW_SITE_MODULE                  "module"
-#define        FM_FMRI_SW_SITE_FILE                    "file"
-#define        FM_FMRI_SW_SITE_LINE                    "line"
-#define        FM_FMRI_SW_SITE_FUNC                    "func"
-#define        FM_FMRI_SW_CTXT                 "context"
-#define        FM_FMRI_SW_CTXT_ORIGIN                  "origin"
-#define        FM_FMRI_SW_CTXT_EXECNAME                "execname"
-#define        FM_FMRI_SW_CTXT_PID                     "pid"
-#define        FM_FMRI_SW_CTXT_ZONE                    "zone"
-#define        FM_FMRI_SW_CTXT_CTID                    "ctid"
-#define        FM_FMRI_SW_CTXT_STACK                   "stack"
-#define        FM_NVA_FREE             0       /* free allocator on nvlist_destroy */
-#define        FM_NVA_RETAIN           1       /* keep allocator on nvlist_destroy */
-
-extern nv_alloc_t *fm_nva_xcreate(char *, size_t);
-extern void fm_nva_xdestroy(nv_alloc_t *);
-extern nvlist_t *fm_nvlist_create(nv_alloc_t *);
-extern void fm_nvlist_destroy(nvlist_t *, int);
-extern void fm_ereport_set(nvlist_t *, int, const char *, uint64_t,
-    const nvlist_t *, ...);
-extern void fm_payload_set(nvlist_t *, ...);
-extern int i_fm_payload_set(nvlist_t *, const char *, va_list);
-extern void fm_fmri_hc_set(nvlist_t *, int, const nvlist_t *, nvlist_t *,
-    int, ...);
-extern void fm_fmri_dev_set(nvlist_t *, int, const nvlist_t *, const char *,
-    const char *, const char *);
-extern void fm_fmri_de_set(nvlist_t *, int, const nvlist_t *, const char *);
-extern void fm_fmri_cpu_set(nvlist_t *, int, const nvlist_t *, uint32_t,
-    uint8_t *, const char *);
-extern void fm_fmri_mem_set(nvlist_t *, int, const nvlist_t *, const char *,
-    const char *, uint64_t);
-extern void fm_fmri_zfs_set(nvlist_t *, int, uint64_t, uint64_t);
-extern void fm_fmri_hc_create(nvlist_t *, int, const nvlist_t *, nvlist_t *,
-    nvlist_t *, int, ...);
-
-extern uint64_t fm_ena_increment(uint64_t);
-extern uint64_t fm_ena_generate(uint64_t, uchar_t);
-extern uint64_t fm_ena_generate_cpu(uint64_t, processorid_t, uchar_t);
-extern uint64_t fm_ena_generation_get(uint64_t);
-extern uchar_t fm_ena_format_get(uint64_t);
-extern uint64_t fm_ena_id_get(uint64_t);
-extern uint64_t fm_ena_time_get(uint64_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_FM_PROTOCOL_H */
diff --git a/module/zfs/include/sys/fm/util.h b/module/zfs/include/sys/fm/util.h
deleted file mode 100644 (file)
index 94947d6..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_FM_UTIL_H
-#define        _SYS_FM_UTIL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/nvpair.h>
-
-/*
- * Shared user/kernel definitions for class length, error channel name,
- * and kernel event publisher string.
- */
-#define        FM_MAX_CLASS 100
-#define        FM_ERROR_CHAN   "com.sun:fm:error"
-#define        FM_PUB          "fm"
-
-/*
- * ereport dump device transport support
- *
- * Ereports are written out to the dump device at a proscribed offset from the
- * end, similar to in-transit log messages.  The ereports are represented as a
- * erpt_dump_t header followed by ed_size bytes of packed native nvlist data.
- *
- * NOTE: All of these constants and the header must be defined so they have the
- * same representation for *both* 32-bit and 64-bit producers and consumers.
- */
-#define        ERPT_MAGIC      0xf00d4eddU
-#define        ERPT_MAX_ERRS   16
-#define        ERPT_DATA_SZ    (6 * 1024)
-#define        ERPT_EVCH_MAX   256
-#define        ERPT_HIWAT      64
-
-typedef struct erpt_dump {
-       uint32_t ed_magic;      /* ERPT_MAGIC or zero to indicate end */
-       uint32_t ed_chksum;     /* checksum32() of packed nvlist data */
-       uint32_t ed_size;       /* ereport (nvl) fixed buf size */
-       uint32_t ed_pad;        /* reserved for future use */
-       hrtime_t ed_hrt_nsec;   /* hrtime of this ereport */
-       hrtime_t ed_hrt_base;   /* hrtime sample corresponding to ed_tod_base */
-       struct {
-               uint64_t sec;   /* seconds since gettimeofday() Epoch */
-               uint64_t nsec;  /* nanoseconds past ed_tod_base.sec */
-       } ed_tod_base;
-} erpt_dump_t;
-
-#ifdef _KERNEL
-
-#define ZEVENT_SHUTDOWN        0x1
-
-typedef void zevent_cb_t(nvlist_t *, nvlist_t *);
-
-typedef struct zevent_s {
-       nvlist_t        *ev_nvl;       /* protected by the zevent_lock */
-       nvlist_t        *ev_detector;  /* " */
-       list_t          ev_ze_list;    /* " */
-       list_node_t     ev_node;       /* " */
-       zevent_cb_t     *ev_cb;        /* " */
-} zevent_t;
-
-typedef struct zfs_zevent {
-       zevent_t        *ze_zevent;    /* protected by the zevent_lock */
-       list_node_t     ze_node;       /* " */
-       uint64_t        ze_dropped;    /* " */
-} zfs_zevent_t;
-
-extern void fm_init(void);
-extern void fm_fini(void);
-extern void fm_nvprint(nvlist_t *);
-extern void zfs_zevent_post(nvlist_t *, nvlist_t *, zevent_cb_t *);
-extern void zfs_zevent_drain_all(int *);
-extern int zfs_zevent_fd_hold(int, minor_t *, zfs_zevent_t **);
-extern void zfs_zevent_fd_rele(int);
-extern int zfs_zevent_next(zfs_zevent_t *, nvlist_t **, uint64_t *);
-extern int zfs_zevent_wait(zfs_zevent_t *);
-extern void zfs_zevent_init(zfs_zevent_t **);
-extern void zfs_zevent_destroy(zfs_zevent_t *);
-
-#else
-
-static inline void fm_init(void) { }
-static inline void fm_fini(void) { }
-
-#endif  /* _KERNEL */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_FM_UTIL_H */
diff --git a/module/zfs/include/sys/metaslab.h b/module/zfs/include/sys/metaslab.h
deleted file mode 100644 (file)
index 583d630..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _SYS_METASLAB_H
-#define        _SYS_METASLAB_H
-
-#include <sys/spa.h>
-#include <sys/space_map.h>
-#include <sys/txg.h>
-#include <sys/zio.h>
-#include <sys/avl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern space_map_ops_t *zfs_metaslab_ops;
-
-extern metaslab_t *metaslab_init(metaslab_group_t *mg, space_map_obj_t *smo,
-    uint64_t start, uint64_t size, uint64_t txg);
-extern void metaslab_fini(metaslab_t *msp);
-extern void metaslab_sync(metaslab_t *msp, uint64_t txg);
-extern void metaslab_sync_done(metaslab_t *msp, uint64_t txg);
-extern void metaslab_sync_reassess(metaslab_group_t *mg);
-
-#define        METASLAB_HINTBP_FAVOR   0x0
-#define        METASLAB_HINTBP_AVOID   0x1
-#define        METASLAB_GANG_HEADER    0x2
-
-extern int metaslab_alloc(spa_t *spa, metaslab_class_t *mc, uint64_t psize,
-    blkptr_t *bp, int ncopies, uint64_t txg, blkptr_t *hintbp, int flags);
-extern void metaslab_free(spa_t *spa, const blkptr_t *bp, uint64_t txg,
-    boolean_t now);
-extern int metaslab_claim(spa_t *spa, const blkptr_t *bp, uint64_t txg);
-
-extern metaslab_class_t *metaslab_class_create(spa_t *spa,
-    space_map_ops_t *ops);
-extern void metaslab_class_destroy(metaslab_class_t *mc);
-extern int metaslab_class_validate(metaslab_class_t *mc);
-
-extern void metaslab_class_space_update(metaslab_class_t *mc,
-    int64_t alloc_delta, int64_t defer_delta,
-    int64_t space_delta, int64_t dspace_delta);
-extern uint64_t metaslab_class_get_alloc(metaslab_class_t *mc);
-extern uint64_t metaslab_class_get_space(metaslab_class_t *mc);
-extern uint64_t metaslab_class_get_dspace(metaslab_class_t *mc);
-extern uint64_t metaslab_class_get_deferred(metaslab_class_t *mc);
-
-extern metaslab_group_t *metaslab_group_create(metaslab_class_t *mc,
-    vdev_t *vd);
-extern void metaslab_group_destroy(metaslab_group_t *mg);
-extern void metaslab_group_activate(metaslab_group_t *mg);
-extern void metaslab_group_passivate(metaslab_group_t *mg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_METASLAB_H */
diff --git a/module/zfs/include/sys/metaslab_impl.h b/module/zfs/include/sys/metaslab_impl.h
deleted file mode 100644 (file)
index 07988dd..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_METASLAB_IMPL_H
-#define        _SYS_METASLAB_IMPL_H
-
-#include <sys/metaslab.h>
-#include <sys/space_map.h>
-#include <sys/vdev.h>
-#include <sys/txg.h>
-#include <sys/avl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct metaslab_class {
-       spa_t                   *mc_spa;
-       metaslab_group_t        *mc_rotor;
-       space_map_ops_t         *mc_ops;
-       uint64_t                mc_aliquot;
-       uint64_t                mc_alloc;       /* total allocated space */
-       uint64_t                mc_deferred;    /* total deferred frees */
-       uint64_t                mc_space;       /* total space (alloc + free) */
-       uint64_t                mc_dspace;      /* total deflated space */
-};
-
-struct metaslab_group {
-       kmutex_t                mg_lock;
-       avl_tree_t              mg_metaslab_tree;
-       uint64_t                mg_aliquot;
-       uint64_t                mg_bonus_area;
-       int64_t                 mg_bias;
-       int64_t                 mg_activation_count;
-       metaslab_class_t        *mg_class;
-       vdev_t                  *mg_vd;
-       metaslab_group_t        *mg_prev;
-       metaslab_group_t        *mg_next;
-};
-
-/*
- * Each metaslab's free space is tracked in space map object in the MOS,
- * which is only updated in syncing context.  Each time we sync a txg,
- * we append the allocs and frees from that txg to the space map object.
- * When the txg is done syncing, metaslab_sync_done() updates ms_smo
- * to ms_smo_syncing.  Everything in ms_smo is always safe to allocate.
- */
-struct metaslab {
-       kmutex_t        ms_lock;        /* metaslab lock                */
-       space_map_obj_t ms_smo;         /* synced space map object      */
-       space_map_obj_t ms_smo_syncing; /* syncing space map object     */
-       space_map_t     ms_allocmap[TXG_SIZE];  /* allocated this txg   */
-       space_map_t     ms_freemap[TXG_SIZE];   /* freed this txg       */
-       space_map_t     ms_defermap[TXG_DEFER_SIZE]; /* deferred frees  */
-       space_map_t     ms_map;         /* in-core free space map       */
-       int64_t         ms_deferspace;  /* sum of ms_defermap[] space   */
-       uint64_t        ms_weight;      /* weight vs. others in group   */
-       metaslab_group_t *ms_group;     /* metaslab group               */
-       avl_node_t      ms_group_node;  /* node in metaslab group tree  */
-       txg_node_t      ms_txg_node;    /* per-txg dirty metaslab links */
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_METASLAB_IMPL_H */
diff --git a/module/zfs/include/sys/refcount.h b/module/zfs/include/sys/refcount.h
deleted file mode 100644 (file)
index 1752c64..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_REFCOUNT_H
-#define        _SYS_REFCOUNT_H
-
-#include <sys/inttypes.h>
-#include <sys/list.h>
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * If the reference is held only by the calling function and not any
- * particular object, use FTAG (which is a string) for the holder_tag.
- * Otherwise, use the object that holds the reference.
- */
-#define        FTAG ((char *)__func__)
-
-#ifdef ZFS_DEBUG
-typedef struct reference {
-       list_node_t ref_link;
-       void *ref_holder;
-       uint64_t ref_number;
-       uint8_t *ref_removed;
-} reference_t;
-
-typedef struct refcount {
-       kmutex_t rc_mtx;
-       list_t rc_list;
-       list_t rc_removed;
-       int64_t rc_count;
-       int64_t rc_removed_count;
-} refcount_t;
-
-/* Note: refcount_t must be initialized with refcount_create() */
-
-void refcount_create(refcount_t *rc);
-void refcount_destroy(refcount_t *rc);
-void refcount_destroy_many(refcount_t *rc, uint64_t number);
-int refcount_is_zero(refcount_t *rc);
-int64_t refcount_count(refcount_t *rc);
-int64_t refcount_add(refcount_t *rc, void *holder_tag);
-int64_t refcount_remove(refcount_t *rc, void *holder_tag);
-int64_t refcount_add_many(refcount_t *rc, uint64_t number, void *holder_tag);
-int64_t refcount_remove_many(refcount_t *rc, uint64_t number, void *holder_tag);
-void refcount_transfer(refcount_t *dst, refcount_t *src);
-
-void refcount_init(void);
-void refcount_fini(void);
-
-#else  /* ZFS_DEBUG */
-
-typedef struct refcount {
-       uint64_t rc_count;
-} refcount_t;
-
-#define        refcount_create(rc) ((rc)->rc_count = 0)
-#define        refcount_destroy(rc) ((rc)->rc_count = 0)
-#define        refcount_destroy_many(rc, number) ((rc)->rc_count = 0)
-#define        refcount_is_zero(rc) ((rc)->rc_count == 0)
-#define        refcount_count(rc) ((rc)->rc_count)
-#define        refcount_add(rc, holder) atomic_add_64_nv(&(rc)->rc_count, 1)
-#define        refcount_remove(rc, holder) atomic_add_64_nv(&(rc)->rc_count, -1)
-#define        refcount_add_many(rc, number, holder) \
-       atomic_add_64_nv(&(rc)->rc_count, number)
-#define        refcount_remove_many(rc, number, holder) \
-       atomic_add_64_nv(&(rc)->rc_count, -number)
-#define        refcount_transfer(dst, src) { \
-       uint64_t __tmp = (src)->rc_count; \
-       atomic_add_64(&(src)->rc_count, -__tmp); \
-       atomic_add_64(&(dst)->rc_count, __tmp); \
-}
-
-#define        refcount_init()
-#define        refcount_fini()
-
-#endif /* ZFS_DEBUG */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_REFCOUNT_H */
diff --git a/module/zfs/include/sys/rrwlock.h b/module/zfs/include/sys/rrwlock.h
deleted file mode 100644 (file)
index 798a015..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _SYS_RR_RW_LOCK_H
-#define        _SYS_RR_RW_LOCK_H
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/inttypes.h>
-#include <sys/zfs_context.h>
-#include <sys/refcount.h>
-
-/*
- * A reader-writer lock implementation that allows re-entrant reads, but
- * still gives writers priority on "new" reads.
- *
- * See rrwlock.c for more details about the implementation.
- *
- * Fields of the rrwlock_t structure:
- * - rr_lock: protects modification and reading of rrwlock_t fields
- * - rr_cv: cv for waking up readers or waiting writers
- * - rr_writer: thread id of the current writer
- * - rr_anon_rount: number of active anonymous readers
- * - rr_linked_rcount: total number of non-anonymous active readers
- * - rr_writer_wanted: a writer wants the lock
- */
-typedef struct rrwlock {
-       kmutex_t        rr_lock;
-       kcondvar_t      rr_cv;
-       kthread_t       *rr_writer;
-       refcount_t      rr_anon_rcount;
-       refcount_t      rr_linked_rcount;
-       boolean_t       rr_writer_wanted;
-} rrwlock_t;
-
-/*
- * 'tag' is used in reference counting tracking.  The
- * 'tag' must be the same in a rrw_enter() as in its
- * corresponding rrw_exit().
- */
-void rrw_init(rrwlock_t *rrl);
-void rrw_destroy(rrwlock_t *rrl);
-void rrw_enter(rrwlock_t *rrl, krw_t rw, void *tag);
-void rrw_exit(rrwlock_t *rrl, void *tag);
-boolean_t rrw_held(rrwlock_t *rrl, krw_t rw);
-
-#define        RRW_READ_HELD(x)        rrw_held(x, RW_READER)
-#define        RRW_WRITE_HELD(x)       rrw_held(x, RW_WRITER)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_RR_RW_LOCK_H */
diff --git a/module/zfs/include/sys/sa.h b/module/zfs/include/sys/sa.h
deleted file mode 100644 (file)
index c8b9247..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_SA_H
-#define        _SYS_SA_H
-
-#include <sys/dmu.h>
-
-/*
- * Currently available byteswap functions.
- * If it all possible new attributes should used
- * one of the already defined byteswap functions.
- * If a new byteswap function is added then the
- * ZPL/Pool version will need to be bumped.
- */
-
-typedef enum sa_bswap_type {
-       SA_UINT64_ARRAY,
-       SA_UINT32_ARRAY,
-       SA_UINT16_ARRAY,
-       SA_UINT8_ARRAY,
-       SA_ACL,
-} sa_bswap_type_t;
-
-typedef uint16_t       sa_attr_type_t;
-
-/*
- * Attribute to register support for.
- */
-typedef struct sa_attr_reg {
-       char                    *sa_name;       /* attribute name */
-       uint16_t                sa_length;
-       sa_bswap_type_t         sa_byteswap;    /* bswap functon enum */
-       sa_attr_type_t          sa_attr; /* filled in during registration */
-} sa_attr_reg_t;
-
-
-typedef void (sa_data_locator_t)(void **, uint32_t *, uint32_t,
-    boolean_t, void *userptr);
-
-/*
- * array of attributes to store.
- *
- * This array should be treated as opaque/private data.
- * The SA_BULK_ADD_ATTR() macro should be used for manipulating
- * the array.
- *
- * When sa_replace_all_by_template() is used the attributes
- * will be stored in the order defined in the array, except that
- * the attributes may be split between the bonus and the spill buffer
- *
- */
-typedef struct sa_bulk_attr {
-       void                    *sa_data;
-       sa_data_locator_t       *sa_data_func;
-       uint16_t                sa_length;
-       sa_attr_type_t          sa_attr;
-       /* the following are private to the sa framework */
-       void                    *sa_addr;
-       uint16_t                sa_buftype;
-       uint16_t                sa_size;
-} sa_bulk_attr_t;
-
-
-/*
- * special macro for adding entries for bulk attr support
- * bulk - sa_bulk_attr_t
- * count - integer that will be incremented during each add
- * attr - attribute to manipulate
- * func - function for accessing data.
- * data - pointer to data.
- * len - length of data
- */
-
-#define        SA_ADD_BULK_ATTR(b, idx, attr, func, data, len) \
-{ \
-       b[idx].sa_attr = attr;\
-       b[idx].sa_data_func = func; \
-       b[idx].sa_data = data; \
-       b[idx++].sa_length = len; \
-}
-
-typedef struct sa_os sa_os_t;
-
-typedef enum sa_handle_type {
-       SA_HDL_SHARED,
-       SA_HDL_PRIVATE
-} sa_handle_type_t;
-
-struct sa_handle;
-typedef void *sa_lookup_tab_t;
-typedef struct sa_handle sa_handle_t;
-
-typedef void (sa_update_cb_t)(sa_handle_t *, dmu_tx_t *tx);
-
-int sa_handle_get(objset_t *, uint64_t, void *userp,
-    sa_handle_type_t, sa_handle_t **);
-int sa_handle_get_from_db(objset_t *, dmu_buf_t *, void *userp,
-    sa_handle_type_t, sa_handle_t **);
-void sa_handle_destroy(sa_handle_t *);
-int sa_buf_hold(objset_t *, uint64_t, void *, dmu_buf_t **);
-void sa_buf_rele(dmu_buf_t *, void *);
-int sa_lookup(sa_handle_t *, sa_attr_type_t, void *buf, uint32_t buflen);
-int sa_update(sa_handle_t *, sa_attr_type_t, void *buf,
-    uint32_t buflen, dmu_tx_t *);
-int sa_remove(sa_handle_t *, sa_attr_type_t, dmu_tx_t *);
-int sa_bulk_lookup(sa_handle_t *, sa_bulk_attr_t *, int count);
-int sa_bulk_lookup_locked(sa_handle_t *, sa_bulk_attr_t *, int count);
-int sa_bulk_update(sa_handle_t *, sa_bulk_attr_t *, int count, dmu_tx_t *);
-int sa_size(sa_handle_t *, sa_attr_type_t, int *);
-int sa_update_from_cb(sa_handle_t *, sa_attr_type_t,
-    uint32_t buflen, sa_data_locator_t *, void *userdata, dmu_tx_t *);
-void sa_object_info(sa_handle_t *, dmu_object_info_t *);
-void sa_object_size(sa_handle_t *, uint32_t *, u_longlong_t *);
-void sa_update_user(sa_handle_t *, sa_handle_t *);
-void *sa_get_userdata(sa_handle_t *);
-void sa_set_userp(sa_handle_t *, void *);
-dmu_buf_t *sa_get_db(sa_handle_t *);
-uint64_t sa_handle_object(sa_handle_t *);
-boolean_t sa_attr_would_spill(sa_handle_t *, sa_attr_type_t, int size);
-void sa_register_update_callback(objset_t *, sa_update_cb_t *);
-int sa_setup(objset_t *, uint64_t, sa_attr_reg_t *, int, sa_attr_type_t **);
-void sa_tear_down(objset_t *);
-int sa_replace_all_by_template(sa_handle_t *, sa_bulk_attr_t *,
-    int, dmu_tx_t *);
-int sa_replace_all_by_template_locked(sa_handle_t *, sa_bulk_attr_t *,
-    int, dmu_tx_t *);
-boolean_t sa_enabled(objset_t *);
-void sa_cache_init(void);
-void sa_cache_fini(void);
-int sa_set_sa_object(objset_t *, uint64_t);
-int sa_hdrsize(void *);
-void sa_handle_lock(sa_handle_t *);
-void sa_handle_unlock(sa_handle_t *);
-
-#ifdef _KERNEL
-int sa_lookup_uio(sa_handle_t *, sa_attr_type_t, uio_t *);
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_SA_H */
diff --git a/module/zfs/include/sys/sa_impl.h b/module/zfs/include/sys/sa_impl.h
deleted file mode 100644 (file)
index 6661e47..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_SA_IMPL_H
-#define        _SYS_SA_IMPL_H
-
-#include <sys/dmu.h>
-#include <sys/refcount.h>
-#include <sys/list.h>
-
-/*
- * Array of known attributes and their
- * various characteristics.
- */
-typedef struct sa_attr_table {
-       sa_attr_type_t  sa_attr;
-       uint8_t sa_registered;
-       uint16_t sa_length;
-       sa_bswap_type_t sa_byteswap;
-       char *sa_name;
-} sa_attr_table_t;
-
-/*
- * Zap attribute format for attribute registration
- *
- * 64      56      48      40      32      24      16      8       0
- * +-------+-------+-------+-------+-------+-------+-------+-------+
- * |        unused         |      len      | bswap |   attr num    |
- * +-------+-------+-------+-------+-------+-------+-------+-------+
- *
- * Zap attribute format for layout information.
- *
- * layout information is stored as an array of attribute numbers
- * The name of the attribute is the layout number (0, 1, 2, ...)
- *
- * 16       0
- * +---- ---+
- * | attr # |
- * +--------+
- * | attr # |
- * +--- ----+
- *  ......
- *
- */
-
-#define        ATTR_BSWAP(x)   BF32_GET(x, 16, 8)
-#define        ATTR_LENGTH(x)  BF32_GET(x, 24, 16)
-#define        ATTR_NUM(x)     BF32_GET(x, 0, 16)
-#define        ATTR_ENCODE(x, attr, length, bswap) \
-{ \
-       BF64_SET(x, 24, 16, length); \
-       BF64_SET(x, 16, 8, bswap); \
-       BF64_SET(x, 0, 16, attr); \
-}
-
-#define        TOC_OFF(x)              BF32_GET(x, 0, 23)
-#define        TOC_ATTR_PRESENT(x)     BF32_GET(x, 31, 1)
-#define        TOC_LEN_IDX(x)          BF32_GET(x, 24, 4)
-#define        TOC_ATTR_ENCODE(x, len_idx, offset) \
-{ \
-       BF32_SET(x, 31, 1, 1); \
-       BF32_SET(x, 24, 7, len_idx); \
-       BF32_SET(x, 0, 24, offset); \
-}
-
-#define        SA_LAYOUTS      "LAYOUTS"
-#define        SA_REGISTRY     "REGISTRY"
-
-/*
- * Each unique layout will have their own table
- * sa_lot (layout_table)
- */
-typedef struct sa_lot {
-       avl_node_t lot_num_node;
-       avl_node_t lot_hash_node;
-       uint64_t lot_num;
-       uint64_t lot_hash;
-       sa_attr_type_t *lot_attrs;      /* array of attr #'s */
-       uint32_t lot_var_sizes; /* how many aren't fixed size */
-       uint32_t lot_attr_count;        /* total attr count */
-       list_t  lot_idx_tab;    /* should be only a couple of entries */
-       int     lot_instance;   /* used with lot_hash to identify entry */
-} sa_lot_t;
-
-/* index table of offsets */
-typedef struct sa_idx_tab {
-       list_node_t     sa_next;
-       sa_lot_t        *sa_layout;
-       uint16_t        *sa_variable_lengths;
-       refcount_t      sa_refcount;
-       uint32_t        *sa_idx_tab;    /* array of offsets */
-} sa_idx_tab_t;
-
-/*
- * Since the offset/index information into the actual data
- * will usually be identical we can share that information with
- * all handles that have the exact same offsets.
- *
- * You would typically only have a large number of different table of
- * contents if you had a several variable sized attributes.
- *
- * Two AVL trees are used to track the attribute layout numbers.
- * one is keyed by number and will be consulted when a DMU_OT_SA
- * object is first read.  The second tree is keyed by the hash signature
- * of the attributes and will be consulted when an attribute is added
- * to determine if we already have an instance of that layout.  Both
- * of these tree's are interconnected.  The only difference is that
- * when an entry is found in the "hash" tree the list of attributes will
- * need to be compared against the list of attributes you have in hand.
- * The assumption is that typically attributes will just be updated and
- * adding a completely new attribute is a very rare operation.
- */
-struct sa_os {
-       kmutex_t        sa_lock;
-       boolean_t       sa_need_attr_registration;
-       boolean_t       sa_force_spill;
-       uint64_t        sa_master_obj;
-       uint64_t        sa_reg_attr_obj;
-       uint64_t        sa_layout_attr_obj;
-       int             sa_num_attrs;
-       sa_attr_table_t *sa_attr_table;  /* private attr table */
-       sa_update_cb_t  *sa_update_cb;
-       avl_tree_t      sa_layout_num_tree;  /* keyed by layout number */
-       avl_tree_t      sa_layout_hash_tree; /* keyed by layout hash value */
-       int             sa_user_table_sz;
-       sa_attr_type_t  *sa_user_table; /* user name->attr mapping table */
-};
-
-/*
- * header for all bonus and spill buffers.
- * The header has a fixed portion with a variable number
- * of "lengths" depending on the number of variable sized
- * attribues which are determined by the "layout number"
- */
-
-#define        SA_MAGIC        0x2F505A  /* ZFS SA */
-typedef struct sa_hdr_phys {
-       uint32_t sa_magic;
-       uint16_t sa_layout_info;  /* Encoded with hdrsize and layout number */
-       uint16_t sa_lengths[1]; /* optional sizes for variable length attrs */
-       /* ... Data follows the lengths.  */
-} sa_hdr_phys_t;
-
-/*
- * sa_hdr_phys -> sa_layout_info
- *
- * 16      10       0
- * +--------+-------+
- * | hdrsz  |layout |
- * +--------+-------+
- *
- * Bits 0-10 are the layout number
- * Bits 11-16 are the size of the header.
- * The hdrsize is the number * 8
- *
- * For example.
- * hdrsz of 1 ==> 8 byte header
- *          2 ==> 16 byte header
- *
- */
-
-#define        SA_HDR_LAYOUT_NUM(hdr) BF32_GET(hdr->sa_layout_info, 0, 10)
-#define        SA_HDR_SIZE(hdr) BF32_GET_SB(hdr->sa_layout_info, 10, 16, 3, 0)
-#define        SA_HDR_LAYOUT_INFO_ENCODE(x, num, size) \
-{ \
-       BF32_SET_SB(x, 10, 6, 3, 0, size); \
-       BF32_SET(x, 0, 10, num); \
-}
-
-typedef enum sa_buf_type {
-       SA_BONUS = 1,
-       SA_SPILL = 2
-} sa_buf_type_t;
-
-typedef enum sa_data_op {
-       SA_LOOKUP,
-       SA_UPDATE,
-       SA_ADD,
-       SA_REPLACE,
-       SA_REMOVE
-} sa_data_op_t;
-
-/*
- * Opaque handle used for most sa functions
- *
- * This needs to be kept as small as possible.
- */
-
-struct sa_handle {
-       kmutex_t        sa_lock;
-       dmu_buf_t       *sa_bonus;
-       dmu_buf_t       *sa_spill;
-       objset_t        *sa_os;
-       void            *sa_userp;
-       sa_idx_tab_t    *sa_bonus_tab;   /* idx of bonus */
-       sa_idx_tab_t    *sa_spill_tab; /* only present if spill activated */
-};
-
-#define        SA_GET_DB(hdl, type)    \
-       (dmu_buf_impl_t *)((type == SA_BONUS) ? hdl->sa_bonus : hdl->sa_spill)
-
-#define        SA_GET_HDR(hdl, type) \
-       ((sa_hdr_phys_t *)((dmu_buf_impl_t *)(SA_GET_DB(hdl, \
-       type))->db.db_data))
-
-#define        SA_IDX_TAB_GET(hdl, type) \
-       (type == SA_BONUS ? hdl->sa_bonus_tab : hdl->sa_spill_tab)
-
-#define        IS_SA_BONUSTYPE(a)      \
-       ((a == DMU_OT_SA) ? B_TRUE : B_FALSE)
-
-#define        SA_BONUSTYPE_FROM_DB(db) \
-       (dmu_get_bonustype((dmu_buf_t *)db))
-
-#define        SA_BLKPTR_SPACE (DN_MAX_BONUSLEN - sizeof (blkptr_t))
-
-#define        SA_LAYOUT_NUM(x, type) \
-       ((!IS_SA_BONUSTYPE(type) ? 0 : (((IS_SA_BONUSTYPE(type)) && \
-       ((SA_HDR_LAYOUT_NUM(x)) == 0)) ? 1 : SA_HDR_LAYOUT_NUM(x))))
-
-
-#define        SA_REGISTERED_LEN(sa, attr) sa->sa_attr_table[attr].sa_length
-
-#define        SA_ATTR_LEN(sa, idx, attr, hdr) ((SA_REGISTERED_LEN(sa, attr) == 0) ?\
-       hdr->sa_lengths[TOC_LEN_IDX(idx->sa_idx_tab[attr])] : \
-       SA_REGISTERED_LEN(sa, attr))
-
-#define        SA_SET_HDR(hdr, num, size) \
-       { \
-               hdr->sa_magic = SA_MAGIC; \
-               SA_HDR_LAYOUT_INFO_ENCODE(hdr->sa_layout_info, num, size); \
-       }
-
-#define        SA_ATTR_INFO(sa, idx, hdr, attr, bulk, type, hdl) \
-       { \
-               bulk.sa_size = SA_ATTR_LEN(sa, idx, attr, hdr); \
-               bulk.sa_buftype = type; \
-               bulk.sa_addr = \
-                   (void *)((uintptr_t)TOC_OFF(idx->sa_idx_tab[attr]) + \
-                   (uintptr_t)hdr); \
-}
-
-#define        SA_HDR_SIZE_MATCH_LAYOUT(hdr, tb) \
-       (SA_HDR_SIZE(hdr) == (sizeof (sa_hdr_phys_t) + \
-       (tb->lot_var_sizes > 1 ? P2ROUNDUP((tb->lot_var_sizes - 1) * \
-       sizeof (uint16_t), 8) : 0)))
-
-int sa_add_impl(sa_handle_t *, sa_attr_type_t,
-    uint32_t, sa_data_locator_t, void *, dmu_tx_t *);
-
-void sa_register_update_callback_locked(objset_t *, sa_update_cb_t *);
-int sa_size_locked(sa_handle_t *, sa_attr_type_t, int *);
-
-void sa_default_locator(void **, uint32_t *, uint32_t, boolean_t, void *);
-int sa_attr_size(sa_os_t *, sa_idx_tab_t *, sa_attr_type_t,
-    uint16_t *, sa_hdr_phys_t *);
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_SA_IMPL_H */
diff --git a/module/zfs/include/sys/spa.h b/module/zfs/include/sys/spa.h
deleted file mode 100644 (file)
index 52737eb..0000000
+++ /dev/null
@@ -1,707 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _SYS_SPA_H
-#define        _SYS_SPA_H
-
-#include <sys/avl.h>
-#include <sys/zfs_context.h>
-#include <sys/nvpair.h>
-#include <sys/sysmacros.h>
-#include <sys/types.h>
-#include <sys/fs/zfs.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Forward references that lots of things need.
- */
-typedef struct spa spa_t;
-typedef struct vdev vdev_t;
-typedef struct metaslab metaslab_t;
-typedef struct metaslab_group metaslab_group_t;
-typedef struct metaslab_class metaslab_class_t;
-typedef struct zio zio_t;
-typedef struct zilog zilog_t;
-typedef struct spa_aux_vdev spa_aux_vdev_t;
-typedef struct ddt ddt_t;
-typedef struct ddt_entry ddt_entry_t;
-struct dsl_pool;
-
-/*
- * General-purpose 32-bit and 64-bit bitfield encodings.
- */
-#define        BF32_DECODE(x, low, len)        P2PHASE((x) >> (low), 1U << (len))
-#define        BF64_DECODE(x, low, len)        P2PHASE((x) >> (low), 1ULL << (len))
-#define        BF32_ENCODE(x, low, len)        (P2PHASE((x), 1U << (len)) << (low))
-#define        BF64_ENCODE(x, low, len)        (P2PHASE((x), 1ULL << (len)) << (low))
-
-#define        BF32_GET(x, low, len)           BF32_DECODE(x, low, len)
-#define        BF64_GET(x, low, len)           BF64_DECODE(x, low, len)
-
-#define        BF32_SET(x, low, len, val)      \
-       ((x) ^= BF32_ENCODE((x >> low) ^ (val), low, len))
-#define        BF64_SET(x, low, len, val)      \
-       ((x) ^= BF64_ENCODE((x >> low) ^ (val), low, len))
-
-#define        BF32_GET_SB(x, low, len, shift, bias)   \
-       ((BF32_GET(x, low, len) + (bias)) << (shift))
-#define        BF64_GET_SB(x, low, len, shift, bias)   \
-       ((BF64_GET(x, low, len) + (bias)) << (shift))
-
-#define        BF32_SET_SB(x, low, len, shift, bias, val)      \
-       BF32_SET(x, low, len, ((val) >> (shift)) - (bias))
-#define        BF64_SET_SB(x, low, len, shift, bias, val)      \
-       BF64_SET(x, low, len, ((val) >> (shift)) - (bias))
-
-/*
- * We currently support nine block sizes, from 512 bytes to 128K.
- * We could go higher, but the benefits are near-zero and the cost
- * of COWing a giant block to modify one byte would become excessive.
- */
-#define        SPA_MINBLOCKSHIFT       9
-#define        SPA_MAXBLOCKSHIFT       17
-#define        SPA_MINBLOCKSIZE        (1ULL << SPA_MINBLOCKSHIFT)
-#define        SPA_MAXBLOCKSIZE        (1ULL << SPA_MAXBLOCKSHIFT)
-
-#define        SPA_BLOCKSIZES          (SPA_MAXBLOCKSHIFT - SPA_MINBLOCKSHIFT + 1)
-
-/*
- * Size of block to hold the configuration data (a packed nvlist)
- */
-#define        SPA_CONFIG_BLOCKSIZE    (1 << 14)
-
-/*
- * The DVA size encodings for LSIZE and PSIZE support blocks up to 32MB.
- * The ASIZE encoding should be at least 64 times larger (6 more bits)
- * to support up to 4-way RAID-Z mirror mode with worst-case gang block
- * overhead, three DVAs per bp, plus one more bit in case we do anything
- * else that expands the ASIZE.
- */
-#define        SPA_LSIZEBITS           16      /* LSIZE up to 32M (2^16 * 512) */
-#define        SPA_PSIZEBITS           16      /* PSIZE up to 32M (2^16 * 512) */
-#define        SPA_ASIZEBITS           24      /* ASIZE up to 64 times larger  */
-
-/*
- * All SPA data is represented by 128-bit data virtual addresses (DVAs).
- * The members of the dva_t should be considered opaque outside the SPA.
- */
-typedef struct dva {
-       uint64_t        dva_word[2];
-} dva_t;
-
-/*
- * Each block has a 256-bit checksum -- strong enough for cryptographic hashes.
- */
-typedef struct zio_cksum {
-       uint64_t        zc_word[4];
-} zio_cksum_t;
-
-/*
- * Each block is described by its DVAs, time of birth, checksum, etc.
- * The word-by-word, bit-by-bit layout of the blkptr is as follows:
- *
- *     64      56      48      40      32      24      16      8       0
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * 0   |               vdev1           | GRID  |         ASIZE         |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * 1   |G|                      offset1                                |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * 2   |               vdev2           | GRID  |         ASIZE         |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * 3   |G|                      offset2                                |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * 4   |               vdev3           | GRID  |         ASIZE         |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * 5   |G|                      offset3                                |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * 6   |BDX|lvl| type  | cksum | comp  |     PSIZE     |     LSIZE     |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * 7   |                       padding                                 |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * 8   |                       padding                                 |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * 9   |                       physical birth txg                      |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * a   |                       logical birth txg                       |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * b   |                       fill count                              |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * c   |                       checksum[0]                             |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * d   |                       checksum[1]                             |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * e   |                       checksum[2]                             |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- * f   |                       checksum[3]                             |
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- *
- * Legend:
- *
- * vdev                virtual device ID
- * offset      offset into virtual device
- * LSIZE       logical size
- * PSIZE       physical size (after compression)
- * ASIZE       allocated size (including RAID-Z parity and gang block headers)
- * GRID                RAID-Z layout information (reserved for future use)
- * cksum       checksum function
- * comp                compression function
- * G           gang block indicator
- * B           byteorder (endianness)
- * D           dedup
- * X           unused
- * lvl         level of indirection
- * type                DMU object type
- * phys birth  txg of block allocation; zero if same as logical birth txg
- * log. birth  transaction group in which the block was logically born
- * fill count  number of non-zero blocks under this bp
- * checksum[4] 256-bit checksum of the data this bp describes
- */
-#define        SPA_BLKPTRSHIFT 7               /* blkptr_t is 128 bytes        */
-#define        SPA_DVAS_PER_BP 3               /* Number of DVAs in a bp       */
-
-typedef struct blkptr {
-       dva_t           blk_dva[SPA_DVAS_PER_BP]; /* Data Virtual Addresses */
-       uint64_t        blk_prop;       /* size, compression, type, etc     */
-       uint64_t        blk_pad[2];     /* Extra space for the future       */
-       uint64_t        blk_phys_birth; /* txg when block was allocated     */
-       uint64_t        blk_birth;      /* transaction group at birth       */
-       uint64_t        blk_fill;       /* fill count                       */
-       zio_cksum_t     blk_cksum;      /* 256-bit checksum                 */
-} blkptr_t;
-
-/*
- * Macros to get and set fields in a bp or DVA.
- */
-#define        DVA_GET_ASIZE(dva)      \
-       BF64_GET_SB((dva)->dva_word[0], 0, 24, SPA_MINBLOCKSHIFT, 0)
-#define        DVA_SET_ASIZE(dva, x)   \
-       BF64_SET_SB((dva)->dva_word[0], 0, 24, SPA_MINBLOCKSHIFT, 0, x)
-
-#define        DVA_GET_GRID(dva)       BF64_GET((dva)->dva_word[0], 24, 8)
-#define        DVA_SET_GRID(dva, x)    BF64_SET((dva)->dva_word[0], 24, 8, x)
-
-#define        DVA_GET_VDEV(dva)       BF64_GET((dva)->dva_word[0], 32, 32)
-#define        DVA_SET_VDEV(dva, x)    BF64_SET((dva)->dva_word[0], 32, 32, x)
-
-#define        DVA_GET_OFFSET(dva)     \
-       BF64_GET_SB((dva)->dva_word[1], 0, 63, SPA_MINBLOCKSHIFT, 0)
-#define        DVA_SET_OFFSET(dva, x)  \
-       BF64_SET_SB((dva)->dva_word[1], 0, 63, SPA_MINBLOCKSHIFT, 0, x)
-
-#define        DVA_GET_GANG(dva)       BF64_GET((dva)->dva_word[1], 63, 1)
-#define        DVA_SET_GANG(dva, x)    BF64_SET((dva)->dva_word[1], 63, 1, x)
-
-#define        BP_GET_LSIZE(bp)        \
-       BF64_GET_SB((bp)->blk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1)
-#define        BP_SET_LSIZE(bp, x)     \
-       BF64_SET_SB((bp)->blk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1, x)
-
-#define        BP_GET_PSIZE(bp)        \
-       BF64_GET_SB((bp)->blk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1)
-#define        BP_SET_PSIZE(bp, x)     \
-       BF64_SET_SB((bp)->blk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1, x)
-
-#define        BP_GET_COMPRESS(bp)             BF64_GET((bp)->blk_prop, 32, 8)
-#define        BP_SET_COMPRESS(bp, x)          BF64_SET((bp)->blk_prop, 32, 8, x)
-
-#define        BP_GET_CHECKSUM(bp)             BF64_GET((bp)->blk_prop, 40, 8)
-#define        BP_SET_CHECKSUM(bp, x)          BF64_SET((bp)->blk_prop, 40, 8, x)
-
-#define        BP_GET_TYPE(bp)                 BF64_GET((bp)->blk_prop, 48, 8)
-#define        BP_SET_TYPE(bp, x)              BF64_SET((bp)->blk_prop, 48, 8, x)
-
-#define        BP_GET_LEVEL(bp)                BF64_GET((bp)->blk_prop, 56, 5)
-#define        BP_SET_LEVEL(bp, x)             BF64_SET((bp)->blk_prop, 56, 5, x)
-
-#define        BP_GET_PROP_BIT_61(bp)          BF64_GET((bp)->blk_prop, 61, 1)
-#define        BP_SET_PROP_BIT_61(bp, x)       BF64_SET((bp)->blk_prop, 61, 1, x)
-
-#define        BP_GET_DEDUP(bp)                BF64_GET((bp)->blk_prop, 62, 1)
-#define        BP_SET_DEDUP(bp, x)             BF64_SET((bp)->blk_prop, 62, 1, x)
-
-#define        BP_GET_BYTEORDER(bp)            (0 - BF64_GET((bp)->blk_prop, 63, 1))
-#define        BP_SET_BYTEORDER(bp, x)         BF64_SET((bp)->blk_prop, 63, 1, x)
-
-#define        BP_PHYSICAL_BIRTH(bp)           \
-       ((bp)->blk_phys_birth ? (bp)->blk_phys_birth : (bp)->blk_birth)
-
-#define        BP_SET_BIRTH(bp, logical, physical)     \
-{                                              \
-       (bp)->blk_birth = (logical);            \
-       (bp)->blk_phys_birth = ((logical) == (physical) ? 0 : (physical)); \
-}
-
-#define        BP_GET_ASIZE(bp)        \
-       (DVA_GET_ASIZE(&(bp)->blk_dva[0]) + DVA_GET_ASIZE(&(bp)->blk_dva[1]) + \
-               DVA_GET_ASIZE(&(bp)->blk_dva[2]))
-
-#define        BP_GET_UCSIZE(bp) \
-       ((BP_GET_LEVEL(bp) > 0 || dmu_ot[BP_GET_TYPE(bp)].ot_metadata) ? \
-       BP_GET_PSIZE(bp) : BP_GET_LSIZE(bp))
-
-#define        BP_GET_NDVAS(bp)        \
-       (!!DVA_GET_ASIZE(&(bp)->blk_dva[0]) + \
-       !!DVA_GET_ASIZE(&(bp)->blk_dva[1]) + \
-       !!DVA_GET_ASIZE(&(bp)->blk_dva[2]))
-
-#define        BP_COUNT_GANG(bp)       \
-       (DVA_GET_GANG(&(bp)->blk_dva[0]) + \
-       DVA_GET_GANG(&(bp)->blk_dva[1]) + \
-       DVA_GET_GANG(&(bp)->blk_dva[2]))
-
-#define        DVA_EQUAL(dva1, dva2)   \
-       ((dva1)->dva_word[1] == (dva2)->dva_word[1] && \
-       (dva1)->dva_word[0] == (dva2)->dva_word[0])
-
-#define        BP_EQUAL(bp1, bp2)      \
-       (BP_PHYSICAL_BIRTH(bp1) == BP_PHYSICAL_BIRTH(bp2) &&    \
-       DVA_EQUAL(&(bp1)->blk_dva[0], &(bp2)->blk_dva[0]) &&    \
-       DVA_EQUAL(&(bp1)->blk_dva[1], &(bp2)->blk_dva[1]) &&    \
-       DVA_EQUAL(&(bp1)->blk_dva[2], &(bp2)->blk_dva[2]))
-
-#define        ZIO_CHECKSUM_EQUAL(zc1, zc2) \
-       (0 == (((zc1).zc_word[0] - (zc2).zc_word[0]) | \
-       ((zc1).zc_word[1] - (zc2).zc_word[1]) | \
-       ((zc1).zc_word[2] - (zc2).zc_word[2]) | \
-       ((zc1).zc_word[3] - (zc2).zc_word[3])))
-
-#define        DVA_IS_VALID(dva)       (DVA_GET_ASIZE(dva) != 0)
-
-#define        ZIO_SET_CHECKSUM(zcp, w0, w1, w2, w3)   \
-{                                              \
-       (zcp)->zc_word[0] = w0;                 \
-       (zcp)->zc_word[1] = w1;                 \
-       (zcp)->zc_word[2] = w2;                 \
-       (zcp)->zc_word[3] = w3;                 \
-}
-
-#define        BP_IDENTITY(bp)         (&(bp)->blk_dva[0])
-#define        BP_IS_GANG(bp)          DVA_GET_GANG(BP_IDENTITY(bp))
-#define        BP_IS_HOLE(bp)          ((bp)->blk_birth == 0)
-
-/* BP_IS_RAIDZ(bp) assumes no block compression */
-#define        BP_IS_RAIDZ(bp)         (DVA_GET_ASIZE(&(bp)->blk_dva[0]) > \
-                               BP_GET_PSIZE(bp))
-
-#define        BP_ZERO(bp)                             \
-{                                              \
-       (bp)->blk_dva[0].dva_word[0] = 0;       \
-       (bp)->blk_dva[0].dva_word[1] = 0;       \
-       (bp)->blk_dva[1].dva_word[0] = 0;       \
-       (bp)->blk_dva[1].dva_word[1] = 0;       \
-       (bp)->blk_dva[2].dva_word[0] = 0;       \
-       (bp)->blk_dva[2].dva_word[1] = 0;       \
-       (bp)->blk_prop = 0;                     \
-       (bp)->blk_pad[0] = 0;                   \
-       (bp)->blk_pad[1] = 0;                   \
-       (bp)->blk_phys_birth = 0;               \
-       (bp)->blk_birth = 0;                    \
-       (bp)->blk_fill = 0;                     \
-       ZIO_SET_CHECKSUM(&(bp)->blk_cksum, 0, 0, 0, 0); \
-}
-
-/*
- * Note: the byteorder is either 0 or -1, both of which are palindromes.
- * This simplifies the endianness handling a bit.
- */
-#ifdef _BIG_ENDIAN
-#define        ZFS_HOST_BYTEORDER      (0ULL)
-#else
-#define        ZFS_HOST_BYTEORDER      (-1ULL)
-#endif
-
-#define        BP_SHOULD_BYTESWAP(bp)  (BP_GET_BYTEORDER(bp) != ZFS_HOST_BYTEORDER)
-
-#define        BP_SPRINTF_LEN  320
-
-/*
- * This macro allows code sharing between zfs, libzpool, and mdb.
- * 'func' is either snprintf() or mdb_snprintf().
- * 'ws' (whitespace) can be ' ' for single-line format, '\n' for multi-line.
- */
-#define        SPRINTF_BLKPTR(func, ws, buf, bp, type, checksum, compress)     \
-{                                                                      \
-       static const char *copyname[] =                                 \
-           { "zero", "single", "double", "triple" };                   \
-       int size = BP_SPRINTF_LEN;                                      \
-       int len = 0;                                                    \
-       int copies = 0;                                                 \
-       int d;                                                          \
-                                                                       \
-       if (bp == NULL) {                                               \
-               len = func(buf + len, size - len, "<NULL>");            \
-       } else if (BP_IS_HOLE(bp)) {                                    \
-               len = func(buf + len, size - len, "<hole>");            \
-       } else {                                                        \
-               for (d = 0; d < BP_GET_NDVAS(bp); d++) {                \
-                       const dva_t *dva = &bp->blk_dva[d];             \
-                       if (DVA_IS_VALID(dva))                          \
-                               copies++;                               \
-                       len += func(buf + len, size - len,              \
-                           "DVA[%d]=<%llu:%llx:%llx>%c", d,            \
-                           (u_longlong_t)DVA_GET_VDEV(dva),            \
-                           (u_longlong_t)DVA_GET_OFFSET(dva),          \
-                           (u_longlong_t)DVA_GET_ASIZE(dva),           \
-                           ws);                                        \
-               }                                                       \
-               if (BP_IS_GANG(bp) &&                                   \
-                   DVA_GET_ASIZE(&bp->blk_dva[2]) <=                   \
-                   DVA_GET_ASIZE(&bp->blk_dva[1]) / 2)                 \
-                       copies--;                                       \
-               len += func(buf + len, size - len,                      \
-                   "[L%llu %s] %s %s %s %s %s %s%c"                    \
-                   "size=%llxL/%llxP birth=%lluL/%lluP fill=%llu%c"    \
-                   "cksum=%llx:%llx:%llx:%llx",                        \
-                   (u_longlong_t)BP_GET_LEVEL(bp),                     \
-                   type,                                               \
-                   checksum,                                           \
-                   compress,                                           \
-                   BP_GET_BYTEORDER(bp) == 0 ? "BE" : "LE",            \
-                   BP_IS_GANG(bp) ? "gang" : "contiguous",             \
-                   BP_GET_DEDUP(bp) ? "dedup" : "unique",              \
-                   copyname[copies],                                   \
-                   ws,                                                 \
-                   (u_longlong_t)BP_GET_LSIZE(bp),                     \
-                   (u_longlong_t)BP_GET_PSIZE(bp),                     \
-                   (u_longlong_t)bp->blk_birth,                        \
-                   (u_longlong_t)BP_PHYSICAL_BIRTH(bp),                \
-                   (u_longlong_t)bp->blk_fill,                         \
-                   ws,                                                 \
-                   (u_longlong_t)bp->blk_cksum.zc_word[0],             \
-                   (u_longlong_t)bp->blk_cksum.zc_word[1],             \
-                   (u_longlong_t)bp->blk_cksum.zc_word[2],             \
-                   (u_longlong_t)bp->blk_cksum.zc_word[3]);            \
-       }                                                               \
-       ASSERT(len < size);                                             \
-}
-
-#include <sys/dmu.h>
-
-#define        BP_GET_BUFC_TYPE(bp)                                            \
-       (((BP_GET_LEVEL(bp) > 0) || (dmu_ot[BP_GET_TYPE(bp)].ot_metadata)) ? \
-       ARC_BUFC_METADATA : ARC_BUFC_DATA);
-
-typedef enum spa_import_type {
-       SPA_IMPORT_EXISTING,
-       SPA_IMPORT_ASSEMBLE
-} spa_import_type_t;
-
-/* state manipulation functions */
-extern int spa_open(const char *pool, spa_t **, void *tag);
-extern int spa_open_rewind(const char *pool, spa_t **, void *tag,
-    nvlist_t *policy, nvlist_t **config);
-extern int spa_get_stats(const char *pool, nvlist_t **config,
-    char *altroot, size_t buflen);
-extern int spa_create(const char *pool, nvlist_t *config, nvlist_t *props,
-    const char *history_str, nvlist_t *zplprops);
-extern int spa_import_rootpool(char *devpath, char *devid);
-extern int spa_import(const char *pool, nvlist_t *config, nvlist_t *props,
-    uint64_t flags);
-extern nvlist_t *spa_tryimport(nvlist_t *tryconfig);
-extern int spa_destroy(char *pool);
-extern int spa_export(char *pool, nvlist_t **oldconfig, boolean_t force,
-    boolean_t hardforce);
-extern int spa_reset(char *pool);
-extern void spa_async_request(spa_t *spa, int flag);
-extern void spa_async_unrequest(spa_t *spa, int flag);
-extern void spa_async_suspend(spa_t *spa);
-extern void spa_async_resume(spa_t *spa);
-extern spa_t *spa_inject_addref(char *pool);
-extern void spa_inject_delref(spa_t *spa);
-extern void spa_scan_stat_init(spa_t *spa);
-extern int spa_scan_get_stats(spa_t *spa, pool_scan_stat_t *ps);
-
-#define        SPA_ASYNC_CONFIG_UPDATE 0x01
-#define        SPA_ASYNC_REMOVE        0x02
-#define        SPA_ASYNC_PROBE         0x04
-#define        SPA_ASYNC_RESILVER_DONE 0x08
-#define        SPA_ASYNC_RESILVER      0x10
-#define        SPA_ASYNC_AUTOEXPAND    0x20
-#define        SPA_ASYNC_REMOVE_DONE   0x40
-#define        SPA_ASYNC_REMOVE_STOP   0x80
-
-/*
- * Controls the behavior of spa_vdev_remove().
- */
-#define        SPA_REMOVE_UNSPARE      0x01
-#define        SPA_REMOVE_DONE         0x02
-
-/* device manipulation */
-extern int spa_vdev_add(spa_t *spa, nvlist_t *nvroot);
-extern int spa_vdev_attach(spa_t *spa, uint64_t guid, nvlist_t *nvroot,
-    int replacing);
-extern int spa_vdev_detach(spa_t *spa, uint64_t guid, uint64_t pguid,
-    int replace_done);
-extern int spa_vdev_remove(spa_t *spa, uint64_t guid, boolean_t unspare);
-extern boolean_t spa_vdev_remove_active(spa_t *spa);
-extern int spa_vdev_setpath(spa_t *spa, uint64_t guid, const char *newpath);
-extern int spa_vdev_setfru(spa_t *spa, uint64_t guid, const char *newfru);
-extern int spa_vdev_split_mirror(spa_t *spa, char *newname, nvlist_t *config,
-    nvlist_t *props, boolean_t exp);
-
-/* spare state (which is global across all pools) */
-extern void spa_spare_add(vdev_t *vd);
-extern void spa_spare_remove(vdev_t *vd);
-extern boolean_t spa_spare_exists(uint64_t guid, uint64_t *pool, int *refcnt);
-extern void spa_spare_activate(vdev_t *vd);
-
-/* L2ARC state (which is global across all pools) */
-extern void spa_l2cache_add(vdev_t *vd);
-extern void spa_l2cache_remove(vdev_t *vd);
-extern boolean_t spa_l2cache_exists(uint64_t guid, uint64_t *pool);
-extern void spa_l2cache_activate(vdev_t *vd);
-extern void spa_l2cache_drop(spa_t *spa);
-
-/* scanning */
-extern int spa_scan(spa_t *spa, pool_scan_func_t func);
-extern int spa_scan_stop(spa_t *spa);
-
-/* spa syncing */
-extern void spa_sync(spa_t *spa, uint64_t txg); /* only for DMU use */
-extern void spa_sync_allpools(void);
-
-/*
- * DEFERRED_FREE must be large enough that regular blocks are not
- * deferred.  XXX so can't we change it back to 1?
- */
-#define        SYNC_PASS_DEFERRED_FREE 2       /* defer frees after this pass */
-#define        SYNC_PASS_DONT_COMPRESS 4       /* don't compress after this pass */
-#define        SYNC_PASS_REWRITE       1       /* rewrite new bps after this pass */
-
-/* spa namespace global mutex */
-extern kmutex_t spa_namespace_lock;
-
-/*
- * SPA configuration functions in spa_config.c
- */
-
-#define        SPA_CONFIG_UPDATE_POOL  0
-#define        SPA_CONFIG_UPDATE_VDEVS 1
-
-extern void spa_config_sync(spa_t *, boolean_t, boolean_t);
-extern void spa_config_load(void);
-extern nvlist_t *spa_all_configs(uint64_t *);
-extern void spa_config_set(spa_t *spa, nvlist_t *config);
-extern nvlist_t *spa_config_generate(spa_t *spa, vdev_t *vd, uint64_t txg,
-    int getstats);
-extern void spa_config_update(spa_t *spa, int what);
-
-/*
- * Miscellaneous SPA routines in spa_misc.c
- */
-
-/* Namespace manipulation */
-extern spa_t *spa_lookup(const char *name);
-extern spa_t *spa_add(const char *name, nvlist_t *config, const char *altroot);
-extern void spa_remove(spa_t *spa);
-extern spa_t *spa_next(spa_t *prev);
-
-/* Refcount functions */
-extern void spa_open_ref(spa_t *spa, void *tag);
-extern void spa_close(spa_t *spa, void *tag);
-extern boolean_t spa_refcount_zero(spa_t *spa);
-
-#define        SCL_NONE        0x00
-#define        SCL_CONFIG      0x01
-#define        SCL_STATE       0x02
-#define        SCL_L2ARC       0x04            /* hack until L2ARC 2.0 */
-#define        SCL_ALLOC       0x08
-#define        SCL_ZIO         0x10
-#define        SCL_FREE        0x20
-#define        SCL_VDEV        0x40
-#define        SCL_LOCKS       7
-#define        SCL_ALL         ((1 << SCL_LOCKS) - 1)
-#define        SCL_STATE_ALL   (SCL_STATE | SCL_L2ARC | SCL_ZIO)
-
-/* Pool configuration locks */
-extern int spa_config_tryenter(spa_t *spa, int locks, void *tag, krw_t rw);
-extern void spa_config_enter(spa_t *spa, int locks, void *tag, krw_t rw);
-extern void spa_config_exit(spa_t *spa, int locks, void *tag);
-extern int spa_config_held(spa_t *spa, int locks, krw_t rw);
-
-/* Pool vdev add/remove lock */
-extern uint64_t spa_vdev_enter(spa_t *spa);
-extern uint64_t spa_vdev_config_enter(spa_t *spa);
-extern void spa_vdev_config_exit(spa_t *spa, vdev_t *vd, uint64_t txg,
-    int error, char *tag);
-extern int spa_vdev_exit(spa_t *spa, vdev_t *vd, uint64_t txg, int error);
-
-/* Pool vdev state change lock */
-extern void spa_vdev_state_enter(spa_t *spa, int oplock);
-extern int spa_vdev_state_exit(spa_t *spa, vdev_t *vd, int error);
-
-/* Log state */
-typedef enum spa_log_state {
-       SPA_LOG_UNKNOWN = 0,    /* unknown log state */
-       SPA_LOG_MISSING,        /* missing log(s) */
-       SPA_LOG_CLEAR,          /* clear the log(s) */
-       SPA_LOG_GOOD,           /* log(s) are good */
-} spa_log_state_t;
-
-extern spa_log_state_t spa_get_log_state(spa_t *spa);
-extern void spa_set_log_state(spa_t *spa, spa_log_state_t state);
-extern int spa_offline_log(spa_t *spa);
-
-/* Log claim callback */
-extern void spa_claim_notify(zio_t *zio);
-
-/* Accessor functions */
-extern boolean_t spa_shutting_down(spa_t *spa);
-extern struct dsl_pool *spa_get_dsl(spa_t *spa);
-extern blkptr_t *spa_get_rootblkptr(spa_t *spa);
-extern void spa_set_rootblkptr(spa_t *spa, const blkptr_t *bp);
-extern void spa_altroot(spa_t *, char *, size_t);
-extern int spa_sync_pass(spa_t *spa);
-extern char *spa_name(spa_t *spa);
-extern uint64_t spa_guid(spa_t *spa);
-extern uint64_t spa_last_synced_txg(spa_t *spa);
-extern uint64_t spa_first_txg(spa_t *spa);
-extern uint64_t spa_syncing_txg(spa_t *spa);
-extern uint64_t spa_version(spa_t *spa);
-extern pool_state_t spa_state(spa_t *spa);
-extern spa_load_state_t spa_load_state(spa_t *spa);
-extern uint64_t spa_freeze_txg(spa_t *spa);
-extern uint64_t spa_get_asize(spa_t *spa, uint64_t lsize);
-extern uint64_t spa_get_dspace(spa_t *spa);
-extern void spa_update_dspace(spa_t *spa);
-extern uint64_t spa_version(spa_t *spa);
-extern boolean_t spa_deflate(spa_t *spa);
-extern metaslab_class_t *spa_normal_class(spa_t *spa);
-extern metaslab_class_t *spa_log_class(spa_t *spa);
-extern int spa_max_replication(spa_t *spa);
-extern int spa_prev_software_version(spa_t *spa);
-extern int spa_busy(void);
-extern uint8_t spa_get_failmode(spa_t *spa);
-extern boolean_t spa_suspended(spa_t *spa);
-extern uint64_t spa_bootfs(spa_t *spa);
-extern uint64_t spa_delegation(spa_t *spa);
-extern objset_t *spa_meta_objset(spa_t *spa);
-
-/* Miscellaneous support routines */
-extern int spa_rename(const char *oldname, const char *newname);
-extern spa_t *spa_by_guid(uint64_t pool_guid, uint64_t device_guid);
-extern boolean_t spa_guid_exists(uint64_t pool_guid, uint64_t device_guid);
-extern char *spa_strdup(const char *);
-extern void spa_strfree(char *);
-extern uint64_t spa_get_random(uint64_t range);
-extern uint64_t spa_generate_guid(spa_t *spa);
-extern void sprintf_blkptr(char *buf, const blkptr_t *bp);
-extern void spa_freeze(spa_t *spa);
-extern void spa_upgrade(spa_t *spa, uint64_t version);
-extern void spa_evict_all(void);
-extern vdev_t *spa_lookup_by_guid(spa_t *spa, uint64_t guid,
-    boolean_t l2cache);
-extern boolean_t spa_has_spare(spa_t *, uint64_t guid);
-extern uint64_t dva_get_dsize_sync(spa_t *spa, const dva_t *dva);
-extern uint64_t bp_get_dsize_sync(spa_t *spa, const blkptr_t *bp);
-extern uint64_t bp_get_dsize(spa_t *spa, const blkptr_t *bp);
-extern boolean_t spa_has_slogs(spa_t *spa);
-extern boolean_t spa_is_root(spa_t *spa);
-extern boolean_t spa_writeable(spa_t *spa);
-
-extern int spa_mode(spa_t *spa);
-extern uint64_t strtonum(const char *str, char **nptr);
-
-/* history logging */
-typedef enum history_log_type {
-       LOG_CMD_POOL_CREATE,
-       LOG_CMD_NORMAL,
-       LOG_INTERNAL
-} history_log_type_t;
-
-typedef struct history_arg {
-       char *ha_history_str;
-       history_log_type_t ha_log_type;
-       history_internal_events_t ha_event;
-       char *ha_zone;
-       uid_t ha_uid;
-} history_arg_t;
-
-extern char *spa_his_ievent_table[];
-
-extern void spa_history_create_obj(spa_t *spa, dmu_tx_t *tx);
-extern int spa_history_get(spa_t *spa, uint64_t *offset, uint64_t *len_read,
-    char *his_buf);
-extern int spa_history_log(spa_t *spa, const char *his_buf,
-    history_log_type_t what);
-extern void spa_history_log_internal(history_internal_events_t event,
-    spa_t *spa, dmu_tx_t *tx, const char *fmt, ...);
-extern void spa_history_log_version(spa_t *spa, history_internal_events_t evt);
-
-/* error handling */
-struct zbookmark;
-extern void spa_log_error(spa_t *spa, zio_t *zio);
-extern void zfs_ereport_post(const char *class, spa_t *spa, vdev_t *vd,
-    zio_t *zio, uint64_t stateoroffset, uint64_t length);
-extern void zfs_post_remove(spa_t *spa, vdev_t *vd);
-extern void zfs_post_state_change(spa_t *spa, vdev_t *vd);
-extern void zfs_post_autoreplace(spa_t *spa, vdev_t *vd);
-extern uint64_t spa_get_errlog_size(spa_t *spa);
-extern int spa_get_errlog(spa_t *spa, void *uaddr, size_t *count);
-extern void spa_errlog_rotate(spa_t *spa);
-extern void spa_errlog_drain(spa_t *spa);
-extern void spa_errlog_sync(spa_t *spa, uint64_t txg);
-extern void spa_get_errlists(spa_t *spa, avl_tree_t *last, avl_tree_t *scrub);
-
-/* vdev cache */
-extern void vdev_cache_stat_init(void);
-extern void vdev_cache_stat_fini(void);
-
-/* Initialization and termination */
-extern void spa_init(int flags);
-extern void spa_fini(void);
-extern void spa_boot_init(void);
-
-/* properties */
-extern int spa_prop_set(spa_t *spa, nvlist_t *nvp);
-extern int spa_prop_get(spa_t *spa, nvlist_t **nvp);
-extern void spa_prop_clear_bootfs(spa_t *spa, uint64_t obj, dmu_tx_t *tx);
-extern void spa_configfile_set(spa_t *, nvlist_t *, boolean_t);
-
-/* asynchronous event notification */
-extern void spa_event_notify(spa_t *spa, vdev_t *vdev, const char *name);
-
-#ifdef ZFS_DEBUG
-#define        dprintf_bp(bp, fmt, ...) do {                           \
-       if (zfs_flags & ZFS_DEBUG_DPRINTF) {                    \
-       char *__blkbuf = kmem_alloc(BP_SPRINTF_LEN, KM_SLEEP);  \
-       sprintf_blkptr(__blkbuf, (bp));                         \
-       dprintf(fmt " %s\n", __VA_ARGS__, __blkbuf);            \
-       kmem_free(__blkbuf, BP_SPRINTF_LEN);                    \
-       } \
-_NOTE(CONSTCOND) } while (0)
-#else
-#define        dprintf_bp(bp, fmt, ...)
-#endif
-
-extern int spa_mode_global;                    /* mode, e.g. FREAD | FWRITE */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_SPA_H */
diff --git a/module/zfs/include/sys/spa_boot.h b/module/zfs/include/sys/spa_boot.h
deleted file mode 100644 (file)
index 1d3622f..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_SPA_BOOT_H
-#define        _SYS_SPA_BOOT_H
-
-#include <sys/nvpair.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern char *spa_get_bootprop(char *prop);
-extern void spa_free_bootprop(char *prop);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_SPA_BOOT_H */
diff --git a/module/zfs/include/sys/spa_impl.h b/module/zfs/include/sys/spa_impl.h
deleted file mode 100644 (file)
index 1c34873..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _SYS_SPA_IMPL_H
-#define        _SYS_SPA_IMPL_H
-
-#include <sys/spa.h>
-#include <sys/vdev.h>
-#include <sys/metaslab.h>
-#include <sys/dmu.h>
-#include <sys/dsl_pool.h>
-#include <sys/uberblock_impl.h>
-#include <sys/zfs_context.h>
-#include <sys/avl.h>
-#include <sys/refcount.h>
-#include <sys/bplist.h>
-#include <sys/bpobj.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct spa_error_entry {
-       zbookmark_t     se_bookmark;
-       char            *se_name;
-       avl_node_t      se_avl;
-} spa_error_entry_t;
-
-typedef struct spa_history_phys {
-       uint64_t sh_pool_create_len;    /* ending offset of zpool create */
-       uint64_t sh_phys_max_off;       /* physical EOF */
-       uint64_t sh_bof;                /* logical BOF */
-       uint64_t sh_eof;                /* logical EOF */
-       uint64_t sh_records_lost;       /* num of records overwritten */
-} spa_history_phys_t;
-
-struct spa_aux_vdev {
-       uint64_t        sav_object;             /* MOS object for device list */
-       nvlist_t        *sav_config;            /* cached device config */
-       vdev_t          **sav_vdevs;            /* devices */
-       int             sav_count;              /* number devices */
-       boolean_t       sav_sync;               /* sync the device list */
-       nvlist_t        **sav_pending;          /* pending device additions */
-       uint_t          sav_npending;           /* # pending devices */
-};
-
-typedef struct spa_config_lock {
-       kmutex_t        scl_lock;
-       kthread_t       *scl_writer;
-       int             scl_write_wanted;
-       kcondvar_t      scl_cv;
-       refcount_t      scl_count;
-} spa_config_lock_t;
-
-typedef struct spa_config_dirent {
-       list_node_t     scd_link;
-       char            *scd_path;
-} spa_config_dirent_t;
-
-enum zio_taskq_type {
-       ZIO_TASKQ_ISSUE = 0,
-       ZIO_TASKQ_ISSUE_HIGH,
-       ZIO_TASKQ_INTERRUPT,
-       ZIO_TASKQ_INTERRUPT_HIGH,
-       ZIO_TASKQ_TYPES
-};
-
-/*
- * State machine for the zpool-pooname process.  The states transitions
- * are done as follows:
- *
- *     From               To                   Routine
- *     PROC_NONE       -> PROC_CREATED         spa_activate()
- *     PROC_CREATED    -> PROC_ACTIVE          spa_thread()
- *     PROC_ACTIVE     -> PROC_DEACTIVATE      spa_deactivate()
- *     PROC_DEACTIVATE -> PROC_GONE            spa_thread()
- *     PROC_GONE       -> PROC_NONE            spa_deactivate()
- */
-typedef enum spa_proc_state {
-       SPA_PROC_NONE,          /* spa_proc = &p0, no process created */
-       SPA_PROC_CREATED,       /* spa_activate() has proc, is waiting */
-       SPA_PROC_ACTIVE,        /* taskqs created, spa_proc set */
-       SPA_PROC_DEACTIVATE,    /* spa_deactivate() requests process exit */
-       SPA_PROC_GONE           /* spa_thread() is exiting, spa_proc = &p0 */
-} spa_proc_state_t;
-
-struct spa {
-       /*
-        * Fields protected by spa_namespace_lock.
-        */
-       char            spa_name[MAXNAMELEN];   /* pool name */
-       avl_node_t      spa_avl;                /* node in spa_namespace_avl */
-       nvlist_t        *spa_config;            /* last synced config */
-       nvlist_t        *spa_config_syncing;    /* currently syncing config */
-       nvlist_t        *spa_config_splitting;  /* config for splitting */
-       nvlist_t        *spa_load_info;         /* info and errors from load */
-       uint64_t        spa_config_txg;         /* txg of last config change */
-       int             spa_sync_pass;          /* iterate-to-convergence */
-       pool_state_t    spa_state;              /* pool state */
-       int             spa_inject_ref;         /* injection references */
-       uint8_t         spa_sync_on;            /* sync threads are running */
-       spa_load_state_t spa_load_state;        /* current load operation */
-       uint64_t        spa_import_flags;       /* import specific flags */
-       taskq_t         *spa_zio_taskq[ZIO_TYPES][ZIO_TASKQ_TYPES];
-       dsl_pool_t      *spa_dsl_pool;
-       metaslab_class_t *spa_normal_class;     /* normal data class */
-       metaslab_class_t *spa_log_class;        /* intent log data class */
-       uint64_t        spa_first_txg;          /* first txg after spa_open() */
-       uint64_t        spa_final_txg;          /* txg of export/destroy */
-       uint64_t        spa_freeze_txg;         /* freeze pool at this txg */
-       uint64_t        spa_load_max_txg;       /* best initial ub_txg */
-       uint64_t        spa_claim_max_txg;      /* highest claimed birth txg */
-       timespec_t      spa_loaded_ts;          /* 1st successful open time */
-       objset_t        *spa_meta_objset;       /* copy of dp->dp_meta_objset */
-       txg_list_t      spa_vdev_txg_list;      /* per-txg dirty vdev list */
-       vdev_t          *spa_root_vdev;         /* top-level vdev container */
-       uint64_t        spa_load_guid;          /* initial guid for spa_load */
-       list_t          spa_config_dirty_list;  /* vdevs with dirty config */
-       list_t          spa_state_dirty_list;   /* vdevs with dirty state */
-       spa_aux_vdev_t  spa_spares;             /* hot spares */
-       spa_aux_vdev_t  spa_l2cache;            /* L2ARC cache devices */
-       uint64_t        spa_config_object;      /* MOS object for pool config */
-       uint64_t        spa_config_generation;  /* config generation number */
-       uint64_t        spa_syncing_txg;        /* txg currently syncing */
-       bpobj_t         spa_deferred_bpobj;     /* deferred-free bplist */
-       bplist_t        spa_free_bplist[TXG_SIZE]; /* bplist of stuff to free */
-       uberblock_t     spa_ubsync;             /* last synced uberblock */
-       uberblock_t     spa_uberblock;          /* current uberblock */
-       boolean_t       spa_extreme_rewind;     /* rewind past deferred frees */
-       uint64_t        spa_last_io;            /* lbolt of last non-scan I/O */
-       kmutex_t        spa_scrub_lock;         /* resilver/scrub lock */
-       uint64_t        spa_scrub_inflight;     /* in-flight scrub I/Os */
-       kcondvar_t      spa_scrub_io_cv;        /* scrub I/O completion */
-       uint8_t         spa_scrub_active;       /* active or suspended? */
-       uint8_t         spa_scrub_type;         /* type of scrub we're doing */
-       uint8_t         spa_scrub_finished;     /* indicator to rotate logs */
-       uint8_t         spa_scrub_started;      /* started since last boot */
-       uint8_t         spa_scrub_reopen;       /* scrub doing vdev_reopen */
-       uint64_t        spa_scan_pass_start;    /* start time per pass/reboot */
-       uint64_t        spa_scan_pass_exam;     /* examined bytes per pass */
-       kmutex_t        spa_async_lock;         /* protect async state */
-       kthread_t       *spa_async_thread;      /* thread doing async task */
-       int             spa_async_suspended;    /* async tasks suspended */
-       kcondvar_t      spa_async_cv;           /* wait for thread_exit() */
-       uint16_t        spa_async_tasks;        /* async task mask */
-       char            *spa_root;              /* alternate root directory */
-       uint64_t        spa_ena;                /* spa-wide ereport ENA */
-       int             spa_last_open_failed;   /* error if last open failed */
-       uint64_t        spa_last_ubsync_txg;    /* "best" uberblock txg */
-       uint64_t        spa_last_ubsync_txg_ts; /* timestamp from that ub */
-       uint64_t        spa_load_txg;           /* ub txg that loaded */
-       uint64_t        spa_load_txg_ts;        /* timestamp from that ub */
-       uint64_t        spa_load_meta_errors;   /* verify metadata err count */
-       uint64_t        spa_load_data_errors;   /* verify data err count */
-       uint64_t        spa_verify_min_txg;     /* start txg of verify scrub */
-       kmutex_t        spa_errlog_lock;        /* error log lock */
-       uint64_t        spa_errlog_last;        /* last error log object */
-       uint64_t        spa_errlog_scrub;       /* scrub error log object */
-       kmutex_t        spa_errlist_lock;       /* error list/ereport lock */
-       avl_tree_t      spa_errlist_last;       /* last error list */
-       avl_tree_t      spa_errlist_scrub;      /* scrub error list */
-       uint64_t        spa_deflate;            /* should we deflate? */
-       uint64_t        spa_history;            /* history object */
-       kmutex_t        spa_history_lock;       /* history lock */
-       vdev_t          *spa_pending_vdev;      /* pending vdev additions */
-       kmutex_t        spa_props_lock;         /* property lock */
-       uint64_t        spa_pool_props_object;  /* object for properties */
-       uint64_t        spa_bootfs;             /* default boot filesystem */
-       uint64_t        spa_failmode;           /* failure mode for the pool */
-       uint64_t        spa_delegation;         /* delegation on/off */
-       list_t          spa_config_list;        /* previous cache file(s) */
-       zio_t           *spa_async_zio_root;    /* root of all async I/O */
-       zio_t           *spa_suspend_zio_root;  /* root of all suspended I/O */
-       kmutex_t        spa_suspend_lock;       /* protects suspend_zio_root */
-       kcondvar_t      spa_suspend_cv;         /* notification of resume */
-       uint8_t         spa_suspended;          /* pool is suspended */
-       uint8_t         spa_claiming;           /* pool is doing zil_claim() */
-       boolean_t       spa_is_root;            /* pool is root */
-       int             spa_minref;             /* num refs when first opened */
-       int             spa_mode;               /* FREAD | FWRITE */
-       spa_log_state_t spa_log_state;          /* log state */
-       uint64_t        spa_autoexpand;         /* lun expansion on/off */
-       ddt_t           *spa_ddt[ZIO_CHECKSUM_FUNCTIONS]; /* in-core DDTs */
-       uint64_t        spa_ddt_stat_object;    /* DDT statistics */
-       uint64_t        spa_dedup_ditto;        /* dedup ditto threshold */
-       uint64_t        spa_dedup_checksum;     /* default dedup checksum */
-       uint64_t        spa_dspace;             /* dspace in normal class */
-       kmutex_t        spa_vdev_top_lock;      /* dueling offline/remove */
-       kmutex_t        spa_proc_lock;          /* protects spa_proc* */
-       kcondvar_t      spa_proc_cv;            /* spa_proc_state transitions */
-       spa_proc_state_t spa_proc_state;        /* see definition */
-       proc_t          *spa_proc;              /* "zpool-poolname" process */
-       uint64_t        spa_did;                /* if procp != p0, did of t1 */
-       boolean_t       spa_autoreplace;        /* autoreplace set in open */
-       int             spa_vdev_locks;         /* locks grabbed */
-       uint64_t        spa_creation_version;   /* version at pool creation */
-       uint64_t        spa_prev_software_version;
-       /*
-        * spa_refcnt & spa_config_lock must be the last elements
-        * because refcount_t changes size based on compilation options.
-        * In order for the MDB module to function correctly, the other
-        * fields must remain in the same location.
-        */
-       spa_config_lock_t spa_config_lock[SCL_LOCKS]; /* config changes */
-       refcount_t      spa_refcount;           /* number of opens */
-};
-
-extern char *spa_config_path;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_SPA_IMPL_H */
diff --git a/module/zfs/include/sys/space_map.h b/module/zfs/include/sys/space_map.h
deleted file mode 100644 (file)
index 6f935c9..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_SPACE_MAP_H
-#define        _SYS_SPACE_MAP_H
-
-#include <sys/avl.h>
-#include <sys/dmu.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct space_map_ops space_map_ops_t;
-
-typedef struct space_map {
-       avl_tree_t      sm_root;        /* AVL tree of map segments */
-       uint64_t        sm_space;       /* sum of all segments in the map */
-       uint64_t        sm_start;       /* start of map */
-       uint64_t        sm_size;        /* size of map */
-       uint8_t         sm_shift;       /* unit shift */
-       uint8_t         sm_pad[3];      /* unused */
-       uint8_t         sm_loaded;      /* map loaded? */
-       uint8_t         sm_loading;     /* map loading? */
-       kcondvar_t      sm_load_cv;     /* map load completion */
-       space_map_ops_t *sm_ops;        /* space map block picker ops vector */
-       avl_tree_t      *sm_pp_root;    /* picker-private AVL tree */
-       void            *sm_ppd;        /* picker-private data */
-       kmutex_t        *sm_lock;       /* pointer to lock that protects map */
-} space_map_t;
-
-typedef struct space_seg {
-       avl_node_t      ss_node;        /* AVL node */
-       avl_node_t      ss_pp_node;     /* AVL picker-private node */
-       uint64_t        ss_start;       /* starting offset of this segment */
-       uint64_t        ss_end;         /* ending offset (non-inclusive) */
-} space_seg_t;
-
-typedef struct space_ref {
-       avl_node_t      sr_node;        /* AVL node */
-       uint64_t        sr_offset;      /* offset (start or end) */
-       int64_t         sr_refcnt;      /* associated reference count */
-} space_ref_t;
-
-typedef struct space_map_obj {
-       uint64_t        smo_object;     /* on-disk space map object */
-       uint64_t        smo_objsize;    /* size of the object */
-       uint64_t        smo_alloc;      /* space allocated from the map */
-} space_map_obj_t;
-
-struct space_map_ops {
-       void    (*smop_load)(space_map_t *sm);
-       void    (*smop_unload)(space_map_t *sm);
-       uint64_t (*smop_alloc)(space_map_t *sm, uint64_t size);
-       void    (*smop_claim)(space_map_t *sm, uint64_t start, uint64_t size);
-       void    (*smop_free)(space_map_t *sm, uint64_t start, uint64_t size);
-       uint64_t (*smop_max)(space_map_t *sm);
-       boolean_t (*smop_fragmented)(space_map_t *sm);
-};
-
-/*
- * debug entry
- *
- *    1      3         10                     50
- *  ,---+--------+------------+---------------------------------.
- *  | 1 | action |  syncpass  |        txg (lower bits)         |
- *  `---+--------+------------+---------------------------------'
- *   63  62    60 59        50 49                               0
- *
- *
- *
- * non-debug entry
- *
- *    1               47                   1           15
- *  ,-----------------------------------------------------------.
- *  | 0 |   offset (sm_shift units)    | type |       run       |
- *  `-----------------------------------------------------------'
- *   63  62                          17   16   15               0
- */
-
-/* All this stuff takes and returns bytes */
-#define        SM_RUN_DECODE(x)        (BF64_DECODE(x, 0, 15) + 1)
-#define        SM_RUN_ENCODE(x)        BF64_ENCODE((x) - 1, 0, 15)
-#define        SM_TYPE_DECODE(x)       BF64_DECODE(x, 15, 1)
-#define        SM_TYPE_ENCODE(x)       BF64_ENCODE(x, 15, 1)
-#define        SM_OFFSET_DECODE(x)     BF64_DECODE(x, 16, 47)
-#define        SM_OFFSET_ENCODE(x)     BF64_ENCODE(x, 16, 47)
-#define        SM_DEBUG_DECODE(x)      BF64_DECODE(x, 63, 1)
-#define        SM_DEBUG_ENCODE(x)      BF64_ENCODE(x, 63, 1)
-
-#define        SM_DEBUG_ACTION_DECODE(x)       BF64_DECODE(x, 60, 3)
-#define        SM_DEBUG_ACTION_ENCODE(x)       BF64_ENCODE(x, 60, 3)
-
-#define        SM_DEBUG_SYNCPASS_DECODE(x)     BF64_DECODE(x, 50, 10)
-#define        SM_DEBUG_SYNCPASS_ENCODE(x)     BF64_ENCODE(x, 50, 10)
-
-#define        SM_DEBUG_TXG_DECODE(x)          BF64_DECODE(x, 0, 50)
-#define        SM_DEBUG_TXG_ENCODE(x)          BF64_ENCODE(x, 0, 50)
-
-#define        SM_RUN_MAX                      SM_RUN_DECODE(~0ULL)
-
-#define        SM_ALLOC        0x0
-#define        SM_FREE         0x1
-
-/*
- * The data for a given space map can be kept on blocks of any size.
- * Larger blocks entail fewer i/o operations, but they also cause the
- * DMU to keep more data in-core, and also to waste more i/o bandwidth
- * when only a few blocks have changed since the last transaction group.
- * This could use a lot more research, but for now, set the freelist
- * block size to 4k (2^12).
- */
-#define        SPACE_MAP_BLOCKSHIFT    12
-
-typedef void space_map_func_t(space_map_t *sm, uint64_t start, uint64_t size);
-
-extern void space_map_create(space_map_t *sm, uint64_t start, uint64_t size,
-    uint8_t shift, kmutex_t *lp);
-extern void space_map_destroy(space_map_t *sm);
-extern void space_map_add(space_map_t *sm, uint64_t start, uint64_t size);
-extern void space_map_remove(space_map_t *sm, uint64_t start, uint64_t size);
-extern boolean_t space_map_contains(space_map_t *sm,
-    uint64_t start, uint64_t size);
-extern void space_map_vacate(space_map_t *sm,
-    space_map_func_t *func, space_map_t *mdest);
-extern void space_map_walk(space_map_t *sm,
-    space_map_func_t *func, space_map_t *mdest);
-
-extern void space_map_load_wait(space_map_t *sm);
-extern int space_map_load(space_map_t *sm, space_map_ops_t *ops,
-    uint8_t maptype, space_map_obj_t *smo, objset_t *os);
-extern void space_map_unload(space_map_t *sm);
-
-extern uint64_t space_map_alloc(space_map_t *sm, uint64_t size);
-extern void space_map_claim(space_map_t *sm, uint64_t start, uint64_t size);
-extern void space_map_free(space_map_t *sm, uint64_t start, uint64_t size);
-extern uint64_t space_map_maxsize(space_map_t *sm);
-
-extern void space_map_sync(space_map_t *sm, uint8_t maptype,
-    space_map_obj_t *smo, objset_t *os, dmu_tx_t *tx);
-extern void space_map_truncate(space_map_obj_t *smo,
-    objset_t *os, dmu_tx_t *tx);
-
-extern void space_map_ref_create(avl_tree_t *t);
-extern void space_map_ref_destroy(avl_tree_t *t);
-extern void space_map_ref_add_seg(avl_tree_t *t,
-    uint64_t start, uint64_t end, int64_t refcnt);
-extern void space_map_ref_add_map(avl_tree_t *t,
-    space_map_t *sm, int64_t refcnt);
-extern void space_map_ref_generate_map(avl_tree_t *t,
-    space_map_t *sm, int64_t minref);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_SPACE_MAP_H */
diff --git a/module/zfs/include/sys/txg.h b/module/zfs/include/sys/txg.h
deleted file mode 100644 (file)
index e323d5e..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_TXG_H
-#define        _SYS_TXG_H
-
-#include <sys/spa.h>
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define        TXG_CONCURRENT_STATES   3       /* open, quiescing, syncing     */
-#define        TXG_SIZE                4               /* next power of 2      */
-#define        TXG_MASK                (TXG_SIZE - 1)  /* mask for size        */
-#define        TXG_INITIAL             TXG_SIZE        /* initial txg          */
-#define        TXG_IDX                 (txg & TXG_MASK)
-
-/* Number of txgs worth of frees we defer adding to in-core spacemaps */
-#define        TXG_DEFER_SIZE          2
-
-#define        TXG_WAIT                1ULL
-#define        TXG_NOWAIT              2ULL
-
-typedef struct tx_cpu tx_cpu_t;
-
-typedef struct txg_handle {
-       tx_cpu_t        *th_cpu;
-       uint64_t        th_txg;
-} txg_handle_t;
-
-typedef struct txg_node {
-       struct txg_node *tn_next[TXG_SIZE];
-       uint8_t         tn_member[TXG_SIZE];
-} txg_node_t;
-
-typedef struct txg_list {
-       kmutex_t        tl_lock;
-       size_t          tl_offset;
-       txg_node_t      *tl_head[TXG_SIZE];
-} txg_list_t;
-
-struct dsl_pool;
-
-extern void txg_init(struct dsl_pool *dp, uint64_t txg);
-extern void txg_fini(struct dsl_pool *dp);
-extern void txg_sync_start(struct dsl_pool *dp);
-extern void txg_sync_stop(struct dsl_pool *dp);
-extern uint64_t txg_hold_open(struct dsl_pool *dp, txg_handle_t *txghp);
-extern void txg_rele_to_quiesce(txg_handle_t *txghp);
-extern void txg_rele_to_sync(txg_handle_t *txghp);
-extern void txg_register_callbacks(txg_handle_t *txghp, list_t *tx_callbacks);
-
-/*
- * Delay the caller by the specified number of ticks or until
- * the txg closes (whichever comes first).  This is intended
- * to be used to throttle writers when the system nears its
- * capacity.
- */
-extern void txg_delay(struct dsl_pool *dp, uint64_t txg, int ticks);
-
-/*
- * Wait until the given transaction group has finished syncing.
- * Try to make this happen as soon as possible (eg. kick off any
- * necessary syncs immediately).  If txg==0, wait for the currently open
- * txg to finish syncing.
- */
-extern void txg_wait_synced(struct dsl_pool *dp, uint64_t txg);
-
-/*
- * Wait until the given transaction group, or one after it, is
- * the open transaction group.  Try to make this happen as soon
- * as possible (eg. kick off any necessary syncs immediately).
- * If txg == 0, wait for the next open txg.
- */
-extern void txg_wait_open(struct dsl_pool *dp, uint64_t txg);
-
-/*
- * Returns TRUE if we are "backed up" waiting for the syncing
- * transaction to complete; otherwise returns FALSE.
- */
-extern boolean_t txg_stalled(struct dsl_pool *dp);
-
-/* returns TRUE if someone is waiting for the next txg to sync */
-extern boolean_t txg_sync_waiting(struct dsl_pool *dp);
-
-/*
- * Per-txg object lists.
- */
-
-#define        TXG_CLEAN(txg)  ((txg) - 1)
-
-extern void txg_list_create(txg_list_t *tl, size_t offset);
-extern void txg_list_destroy(txg_list_t *tl);
-extern int txg_list_empty(txg_list_t *tl, uint64_t txg);
-extern int txg_list_add(txg_list_t *tl, void *p, uint64_t txg);
-extern int txg_list_add_tail(txg_list_t *tl, void *p, uint64_t txg);
-extern void *txg_list_remove(txg_list_t *tl, uint64_t txg);
-extern void *txg_list_remove_this(txg_list_t *tl, void *p, uint64_t txg);
-extern int txg_list_member(txg_list_t *tl, void *p, uint64_t txg);
-extern void *txg_list_head(txg_list_t *tl, uint64_t txg);
-extern void *txg_list_next(txg_list_t *tl, void *p, uint64_t txg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_TXG_H */
diff --git a/module/zfs/include/sys/txg_impl.h b/module/zfs/include/sys/txg_impl.h
deleted file mode 100644 (file)
index 7b356ea..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_TXG_IMPL_H
-#define        _SYS_TXG_IMPL_H
-
-#include <sys/spa.h>
-#include <sys/txg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct tx_cpu {
-       kmutex_t        tc_lock;
-       kcondvar_t      tc_cv[TXG_SIZE];
-       uint64_t        tc_count[TXG_SIZE];
-       list_t          tc_callbacks[TXG_SIZE]; /* commit cb list */
-       char            tc_pad[16];
-};
-
-typedef struct tx_state {
-       tx_cpu_t        *tx_cpu;        /* protects right to enter txg  */
-       kmutex_t        tx_sync_lock;   /* protects tx_state_t */
-       uint64_t        tx_open_txg;    /* currently open txg id */
-       uint64_t        tx_quiesced_txg; /* quiesced txg waiting for sync */
-       uint64_t        tx_syncing_txg; /* currently syncing txg id */
-       uint64_t        tx_synced_txg;  /* last synced txg id */
-
-       uint64_t        tx_sync_txg_waiting; /* txg we're waiting to sync */
-       uint64_t        tx_quiesce_txg_waiting; /* txg we're waiting to open */
-
-       kcondvar_t      tx_sync_more_cv;
-       kcondvar_t      tx_sync_done_cv;
-       kcondvar_t      tx_quiesce_more_cv;
-       kcondvar_t      tx_quiesce_done_cv;
-       kcondvar_t      tx_timeout_cv;
-       kcondvar_t      tx_exit_cv;     /* wait for all threads to exit */
-
-       uint8_t         tx_threads;     /* number of threads */
-       uint8_t         tx_exiting;     /* set when we're exiting */
-
-       kthread_t       *tx_sync_thread;
-       kthread_t       *tx_quiesce_thread;
-
-       taskq_t         *tx_commit_cb_taskq; /* commit callback taskq */
-} tx_state_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_TXG_IMPL_H */
diff --git a/module/zfs/include/sys/uberblock.h b/module/zfs/include/sys/uberblock.h
deleted file mode 100644 (file)
index b5bb915..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_UBERBLOCK_H
-#define        _SYS_UBERBLOCK_H
-
-#include <sys/spa.h>
-#include <sys/vdev.h>
-#include <sys/zio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct uberblock uberblock_t;
-
-extern int uberblock_verify(uberblock_t *ub);
-extern int uberblock_update(uberblock_t *ub, vdev_t *rvd, uint64_t txg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_UBERBLOCK_H */
diff --git a/module/zfs/include/sys/uberblock_impl.h b/module/zfs/include/sys/uberblock_impl.h
deleted file mode 100644 (file)
index 6ab6aa3..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _SYS_UBERBLOCK_IMPL_H
-#define        _SYS_UBERBLOCK_IMPL_H
-
-#include <sys/uberblock.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The uberblock version is incremented whenever an incompatible on-disk
- * format change is made to the SPA, DMU, or ZAP.
- *
- * Note: the first two fields should never be moved.  When a storage pool
- * is opened, the uberblock must be read off the disk before the version
- * can be checked.  If the ub_version field is moved, we may not detect
- * version mismatch.  If the ub_magic field is moved, applications that
- * expect the magic number in the first word won't work.
- */
-#define        UBERBLOCK_MAGIC         0x00bab10c              /* oo-ba-bloc!  */
-#define        UBERBLOCK_SHIFT         10                      /* up to 1K     */
-
-struct uberblock {
-       uint64_t        ub_magic;       /* UBERBLOCK_MAGIC              */
-       uint64_t        ub_version;     /* SPA_VERSION                  */
-       uint64_t        ub_txg;         /* txg of last sync             */
-       uint64_t        ub_guid_sum;    /* sum of all vdev guids        */
-       uint64_t        ub_timestamp;   /* UTC time of last sync        */
-       blkptr_t        ub_rootbp;      /* MOS objset_phys_t            */
-
-       /* highest SPA_VERSION supported by software that wrote this txg */
-       uint64_t        ub_software_version;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_UBERBLOCK_IMPL_H */
diff --git a/module/zfs/include/sys/unique.h b/module/zfs/include/sys/unique.h
deleted file mode 100644 (file)
index d971752..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _SYS_UNIQUE_H
-#define        _SYS_UNIQUE_H
-
-
-
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* The number of significant bits in each unique value. */
-#define        UNIQUE_BITS     56
-
-void unique_init(void);
-void unique_fini(void);
-
-/*
- * Return a new unique value (which will not be uniquified against until
- * it is unique_insert()-ed.
- */
-uint64_t unique_create(void);
-
-/* Return a unique value, which equals the one passed in if possible. */
-uint64_t unique_insert(uint64_t value);
-
-/* Indicate that this value no longer needs to be uniquified against. */
-void unique_remove(uint64_t value);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_UNIQUE_H */
diff --git a/module/zfs/include/sys/vdev.h b/module/zfs/include/sys/vdev.h
deleted file mode 100644 (file)
index 941f234..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _SYS_VDEV_H
-#define        _SYS_VDEV_H
-
-#include <sys/spa.h>
-#include <sys/zio.h>
-#include <sys/dmu.h>
-#include <sys/space_map.h>
-#include <sys/fs/zfs.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum vdev_dtl_type {
-       DTL_MISSING,    /* 0% replication: no copies of the data */
-       DTL_PARTIAL,    /* less than 100% replication: some copies missing */
-       DTL_SCRUB,      /* unable to fully repair during scrub/resilver */
-       DTL_OUTAGE,     /* temporarily missing (used to attempt detach) */
-       DTL_TYPES
-} vdev_dtl_type_t;
-
-extern boolean_t zfs_nocacheflush;
-
-extern int vdev_open(vdev_t *);
-extern void vdev_open_children(vdev_t *);
-extern boolean_t vdev_uses_zvols(vdev_t *);
-extern int vdev_validate(vdev_t *);
-extern void vdev_close(vdev_t *);
-extern int vdev_create(vdev_t *, uint64_t txg, boolean_t isreplace);
-extern void vdev_reopen(vdev_t *);
-extern int vdev_validate_aux(vdev_t *vd);
-extern zio_t *vdev_probe(vdev_t *vd, zio_t *pio);
-
-extern boolean_t vdev_is_bootable(vdev_t *vd);
-extern vdev_t *vdev_lookup_top(spa_t *spa, uint64_t vdev);
-extern vdev_t *vdev_lookup_by_guid(vdev_t *vd, uint64_t guid);
-extern void vdev_dtl_dirty(vdev_t *vd, vdev_dtl_type_t d,
-    uint64_t txg, uint64_t size);
-extern boolean_t vdev_dtl_contains(vdev_t *vd, vdev_dtl_type_t d,
-    uint64_t txg, uint64_t size);
-extern boolean_t vdev_dtl_empty(vdev_t *vd, vdev_dtl_type_t d);
-extern void vdev_dtl_reassess(vdev_t *vd, uint64_t txg, uint64_t scrub_txg,
-    int scrub_done);
-extern boolean_t vdev_dtl_required(vdev_t *vd);
-extern boolean_t vdev_resilver_needed(vdev_t *vd,
-    uint64_t *minp, uint64_t *maxp);
-
-extern void vdev_hold(vdev_t *);
-extern void vdev_rele(vdev_t *);
-
-extern int vdev_metaslab_init(vdev_t *vd, uint64_t txg);
-extern void vdev_metaslab_fini(vdev_t *vd);
-extern void vdev_metaslab_set_size(vdev_t *);
-extern void vdev_expand(vdev_t *vd, uint64_t txg);
-extern void vdev_split(vdev_t *vd);
-
-
-extern void vdev_get_stats(vdev_t *vd, vdev_stat_t *vs);
-extern void vdev_clear_stats(vdev_t *vd);
-extern void vdev_stat_update(zio_t *zio, uint64_t psize);
-extern void vdev_scan_stat_init(vdev_t *vd);
-extern void vdev_propagate_state(vdev_t *vd);
-extern void vdev_set_state(vdev_t *vd, boolean_t isopen, vdev_state_t state,
-    vdev_aux_t aux);
-
-extern void vdev_space_update(vdev_t *vd,
-    int64_t alloc_delta, int64_t defer_delta, int64_t space_delta);
-
-extern uint64_t vdev_psize_to_asize(vdev_t *vd, uint64_t psize);
-
-extern int vdev_fault(spa_t *spa, uint64_t guid, vdev_aux_t aux);
-extern int vdev_degrade(spa_t *spa, uint64_t guid, vdev_aux_t aux);
-extern int vdev_online(spa_t *spa, uint64_t guid, uint64_t flags,
-    vdev_state_t *);
-extern int vdev_offline(spa_t *spa, uint64_t guid, uint64_t flags);
-extern void vdev_clear(spa_t *spa, vdev_t *vd);
-
-extern boolean_t vdev_is_dead(vdev_t *vd);
-extern boolean_t vdev_readable(vdev_t *vd);
-extern boolean_t vdev_writeable(vdev_t *vd);
-extern boolean_t vdev_allocatable(vdev_t *vd);
-extern boolean_t vdev_accessible(vdev_t *vd, zio_t *zio);
-
-extern void vdev_cache_init(vdev_t *vd);
-extern void vdev_cache_fini(vdev_t *vd);
-extern int vdev_cache_read(zio_t *zio);
-extern void vdev_cache_write(zio_t *zio);
-extern void vdev_cache_purge(vdev_t *vd);
-
-extern void vdev_queue_init(vdev_t *vd);
-extern void vdev_queue_fini(vdev_t *vd);
-extern zio_t *vdev_queue_io(zio_t *zio);
-extern void vdev_queue_io_done(zio_t *zio);
-
-extern void vdev_config_dirty(vdev_t *vd);
-extern void vdev_config_clean(vdev_t *vd);
-extern int vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg,
-    boolean_t);
-
-extern void vdev_state_dirty(vdev_t *vd);
-extern void vdev_state_clean(vdev_t *vd);
-
-typedef enum vdev_config_flag {
-       VDEV_CONFIG_SPARE = 1 << 0,
-       VDEV_CONFIG_L2CACHE = 1 << 1,
-       VDEV_CONFIG_REMOVING = 1 << 2
-} vdev_config_flag_t;
-
-extern void vdev_top_config_generate(spa_t *spa, nvlist_t *config);
-extern nvlist_t *vdev_config_generate(spa_t *spa, vdev_t *vd,
-    boolean_t getstats, vdev_config_flag_t flags);
-
-/*
- * Label routines
- */
-struct uberblock;
-extern uint64_t vdev_label_offset(uint64_t psize, int l, uint64_t offset);
-extern int vdev_label_number(uint64_t psise, uint64_t offset);
-extern nvlist_t *vdev_label_read_config(vdev_t *vd);
-extern void vdev_uberblock_load(zio_t *zio, vdev_t *vd, struct uberblock *ub);
-
-typedef enum {
-       VDEV_LABEL_CREATE,      /* create/add a new device */
-       VDEV_LABEL_REPLACE,     /* replace an existing device */
-       VDEV_LABEL_SPARE,       /* add a new hot spare */
-       VDEV_LABEL_REMOVE,      /* remove an existing device */
-       VDEV_LABEL_L2CACHE,     /* add an L2ARC cache device */
-       VDEV_LABEL_SPLIT        /* generating new label for split-off dev */
-} vdev_labeltype_t;
-
-extern int vdev_label_init(vdev_t *vd, uint64_t txg, vdev_labeltype_t reason);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_VDEV_H */
diff --git a/module/zfs/include/sys/vdev_disk.h b/module/zfs/include/sys/vdev_disk.h
deleted file mode 100644 (file)
index 986c336..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
- * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
- * Written by Brian Behlendorf <behlendorf1@llnl.gov>.
- * LLNL-CODE-403049.
- */
-
-#ifndef _SYS_VDEV_DISK_H
-#define _SYS_VDEV_DISK_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef _KERNEL
-#include <sys/vdev.h>
-#include <sys/ddi.h>
-#include <sys/sunldi.h>
-#include <sys/sunddi.h>
-
-typedef struct vdev_disk {
-       ddi_devid_t             vd_devid;
-       char                    *vd_minor;
-       struct block_device     *vd_bdev;
-} vdev_disk_t;
-
-extern int vdev_disk_physio(struct block_device *, caddr_t,
-                           size_t, uint64_t, int);
-extern int vdev_disk_read_rootlabel(char *, char *, nvlist_t **);
-
-/* 2.6.24 API change */
-#ifdef HAVE_2ARGS_BIO_END_IO_T
-# define BIO_END_IO_PROTO(fn, x, y, z) static void fn(struct bio *x, int z)
-# define BIO_END_IO_RETURN(rc)         return
-#else
-# define BIO_END_IO_PROTO(fn, x, y, z) static int fn(struct bio *x, \
-                                                     unsigned int y, int z)
-# define BIO_END_IO_RETURN(rc)         return rc
-#endif /* HAVE_2ARGS_BIO_END_IO_T */
-
-/* 2.6.29 API change */
-#ifdef HAVE_BIO_RW_SYNCIO
-# define DIO_RW_SYNCIO                 BIO_RW_SYNCIO
-#else
-# define DIO_RW_SYNCIO                 BIO_RW_SYNC
-#endif /* HAVE_BIO_RW_SYNCIO */
-
-/* 2.6.28 API change */
-#ifdef HAVE_OPEN_BDEV_EXCLUSIVE
-# define vdev_bdev_open(path, md, hld) open_bdev_exclusive(path, md, hld)
-# define vdev_bdev_close(bdev, md)     close_bdev_exclusive(bdev, md)
-#else
-# define vdev_bdev_open(path, md, hld) open_bdev_excl(path, md, hld)
-# define vdev_bdev_close(bdev, md)     close_bdev_excl(bdev)
-#endif /* HAVE_OPEN_BDEV_EXCLUSIVE */
-
-/* 2.6.22 API change */
-#ifdef HAVE_1ARG_INVALIDATE_BDEV
-# define vdev_bdev_invalidate(bdev)    invalidate_bdev(bdev)
-#else
-# define vdev_bdev_invalidate(bdev)    invalidate_bdev(bdev, 1)
-#endif /* HAVE_1ARG_INVALIDATE_BDEV */
-
-/* 2.6.30 API change */
-#ifdef HAVE_BDEV_LOGICAL_BLOCK_SIZE
-# define vdev_bdev_block_size(bdev)    bdev_logical_block_size(bdev)
-#else
-# define vdev_bdev_block_size(bdev)    bdev_hardsect_size(bdev)
-#endif
-
-#endif /* _KERNEL */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_VDEV_DISK_H */
diff --git a/module/zfs/include/sys/vdev_file.h b/module/zfs/include/sys/vdev_file.h
deleted file mode 100644 (file)
index b4d40f9..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_VDEV_FILE_H
-#define        _SYS_VDEV_FILE_H
-
-
-
-#include <sys/vdev.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct vdev_file {
-       vnode_t         *vf_vnode;
-} vdev_file_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_VDEV_FILE_H */
diff --git a/module/zfs/include/sys/vdev_impl.h b/module/zfs/include/sys/vdev_impl.h
deleted file mode 100644 (file)
index 161bd21..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _SYS_VDEV_IMPL_H
-#define        _SYS_VDEV_IMPL_H
-
-#include <sys/avl.h>
-#include <sys/dmu.h>
-#include <sys/metaslab.h>
-#include <sys/nvpair.h>
-#include <sys/space_map.h>
-#include <sys/vdev.h>
-#include <sys/dkio.h>
-#include <sys/uberblock_impl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Virtual device descriptors.
- *
- * All storage pool operations go through the virtual device framework,
- * which provides data replication and I/O scheduling.
- */
-
-/*
- * Forward declarations that lots of things need.
- */
-typedef struct vdev_queue vdev_queue_t;
-typedef struct vdev_cache vdev_cache_t;
-typedef struct vdev_cache_entry vdev_cache_entry_t;
-
-/*
- * Virtual device operations
- */
-typedef int    vdev_open_func_t(vdev_t *vd, uint64_t *size, uint64_t *ashift);
-typedef void   vdev_close_func_t(vdev_t *vd);
-typedef uint64_t vdev_asize_func_t(vdev_t *vd, uint64_t psize);
-typedef int    vdev_io_start_func_t(zio_t *zio);
-typedef void   vdev_io_done_func_t(zio_t *zio);
-typedef void   vdev_state_change_func_t(vdev_t *vd, int, int);
-typedef void   vdev_hold_func_t(vdev_t *vd);
-typedef void   vdev_rele_func_t(vdev_t *vd);
-
-typedef struct vdev_ops {
-       vdev_open_func_t                *vdev_op_open;
-       vdev_close_func_t               *vdev_op_close;
-       vdev_asize_func_t               *vdev_op_asize;
-       vdev_io_start_func_t            *vdev_op_io_start;
-       vdev_io_done_func_t             *vdev_op_io_done;
-       vdev_state_change_func_t        *vdev_op_state_change;
-       vdev_hold_func_t                *vdev_op_hold;
-       vdev_rele_func_t                *vdev_op_rele;
-       char                            vdev_op_type[16];
-       boolean_t                       vdev_op_leaf;
-} vdev_ops_t;
-
-/*
- * Virtual device properties
- */
-struct vdev_cache_entry {
-       char            *ve_data;
-       uint64_t        ve_offset;
-       uint64_t        ve_lastused;
-       avl_node_t      ve_offset_node;
-       avl_node_t      ve_lastused_node;
-       uint32_t        ve_hits;
-       uint16_t        ve_missed_update;
-       zio_t           *ve_fill_io;
-};
-
-struct vdev_cache {
-       avl_tree_t      vc_offset_tree;
-       avl_tree_t      vc_lastused_tree;
-       kmutex_t        vc_lock;
-};
-
-struct vdev_queue {
-       avl_tree_t      vq_deadline_tree;
-       avl_tree_t      vq_read_tree;
-       avl_tree_t      vq_write_tree;
-       avl_tree_t      vq_pending_tree;
-       kmutex_t        vq_lock;
-};
-
-/*
- * Virtual device descriptor
- */
-struct vdev {
-       /*
-        * Common to all vdev types.
-        */
-       uint64_t        vdev_id;        /* child number in vdev parent  */
-       uint64_t        vdev_guid;      /* unique ID for this vdev      */
-       uint64_t        vdev_guid_sum;  /* self guid + all child guids  */
-       uint64_t        vdev_orig_guid; /* orig. guid prior to remove   */
-       uint64_t        vdev_asize;     /* allocatable device capacity  */
-       uint64_t        vdev_min_asize; /* min acceptable asize         */
-       uint64_t        vdev_ashift;    /* block alignment shift        */
-       uint64_t        vdev_state;     /* see VDEV_STATE_* #defines    */
-       uint64_t        vdev_prevstate; /* used when reopening a vdev   */
-       vdev_ops_t      *vdev_ops;      /* vdev operations              */
-       spa_t           *vdev_spa;      /* spa for this vdev            */
-       void            *vdev_tsd;      /* type-specific data           */
-       vnode_t         *vdev_name_vp;  /* vnode for pathname           */
-       vnode_t         *vdev_devid_vp; /* vnode for devid              */
-       vdev_t          *vdev_top;      /* top-level vdev               */
-       vdev_t          *vdev_parent;   /* parent vdev                  */
-       vdev_t          **vdev_child;   /* array of children            */
-       uint64_t        vdev_children;  /* number of children           */
-       space_map_t     vdev_dtl[DTL_TYPES]; /* in-core dirty time logs */
-       vdev_stat_t     vdev_stat;      /* virtual device statistics    */
-       boolean_t       vdev_expanding; /* expand the vdev?             */
-       boolean_t       vdev_reopening; /* reopen in progress?          */
-       int             vdev_open_error; /* error on last open          */
-       kthread_t       *vdev_open_thread; /* thread opening children   */
-       uint64_t        vdev_crtxg;     /* txg when top-level was added */
-
-       /*
-        * Top-level vdev state.
-        */
-       uint64_t        vdev_ms_array;  /* metaslab array object        */
-       uint64_t        vdev_ms_shift;  /* metaslab size shift          */
-       uint64_t        vdev_ms_count;  /* number of metaslabs          */
-       metaslab_group_t *vdev_mg;      /* metaslab group               */
-       metaslab_t      **vdev_ms;      /* metaslab array               */
-       txg_list_t      vdev_ms_list;   /* per-txg dirty metaslab lists */
-       txg_list_t      vdev_dtl_list;  /* per-txg dirty DTL lists      */
-       txg_node_t      vdev_txg_node;  /* per-txg dirty vdev linkage   */
-       boolean_t       vdev_remove_wanted; /* async remove wanted?     */
-       boolean_t       vdev_probe_wanted; /* async probe wanted?       */
-       uint64_t        vdev_removing;  /* device is being removed?     */
-       list_node_t     vdev_config_dirty_node; /* config dirty list    */
-       list_node_t     vdev_state_dirty_node; /* state dirty list      */
-       uint64_t        vdev_deflate_ratio; /* deflation ratio (x512)   */
-       uint64_t        vdev_islog;     /* is an intent log device      */
-       uint64_t        vdev_ishole;    /* is a hole in the namespace   */
-
-       /*
-        * Leaf vdev state.
-        */
-       uint64_t        vdev_psize;     /* physical device capacity     */
-       space_map_obj_t vdev_dtl_smo;   /* dirty time log space map obj */
-       txg_node_t      vdev_dtl_node;  /* per-txg dirty DTL linkage    */
-       uint64_t        vdev_wholedisk; /* true if this is a whole disk */
-       uint64_t        vdev_offline;   /* persistent offline state     */
-       uint64_t        vdev_faulted;   /* persistent faulted state     */
-       uint64_t        vdev_degraded;  /* persistent degraded state    */
-       uint64_t        vdev_removed;   /* persistent removed state     */
-       uint64_t        vdev_resilvering; /* persistent resilvering state */
-       uint64_t        vdev_nparity;   /* number of parity devices for raidz */
-       char            *vdev_path;     /* vdev path (if any)           */
-       char            *vdev_devid;    /* vdev devid (if any)          */
-       char            *vdev_physpath; /* vdev device path (if any)    */
-       char            *vdev_fru;      /* physical FRU location        */
-       uint64_t        vdev_not_present; /* not present during import  */
-       uint64_t        vdev_unspare;   /* unspare when resilvering done */
-       hrtime_t        vdev_last_try;  /* last reopen time             */
-       boolean_t       vdev_nowritecache; /* true if flushwritecache failed */
-       boolean_t       vdev_checkremove; /* temporary online test      */
-       boolean_t       vdev_forcefault; /* force online fault          */
-       boolean_t       vdev_splitting; /* split or repair in progress  */
-       boolean_t       vdev_delayed_close; /* delayed device close?    */
-       uint8_t         vdev_tmpoffline; /* device taken offline temporarily? */
-       uint8_t         vdev_detached;  /* device detached?             */
-       uint8_t         vdev_cant_read; /* vdev is failing all reads    */
-       uint8_t         vdev_cant_write; /* vdev is failing all writes  */
-       uint64_t        vdev_isspare;   /* was a hot spare              */
-       uint64_t        vdev_isl2cache; /* was a l2cache device         */
-       vdev_queue_t    vdev_queue;     /* I/O deadline schedule queue  */
-       vdev_cache_t    vdev_cache;     /* physical block cache         */
-       spa_aux_vdev_t  *vdev_aux;      /* for l2cache vdevs            */
-       zio_t           *vdev_probe_zio; /* root of current probe       */
-       vdev_aux_t      vdev_label_aux; /* on-disk aux state            */
-
-       /*
-        * For DTrace to work in userland (libzpool) context, these fields must
-        * remain at the end of the structure.  DTrace will use the kernel's
-        * CTF definition for 'struct vdev', and since the size of a kmutex_t is
-        * larger in userland, the offsets for the rest fields would be
-        * incorrect.
-        */
-       kmutex_t        vdev_dtl_lock;  /* vdev_dtl_{map,resilver}      */
-       kmutex_t        vdev_stat_lock; /* vdev_stat                    */
-       kmutex_t        vdev_probe_lock; /* protects vdev_probe_zio     */
-};
-
-#define        VDEV_RAIDZ_MAXPARITY    3
-
-#define        VDEV_PAD_SIZE           (8 << 10)
-/* 2 padding areas (vl_pad1 and vl_pad2) to skip */
-#define        VDEV_SKIP_SIZE          VDEV_PAD_SIZE * 2
-#define        VDEV_PHYS_SIZE          (112 << 10)
-#define        VDEV_UBERBLOCK_RING     (128 << 10)
-
-#define        VDEV_UBERBLOCK_SHIFT(vd)        \
-       MAX((vd)->vdev_top->vdev_ashift, UBERBLOCK_SHIFT)
-#define        VDEV_UBERBLOCK_COUNT(vd)        \
-       (VDEV_UBERBLOCK_RING >> VDEV_UBERBLOCK_SHIFT(vd))
-#define        VDEV_UBERBLOCK_OFFSET(vd, n)    \
-       offsetof(vdev_label_t, vl_uberblock[(n) << VDEV_UBERBLOCK_SHIFT(vd)])
-#define        VDEV_UBERBLOCK_SIZE(vd)         (1ULL << VDEV_UBERBLOCK_SHIFT(vd))
-
-typedef struct vdev_phys {
-       char            vp_nvlist[VDEV_PHYS_SIZE - sizeof (zio_eck_t)];
-       zio_eck_t       vp_zbt;
-} vdev_phys_t;
-
-typedef struct vdev_label {
-       char            vl_pad1[VDEV_PAD_SIZE];                 /*  8K */
-       char            vl_pad2[VDEV_PAD_SIZE];                 /*  8K */
-       vdev_phys_t     vl_vdev_phys;                           /* 112K */
-       char            vl_uberblock[VDEV_UBERBLOCK_RING];      /* 128K */
-} vdev_label_t;                                                        /* 256K total */
-
-/*
- * vdev_dirty() flags
- */
-#define        VDD_METASLAB    0x01
-#define        VDD_DTL         0x02
-
-/*
- * Size and offset of embedded boot loader region on each label.
- * The total size of the first two labels plus the boot area is 4MB.
- */
-#define        VDEV_BOOT_OFFSET        (2 * sizeof (vdev_label_t))
-#define        VDEV_BOOT_SIZE          (7ULL << 19)                    /* 3.5M */
-
-/*
- * Size of label regions at the start and end of each leaf device.
- */
-#define        VDEV_LABEL_START_SIZE   (2 * sizeof (vdev_label_t) + VDEV_BOOT_SIZE)
-#define        VDEV_LABEL_END_SIZE     (2 * sizeof (vdev_label_t))
-#define        VDEV_LABELS             4
-
-#define        VDEV_ALLOC_LOAD         0
-#define        VDEV_ALLOC_ADD          1
-#define        VDEV_ALLOC_SPARE        2
-#define        VDEV_ALLOC_L2CACHE      3
-#define        VDEV_ALLOC_ROOTPOOL     4
-#define        VDEV_ALLOC_SPLIT        5
-
-/*
- * Allocate or free a vdev
- */
-extern vdev_t *vdev_alloc_common(spa_t *spa, uint_t id, uint64_t guid,
-    vdev_ops_t *ops);
-extern int vdev_alloc(spa_t *spa, vdev_t **vdp, nvlist_t *config,
-    vdev_t *parent, uint_t id, int alloctype);
-extern void vdev_free(vdev_t *vd);
-
-/*
- * Add or remove children and parents
- */
-extern void vdev_add_child(vdev_t *pvd, vdev_t *cvd);
-extern void vdev_remove_child(vdev_t *pvd, vdev_t *cvd);
-extern void vdev_compact_children(vdev_t *pvd);
-extern vdev_t *vdev_add_parent(vdev_t *cvd, vdev_ops_t *ops);
-extern void vdev_remove_parent(vdev_t *cvd);
-
-/*
- * vdev sync load and sync
- */
-extern void vdev_load_log_state(vdev_t *nvd, vdev_t *ovd);
-extern boolean_t vdev_log_state_valid(vdev_t *vd);
-extern void vdev_load(vdev_t *vd);
-extern void vdev_sync(vdev_t *vd, uint64_t txg);
-extern void vdev_sync_done(vdev_t *vd, uint64_t txg);
-extern void vdev_dirty(vdev_t *vd, int flags, void *arg, uint64_t txg);
-
-/*
- * Available vdev types.
- */
-extern vdev_ops_t vdev_root_ops;
-extern vdev_ops_t vdev_mirror_ops;
-extern vdev_ops_t vdev_replacing_ops;
-extern vdev_ops_t vdev_raidz_ops;
-extern vdev_ops_t vdev_disk_ops;
-extern vdev_ops_t vdev_file_ops;
-extern vdev_ops_t vdev_missing_ops;
-extern vdev_ops_t vdev_hole_ops;
-extern vdev_ops_t vdev_spare_ops;
-
-/*
- * Common size functions
- */
-extern uint64_t vdev_default_asize(vdev_t *vd, uint64_t psize);
-extern uint64_t vdev_get_min_asize(vdev_t *vd);
-extern void vdev_set_min_asize(vdev_t *vd);
-
-/*
- * zdb uses this tunable, so it must be declared here to make lint happy.
- */
-extern int zfs_vdev_cache_size;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_VDEV_IMPL_H */
diff --git a/module/zfs/include/sys/zap.h b/module/zfs/include/sys/zap.h
deleted file mode 100644 (file)
index a1130bb..0000000
+++ /dev/null
@@ -1,482 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_ZAP_H
-#define        _SYS_ZAP_H
-
-/*
- * ZAP - ZFS Attribute Processor
- *
- * The ZAP is a module which sits on top of the DMU (Data Management
- * Unit) and implements a higher-level storage primitive using DMU
- * objects.  Its primary consumer is the ZPL (ZFS Posix Layer).
- *
- * A "zapobj" is a DMU object which the ZAP uses to stores attributes.
- * Users should use only zap routines to access a zapobj - they should
- * not access the DMU object directly using DMU routines.
- *
- * The attributes stored in a zapobj are name-value pairs.  The name is
- * a zero-terminated string of up to ZAP_MAXNAMELEN bytes (including
- * terminating NULL).  The value is an array of integers, which may be
- * 1, 2, 4, or 8 bytes long.  The total space used by the array (number
- * of integers * integer length) can be up to ZAP_MAXVALUELEN bytes.
- * Note that an 8-byte integer value can be used to store the location
- * (object number) of another dmu object (which may be itself a zapobj).
- * Note that you can use a zero-length attribute to store a single bit
- * of information - the attribute is present or not.
- *
- * The ZAP routines are thread-safe.  However, you must observe the
- * DMU's restriction that a transaction may not be operated on
- * concurrently.
- *
- * Any of the routines that return an int may return an I/O error (EIO
- * or ECHECKSUM).
- *
- *
- * Implementation / Performance Notes:
- *
- * The ZAP is intended to operate most efficiently on attributes with
- * short (49 bytes or less) names and single 8-byte values, for which
- * the microzap will be used.  The ZAP should be efficient enough so
- * that the user does not need to cache these attributes.
- *
- * The ZAP's locking scheme makes its routines thread-safe.  Operations
- * on different zapobjs will be processed concurrently.  Operations on
- * the same zapobj which only read data will be processed concurrently.
- * Operations on the same zapobj which modify data will be processed
- * concurrently when there are many attributes in the zapobj (because
- * the ZAP uses per-block locking - more than 128 * (number of cpus)
- * small attributes will suffice).
- */
-
-/*
- * We're using zero-terminated byte strings (ie. ASCII or UTF-8 C
- * strings) for the names of attributes, rather than a byte string
- * bounded by an explicit length.  If some day we want to support names
- * in character sets which have embedded zeros (eg. UTF-16, UTF-32),
- * we'll have to add routines for using length-bounded strings.
- */
-
-#include <sys/dmu.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The matchtype specifies which entry will be accessed.
- * MT_EXACT: only find an exact match (non-normalized)
- * MT_FIRST: find the "first" normalized (case and Unicode
- *     form) match; the designated "first" match will not change as long
- *     as the set of entries with this normalization doesn't change
- * MT_BEST: if there is an exact match, find that, otherwise find the
- *     first normalized match
- */
-typedef enum matchtype
-{
-       MT_EXACT,
-       MT_BEST,
-       MT_FIRST
-} matchtype_t;
-
-typedef enum zap_flags {
-       /* Use 64-bit hash value (serialized cursors will always use 64-bits) */
-       ZAP_FLAG_HASH64 = 1 << 0,
-       /* Key is binary, not string (zap_add_uint64() can be used) */
-       ZAP_FLAG_UINT64_KEY = 1 << 1,
-       /*
-        * First word of key (which must be an array of uint64) is
-        * already randomly distributed.
-        */
-       ZAP_FLAG_PRE_HASHED_KEY = 1 << 2,
-} zap_flags_t;
-
-/*
- * Create a new zapobj with no attributes and return its object number.
- * MT_EXACT will cause the zap object to only support MT_EXACT lookups,
- * otherwise any matchtype can be used for lookups.
- *
- * normflags specifies what normalization will be done.  values are:
- * 0: no normalization (legacy on-disk format, supports MT_EXACT matching
- *     only)
- * U8_TEXTPREP_TOLOWER: case normalization will be performed.
- *     MT_FIRST/MT_BEST matching will find entries that match without
- *     regard to case (eg. looking for "foo" can find an entry "Foo").
- * Eventually, other flags will permit unicode normalization as well.
- */
-uint64_t zap_create(objset_t *ds, dmu_object_type_t ot,
-    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
-uint64_t zap_create_norm(objset_t *ds, int normflags, dmu_object_type_t ot,
-    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
-uint64_t zap_create_flags(objset_t *os, int normflags, zap_flags_t flags,
-    dmu_object_type_t ot, int leaf_blockshift, int indirect_blockshift,
-    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
-
-/*
- * Create a new zapobj with no attributes from the given (unallocated)
- * object number.
- */
-int zap_create_claim(objset_t *ds, uint64_t obj, dmu_object_type_t ot,
-    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
-int zap_create_claim_norm(objset_t *ds, uint64_t obj,
-    int normflags, dmu_object_type_t ot,
-    dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx);
-
-/*
- * The zapobj passed in must be a valid ZAP object for all of the
- * following routines.
- */
-
-/*
- * Destroy this zapobj and all its attributes.
- *
- * Frees the object number using dmu_object_free.
- */
-int zap_destroy(objset_t *ds, uint64_t zapobj, dmu_tx_t *tx);
-
-/*
- * Manipulate attributes.
- *
- * 'integer_size' is in bytes, and must be 1, 2, 4, or 8.
- */
-
-/*
- * Retrieve the contents of the attribute with the given name.
- *
- * If the requested attribute does not exist, the call will fail and
- * return ENOENT.
- *
- * If 'integer_size' is smaller than the attribute's integer size, the
- * call will fail and return EINVAL.
- *
- * If 'integer_size' is equal to or larger than the attribute's integer
- * size, the call will succeed and return 0.  * When converting to a
- * larger integer size, the integers will be treated as unsigned (ie. no
- * sign-extension will be performed).
- *
- * 'num_integers' is the length (in integers) of 'buf'.
- *
- * If the attribute is longer than the buffer, as many integers as will
- * fit will be transferred to 'buf'.  If the entire attribute was not
- * transferred, the call will return EOVERFLOW.
- *
- * If rn_len is nonzero, realname will be set to the name of the found
- * entry (which may be different from the requested name if matchtype is
- * not MT_EXACT).
- *
- * If normalization_conflictp is not NULL, it will be set if there is
- * another name with the same case/unicode normalized form.
- */
-int zap_lookup(objset_t *ds, uint64_t zapobj, const char *name,
-    uint64_t integer_size, uint64_t num_integers, void *buf);
-int zap_lookup_norm(objset_t *ds, uint64_t zapobj, const char *name,
-    uint64_t integer_size, uint64_t num_integers, void *buf,
-    matchtype_t mt, char *realname, int rn_len,
-    boolean_t *normalization_conflictp);
-int zap_lookup_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
-    int key_numints, uint64_t integer_size, uint64_t num_integers, void *buf);
-int zap_contains(objset_t *ds, uint64_t zapobj, const char *name);
-int zap_prefetch_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
-    int key_numints);
-
-int zap_count_write(objset_t *os, uint64_t zapobj, const char *name,
-    int add, uint64_t *towrite, uint64_t *tooverwrite);
-
-/*
- * Create an attribute with the given name and value.
- *
- * If an attribute with the given name already exists, the call will
- * fail and return EEXIST.
- */
-int zap_add(objset_t *ds, uint64_t zapobj, const char *key,
-    int integer_size, uint64_t num_integers,
-    const void *val, dmu_tx_t *tx);
-int zap_add_uint64(objset_t *ds, uint64_t zapobj, const uint64_t *key,
-    int key_numints, int integer_size, uint64_t num_integers,
-    const void *val, dmu_tx_t *tx);
-
-/*
- * Set the attribute with the given name to the given value.  If an
- * attribute with the given name does not exist, it will be created.  If
- * an attribute with the given name already exists, the previous value
- * will be overwritten.  The integer_size may be different from the
- * existing attribute's integer size, in which case the attribute's
- * integer size will be updated to the new value.
- */
-int zap_update(objset_t *ds, uint64_t zapobj, const char *name,
-    int integer_size, uint64_t num_integers, const void *val, dmu_tx_t *tx);
-int zap_update_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
-    int key_numints,
-    int integer_size, uint64_t num_integers, const void *val, dmu_tx_t *tx);
-
-/*
- * Get the length (in integers) and the integer size of the specified
- * attribute.
- *
- * If the requested attribute does not exist, the call will fail and
- * return ENOENT.
- */
-int zap_length(objset_t *ds, uint64_t zapobj, const char *name,
-    uint64_t *integer_size, uint64_t *num_integers);
-int zap_length_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
-    int key_numints, uint64_t *integer_size, uint64_t *num_integers);
-
-/*
- * Remove the specified attribute.
- *
- * If the specified attribute does not exist, the call will fail and
- * return ENOENT.
- */
-int zap_remove(objset_t *ds, uint64_t zapobj, const char *name, dmu_tx_t *tx);
-int zap_remove_norm(objset_t *ds, uint64_t zapobj, const char *name,
-    matchtype_t mt, dmu_tx_t *tx);
-int zap_remove_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
-    int key_numints, dmu_tx_t *tx);
-
-/*
- * Returns (in *count) the number of attributes in the specified zap
- * object.
- */
-int zap_count(objset_t *ds, uint64_t zapobj, uint64_t *count);
-
-/*
- * Returns (in name) the name of the entry whose (value & mask)
- * (za_first_integer) is value, or ENOENT if not found.  The string
- * pointed to by name must be at least 256 bytes long.  If mask==0, the
- * match must be exact (ie, same as mask=-1ULL).
- */
-int zap_value_search(objset_t *os, uint64_t zapobj,
-    uint64_t value, uint64_t mask, char *name);
-
-/*
- * Transfer all the entries from fromobj into intoobj.  Only works on
- * int_size=8 num_integers=1 values.  Fails if there are any duplicated
- * entries.
- */
-int zap_join(objset_t *os, uint64_t fromobj, uint64_t intoobj, dmu_tx_t *tx);
-
-/* Same as zap_join, but set the values to 'value'. */
-int zap_join_key(objset_t *os, uint64_t fromobj, uint64_t intoobj,
-    uint64_t value, dmu_tx_t *tx);
-
-/* Same as zap_join, but add together any duplicated entries. */
-int zap_join_increment(objset_t *os, uint64_t fromobj, uint64_t intoobj,
-    dmu_tx_t *tx);
-
-/*
- * Manipulate entries where the name + value are the "same" (the name is
- * a stringified version of the value).
- */
-int zap_add_int(objset_t *os, uint64_t obj, uint64_t value, dmu_tx_t *tx);
-int zap_remove_int(objset_t *os, uint64_t obj, uint64_t value, dmu_tx_t *tx);
-int zap_lookup_int(objset_t *os, uint64_t obj, uint64_t value);
-int zap_increment_int(objset_t *os, uint64_t obj, uint64_t key, int64_t delta,
-    dmu_tx_t *tx);
-
-/* Here the key is an int and the value is a different int. */
-int zap_add_int_key(objset_t *os, uint64_t obj,
-    uint64_t key, uint64_t value, dmu_tx_t *tx);
-int zap_lookup_int_key(objset_t *os, uint64_t obj,
-    uint64_t key, uint64_t *valuep);
-
-/*
- * They name is a stringified version of key; increment its value by
- * delta.  Zero values will be zap_remove()-ed.
- */
-int zap_increment_int(objset_t *os, uint64_t obj, uint64_t key, int64_t delta,
-    dmu_tx_t *tx);
-int zap_increment(objset_t *os, uint64_t obj, const char *name, int64_t delta,
-    dmu_tx_t *tx);
-
-struct zap;
-struct zap_leaf;
-typedef struct zap_cursor {
-       /* This structure is opaque! */
-       objset_t *zc_objset;
-       struct zap *zc_zap;
-       struct zap_leaf *zc_leaf;
-       uint64_t zc_zapobj;
-       uint64_t zc_serialized;
-       uint64_t zc_hash;
-       uint32_t zc_cd;
-} zap_cursor_t;
-
-typedef struct {
-       int za_integer_length;
-       /*
-        * za_normalization_conflict will be set if there are additional
-        * entries with this normalized form (eg, "foo" and "Foo").
-        */
-       boolean_t za_normalization_conflict;
-       uint64_t za_num_integers;
-       uint64_t za_first_integer;      /* no sign extension for <8byte ints */
-       char za_name[MAXNAMELEN];
-} zap_attribute_t;
-
-/*
- * The interface for listing all the attributes of a zapobj can be
- * thought of as cursor moving down a list of the attributes one by
- * one.  The cookie returned by the zap_cursor_serialize routine is
- * persistent across system calls (and across reboot, even).
- */
-
-/*
- * Initialize a zap cursor, pointing to the "first" attribute of the
- * zapobj.  You must _fini the cursor when you are done with it.
- */
-void zap_cursor_init(zap_cursor_t *zc, objset_t *ds, uint64_t zapobj);
-void zap_cursor_fini(zap_cursor_t *zc);
-
-/*
- * Get the attribute currently pointed to by the cursor.  Returns
- * ENOENT if at the end of the attributes.
- */
-int zap_cursor_retrieve(zap_cursor_t *zc, zap_attribute_t *za);
-
-/*
- * Advance the cursor to the next attribute.
- */
-void zap_cursor_advance(zap_cursor_t *zc);
-
-/*
- * Get a persistent cookie pointing to the current position of the zap
- * cursor.  The low 4 bits in the cookie are always zero, and thus can
- * be used as to differentiate a serialized cookie from a different type
- * of value.  The cookie will be less than 2^32 as long as there are
- * fewer than 2^22 (4.2 million) entries in the zap object.
- */
-uint64_t zap_cursor_serialize(zap_cursor_t *zc);
-
-/*
- * Advance the cursor to the attribute having the given key.
- */
-int zap_cursor_move_to_key(zap_cursor_t *zc, const char *name, matchtype_t mt);
-
-/*
- * Initialize a zap cursor pointing to the position recorded by
- * zap_cursor_serialize (in the "serialized" argument).  You can also
- * use a "serialized" argument of 0 to start at the beginning of the
- * zapobj (ie.  zap_cursor_init_serialized(..., 0) is equivalent to
- * zap_cursor_init(...).)
- */
-void zap_cursor_init_serialized(zap_cursor_t *zc, objset_t *ds,
-    uint64_t zapobj, uint64_t serialized);
-
-
-#define        ZAP_HISTOGRAM_SIZE 10
-
-typedef struct zap_stats {
-       /*
-        * Size of the pointer table (in number of entries).
-        * This is always a power of 2, or zero if it's a microzap.
-        * In general, it should be considerably greater than zs_num_leafs.
-        */
-       uint64_t zs_ptrtbl_len;
-
-       uint64_t zs_blocksize;          /* size of zap blocks */
-
-       /*
-        * The number of blocks used.  Note that some blocks may be
-        * wasted because old ptrtbl's and large name/value blocks are
-        * not reused.  (Although their space is reclaimed, we don't
-        * reuse those offsets in the object.)
-        */
-       uint64_t zs_num_blocks;
-
-       /*
-        * Pointer table values from zap_ptrtbl in the zap_phys_t
-        */
-       uint64_t zs_ptrtbl_nextblk;       /* next (larger) copy start block */
-       uint64_t zs_ptrtbl_blks_copied;   /* number source blocks copied */
-       uint64_t zs_ptrtbl_zt_blk;        /* starting block number */
-       uint64_t zs_ptrtbl_zt_numblks;    /* number of blocks */
-       uint64_t zs_ptrtbl_zt_shift;      /* bits to index it */
-
-       /*
-        * Values of the other members of the zap_phys_t
-        */
-       uint64_t zs_block_type;         /* ZBT_HEADER */
-       uint64_t zs_magic;              /* ZAP_MAGIC */
-       uint64_t zs_num_leafs;          /* The number of leaf blocks */
-       uint64_t zs_num_entries;        /* The number of zap entries */
-       uint64_t zs_salt;               /* salt to stir into hash function */
-
-       /*
-        * Histograms.  For all histograms, the last index
-        * (ZAP_HISTOGRAM_SIZE-1) includes any values which are greater
-        * than what can be represented.  For example
-        * zs_leafs_with_n5_entries[ZAP_HISTOGRAM_SIZE-1] is the number
-        * of leafs with more than 45 entries.
-        */
-
-       /*
-        * zs_leafs_with_n_pointers[n] is the number of leafs with
-        * 2^n pointers to it.
-        */
-       uint64_t zs_leafs_with_2n_pointers[ZAP_HISTOGRAM_SIZE];
-
-       /*
-        * zs_leafs_with_n_entries[n] is the number of leafs with
-        * [n*5, (n+1)*5) entries.  In the current implementation, there
-        * can be at most 55 entries in any block, but there may be
-        * fewer if the name or value is large, or the block is not
-        * completely full.
-        */
-       uint64_t zs_blocks_with_n5_entries[ZAP_HISTOGRAM_SIZE];
-
-       /*
-        * zs_leafs_n_tenths_full[n] is the number of leafs whose
-        * fullness is in the range [n/10, (n+1)/10).
-        */
-       uint64_t zs_blocks_n_tenths_full[ZAP_HISTOGRAM_SIZE];
-
-       /*
-        * zs_entries_using_n_chunks[n] is the number of entries which
-        * consume n 24-byte chunks.  (Note, large names/values only use
-        * one chunk, but contribute to zs_num_blocks_large.)
-        */
-       uint64_t zs_entries_using_n_chunks[ZAP_HISTOGRAM_SIZE];
-
-       /*
-        * zs_buckets_with_n_entries[n] is the number of buckets (each
-        * leaf has 64 buckets) with n entries.
-        * zs_buckets_with_n_entries[1] should be very close to
-        * zs_num_entries.
-        */
-       uint64_t zs_buckets_with_n_entries[ZAP_HISTOGRAM_SIZE];
-} zap_stats_t;
-
-/*
- * Get statistics about a ZAP object.  Note: you need to be aware of the
- * internal implementation of the ZAP to correctly interpret some of the
- * statistics.  This interface shouldn't be relied on unless you really
- * know what you're doing.
- */
-int zap_get_stats(objset_t *ds, uint64_t zapobj, zap_stats_t *zs);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZAP_H */
diff --git a/module/zfs/include/sys/zap_impl.h b/module/zfs/include/sys/zap_impl.h
deleted file mode 100644 (file)
index 1dc322e..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_ZAP_IMPL_H
-#define        _SYS_ZAP_IMPL_H
-
-#include <sys/zap.h>
-#include <sys/zfs_context.h>
-#include <sys/avl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int fzap_default_block_shift;
-
-#define        ZAP_MAGIC 0x2F52AB2ABULL
-
-#define        FZAP_BLOCK_SHIFT(zap)   ((zap)->zap_f.zap_block_shift)
-
-#define        MZAP_ENT_LEN            64
-#define        MZAP_NAME_LEN           (MZAP_ENT_LEN - 8 - 4 - 2)
-#define        MZAP_MAX_BLKSHIFT       SPA_MAXBLOCKSHIFT
-#define        MZAP_MAX_BLKSZ          (1 << MZAP_MAX_BLKSHIFT)
-
-#define        ZAP_NEED_CD             (-1U)
-
-typedef struct mzap_ent_phys {
-       uint64_t mze_value;
-       uint32_t mze_cd;
-       uint16_t mze_pad;       /* in case we want to chain them someday */
-       char mze_name[MZAP_NAME_LEN];
-} mzap_ent_phys_t;
-
-typedef struct mzap_phys {
-       uint64_t mz_block_type; /* ZBT_MICRO */
-       uint64_t mz_salt;
-       uint64_t mz_normflags;
-       uint64_t mz_pad[5];
-       mzap_ent_phys_t mz_chunk[1];
-       /* actually variable size depending on block size */
-} mzap_phys_t;
-
-typedef struct mzap_ent {
-       avl_node_t mze_node;
-       int mze_chunkid;
-       uint64_t mze_hash;
-       uint32_t mze_cd; /* copy from mze_phys->mze_cd */
-} mzap_ent_t;
-
-#define        MZE_PHYS(zap, mze) \
-       (&(zap)->zap_m.zap_phys->mz_chunk[(mze)->mze_chunkid])
-
-/*
- * The (fat) zap is stored in one object. It is an array of
- * 1<<FZAP_BLOCK_SHIFT byte blocks. The layout looks like one of:
- *
- * ptrtbl fits in first block:
- *     [zap_phys_t zap_ptrtbl_shift < 6] [zap_leaf_t] ...
- *
- * ptrtbl too big for first block:
- *     [zap_phys_t zap_ptrtbl_shift >= 6] [zap_leaf_t] [ptrtbl] ...
- *
- */
-
-struct dmu_buf;
-struct zap_leaf;
-
-#define        ZBT_LEAF                ((1ULL << 63) + 0)
-#define        ZBT_HEADER              ((1ULL << 63) + 1)
-#define        ZBT_MICRO               ((1ULL << 63) + 3)
-/* any other values are ptrtbl blocks */
-
-/*
- * the embedded pointer table takes up half a block:
- * block size / entry size (2^3) / 2
- */
-#define        ZAP_EMBEDDED_PTRTBL_SHIFT(zap) (FZAP_BLOCK_SHIFT(zap) - 3 - 1)
-
-/*
- * The embedded pointer table starts half-way through the block.  Since
- * the pointer table itself is half the block, it starts at (64-bit)
- * word number (1<<ZAP_EMBEDDED_PTRTBL_SHIFT(zap)).
- */
-#define        ZAP_EMBEDDED_PTRTBL_ENT(zap, idx) \
-       ((uint64_t *)(zap)->zap_f.zap_phys) \
-       [(idx) + (1<<ZAP_EMBEDDED_PTRTBL_SHIFT(zap))]
-
-/*
- * TAKE NOTE:
- * If zap_phys_t is modified, zap_byteswap() must be modified.
- */
-typedef struct zap_phys {
-       uint64_t zap_block_type;        /* ZBT_HEADER */
-       uint64_t zap_magic;             /* ZAP_MAGIC */
-
-       struct zap_table_phys {
-               uint64_t zt_blk;        /* starting block number */
-               uint64_t zt_numblks;    /* number of blocks */
-               uint64_t zt_shift;      /* bits to index it */
-               uint64_t zt_nextblk;    /* next (larger) copy start block */
-               uint64_t zt_blks_copied; /* number source blocks copied */
-       } zap_ptrtbl;
-
-       uint64_t zap_freeblk;           /* the next free block */
-       uint64_t zap_num_leafs;         /* number of leafs */
-       uint64_t zap_num_entries;       /* number of entries */
-       uint64_t zap_salt;              /* salt to stir into hash function */
-       uint64_t zap_normflags;         /* flags for u8_textprep_str() */
-       uint64_t zap_flags;             /* zap_flags_t */
-       /*
-        * This structure is followed by padding, and then the embedded
-        * pointer table.  The embedded pointer table takes up second
-        * half of the block.  It is accessed using the
-        * ZAP_EMBEDDED_PTRTBL_ENT() macro.
-        */
-} zap_phys_t;
-
-typedef struct zap_table_phys zap_table_phys_t;
-
-typedef struct zap {
-       objset_t *zap_objset;
-       uint64_t zap_object;
-       struct dmu_buf *zap_dbuf;
-       krwlock_t zap_rwlock;
-       boolean_t zap_ismicro;
-       int zap_normflags;
-       uint64_t zap_salt;
-       union {
-               struct {
-                       zap_phys_t *zap_phys;
-
-                       /*
-                        * zap_num_entries_mtx protects
-                        * zap_num_entries
-                        */
-                       kmutex_t zap_num_entries_mtx;
-                       int zap_block_shift;
-               } zap_fat;
-               struct {
-                       mzap_phys_t *zap_phys;
-                       int16_t zap_num_entries;
-                       int16_t zap_num_chunks;
-                       int16_t zap_alloc_next;
-                       avl_tree_t zap_avl;
-               } zap_micro;
-       } zap_u;
-} zap_t;
-
-typedef struct zap_name {
-       zap_t *zn_zap;
-       int zn_key_intlen;
-       const void *zn_key_orig;
-       int zn_key_orig_numints;
-       const void *zn_key_norm;
-       int zn_key_norm_numints;
-       uint64_t zn_hash;
-       matchtype_t zn_matchtype;
-       char zn_normbuf[ZAP_MAXNAMELEN];
-} zap_name_t;
-
-#define        zap_f   zap_u.zap_fat
-#define        zap_m   zap_u.zap_micro
-
-boolean_t zap_match(zap_name_t *zn, const char *matchname);
-int zap_lockdir(objset_t *os, uint64_t obj, dmu_tx_t *tx,
-    krw_t lti, boolean_t fatreader, boolean_t adding, zap_t **zapp);
-void zap_unlockdir(zap_t *zap);
-void zap_evict(dmu_buf_t *db, void *vmzap);
-zap_name_t *zap_name_alloc(zap_t *zap, const char *key, matchtype_t mt);
-void zap_name_free(zap_name_t *zn);
-int zap_hashbits(zap_t *zap);
-uint32_t zap_maxcd(zap_t *zap);
-uint64_t zap_getflags(zap_t *zap);
-
-#define        ZAP_HASH_IDX(hash, n) (((n) == 0) ? 0 : ((hash) >> (64 - (n))))
-
-void fzap_byteswap(void *buf, size_t size);
-int fzap_count(zap_t *zap, uint64_t *count);
-int fzap_lookup(zap_name_t *zn,
-    uint64_t integer_size, uint64_t num_integers, void *buf,
-    char *realname, int rn_len, boolean_t *normalization_conflictp);
-void fzap_prefetch(zap_name_t *zn);
-int fzap_count_write(zap_name_t *zn, int add, uint64_t *towrite,
-    uint64_t *tooverwrite);
-int fzap_add(zap_name_t *zn, uint64_t integer_size, uint64_t num_integers,
-    const void *val, dmu_tx_t *tx);
-int fzap_update(zap_name_t *zn,
-    int integer_size, uint64_t num_integers, const void *val, dmu_tx_t *tx);
-int fzap_length(zap_name_t *zn,
-    uint64_t *integer_size, uint64_t *num_integers);
-int fzap_remove(zap_name_t *zn, dmu_tx_t *tx);
-int fzap_cursor_retrieve(zap_t *zap, zap_cursor_t *zc, zap_attribute_t *za);
-void fzap_get_stats(zap_t *zap, zap_stats_t *zs);
-void zap_put_leaf(struct zap_leaf *l);
-
-int fzap_add_cd(zap_name_t *zn,
-    uint64_t integer_size, uint64_t num_integers,
-    const void *val, uint32_t cd, dmu_tx_t *tx);
-void fzap_upgrade(zap_t *zap, dmu_tx_t *tx, zap_flags_t flags);
-int fzap_cursor_move_to_key(zap_cursor_t *zc, zap_name_t *zn);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZAP_IMPL_H */
diff --git a/module/zfs/include/sys/zap_leaf.h b/module/zfs/include/sys/zap_leaf.h
deleted file mode 100644 (file)
index 3a33636..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_ZAP_LEAF_H
-#define        _SYS_ZAP_LEAF_H
-
-#include <sys/zap.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct zap;
-struct zap_name;
-struct zap_stats;
-
-#define        ZAP_LEAF_MAGIC 0x2AB1EAF
-
-/* chunk size = 24 bytes */
-#define        ZAP_LEAF_CHUNKSIZE 24
-
-/*
- * The amount of space available for chunks is:
- * block size (1<<l->l_bs) - hash entry size (2) * number of hash
- * entries - header space (2*chunksize)
- */
-#define        ZAP_LEAF_NUMCHUNKS(l) \
-       (((1<<(l)->l_bs) - 2*ZAP_LEAF_HASH_NUMENTRIES(l)) / \
-       ZAP_LEAF_CHUNKSIZE - 2)
-
-/*
- * The amount of space within the chunk available for the array is:
- * chunk size - space for type (1) - space for next pointer (2)
- */
-#define        ZAP_LEAF_ARRAY_BYTES (ZAP_LEAF_CHUNKSIZE - 3)
-
-#define        ZAP_LEAF_ARRAY_NCHUNKS(bytes) \
-       (((bytes)+ZAP_LEAF_ARRAY_BYTES-1)/ZAP_LEAF_ARRAY_BYTES)
-
-/*
- * Low water mark:  when there are only this many chunks free, start
- * growing the ptrtbl.  Ideally, this should be larger than a
- * "reasonably-sized" entry.  20 chunks is more than enough for the
- * largest directory entry (MAXNAMELEN (256) byte name, 8-byte value),
- * while still being only around 3% for 16k blocks.
- */
-#define        ZAP_LEAF_LOW_WATER (20)
-
-/*
- * The leaf hash table has block size / 2^5 (32) number of entries,
- * which should be more than enough for the maximum number of entries,
- * which is less than block size / CHUNKSIZE (24) / minimum number of
- * chunks per entry (3).
- */
-#define        ZAP_LEAF_HASH_SHIFT(l) ((l)->l_bs - 5)
-#define        ZAP_LEAF_HASH_NUMENTRIES(l) (1 << ZAP_LEAF_HASH_SHIFT(l))
-
-/*
- * The chunks start immediately after the hash table.  The end of the
- * hash table is at l_hash + HASH_NUMENTRIES, which we simply cast to a
- * chunk_t.
- */
-#define        ZAP_LEAF_CHUNK(l, idx) \
-       ((zap_leaf_chunk_t *) \
-       ((l)->l_phys->l_hash + ZAP_LEAF_HASH_NUMENTRIES(l)))[idx]
-#define        ZAP_LEAF_ENTRY(l, idx) (&ZAP_LEAF_CHUNK(l, idx).l_entry)
-
-typedef enum zap_chunk_type {
-       ZAP_CHUNK_FREE = 253,
-       ZAP_CHUNK_ENTRY = 252,
-       ZAP_CHUNK_ARRAY = 251,
-       ZAP_CHUNK_TYPE_MAX = 250
-} zap_chunk_type_t;
-
-#define        ZLF_ENTRIES_CDSORTED (1<<0)
-
-/*
- * TAKE NOTE:
- * If zap_leaf_phys_t is modified, zap_leaf_byteswap() must be modified.
- */
-typedef struct zap_leaf_phys {
-       struct zap_leaf_header {
-               uint64_t lh_block_type;         /* ZBT_LEAF */
-               uint64_t lh_pad1;
-               uint64_t lh_prefix;             /* hash prefix of this leaf */
-               uint32_t lh_magic;              /* ZAP_LEAF_MAGIC */
-               uint16_t lh_nfree;              /* number free chunks */
-               uint16_t lh_nentries;           /* number of entries */
-               uint16_t lh_prefix_len;         /* num bits used to id this */
-
-/* above is accessable to zap, below is zap_leaf private */
-
-               uint16_t lh_freelist;           /* chunk head of free list */
-               uint8_t lh_flags;               /* ZLF_* flags */
-               uint8_t lh_pad2[11];
-       } l_hdr; /* 2 24-byte chunks */
-
-       /*
-        * The header is followed by a hash table with
-        * ZAP_LEAF_HASH_NUMENTRIES(zap) entries.  The hash table is
-        * followed by an array of ZAP_LEAF_NUMCHUNKS(zap)
-        * zap_leaf_chunk structures.  These structures are accessed
-        * with the ZAP_LEAF_CHUNK() macro.
-        */
-
-       uint16_t l_hash[1];
-} zap_leaf_phys_t;
-
-typedef union zap_leaf_chunk {
-       struct zap_leaf_entry {
-               uint8_t le_type;                /* always ZAP_CHUNK_ENTRY */
-               uint8_t le_value_intlen;        /* size of value's ints */
-               uint16_t le_next;               /* next entry in hash chain */
-               uint16_t le_name_chunk;         /* first chunk of the name */
-               uint16_t le_name_numints;       /* ints in name (incl null) */
-               uint16_t le_value_chunk;        /* first chunk of the value */
-               uint16_t le_value_numints;      /* value length in ints */
-               uint32_t le_cd;                 /* collision differentiator */
-               uint64_t le_hash;               /* hash value of the name */
-       } l_entry;
-       struct zap_leaf_array {
-               uint8_t la_type;                /* always ZAP_CHUNK_ARRAY */
-               uint8_t la_array[ZAP_LEAF_ARRAY_BYTES];
-               uint16_t la_next;               /* next blk or CHAIN_END */
-       } l_array;
-       struct zap_leaf_free {
-               uint8_t lf_type;                /* always ZAP_CHUNK_FREE */
-               uint8_t lf_pad[ZAP_LEAF_ARRAY_BYTES];
-               uint16_t lf_next;       /* next in free list, or CHAIN_END */
-       } l_free;
-} zap_leaf_chunk_t;
-
-typedef struct zap_leaf {
-       krwlock_t l_rwlock;
-       uint64_t l_blkid;               /* 1<<ZAP_BLOCK_SHIFT byte block off */
-       int l_bs;                       /* block size shift */
-       dmu_buf_t *l_dbuf;
-       zap_leaf_phys_t *l_phys;
-} zap_leaf_t;
-
-
-typedef struct zap_entry_handle {
-       /* below is set by zap_leaf.c and is public to zap.c */
-       uint64_t zeh_num_integers;
-       uint64_t zeh_hash;
-       uint32_t zeh_cd;
-       uint8_t zeh_integer_size;
-
-       /* below is private to zap_leaf.c */
-       uint16_t zeh_fakechunk;
-       uint16_t *zeh_chunkp;
-       zap_leaf_t *zeh_leaf;
-} zap_entry_handle_t;
-
-/*
- * Return a handle to the named entry, or ENOENT if not found.  The hash
- * value must equal zap_hash(name).
- */
-extern int zap_leaf_lookup(zap_leaf_t *l,
-    struct zap_name *zn, zap_entry_handle_t *zeh);
-
-/*
- * Return a handle to the entry with this hash+cd, or the entry with the
- * next closest hash+cd.
- */
-extern int zap_leaf_lookup_closest(zap_leaf_t *l,
-    uint64_t hash, uint32_t cd, zap_entry_handle_t *zeh);
-
-/*
- * Read the first num_integers in the attribute.  Integer size
- * conversion will be done without sign extension.  Return EINVAL if
- * integer_size is too small.  Return EOVERFLOW if there are more than
- * num_integers in the attribute.
- */
-extern int zap_entry_read(const zap_entry_handle_t *zeh,
-    uint8_t integer_size, uint64_t num_integers, void *buf);
-
-extern int zap_entry_read_name(struct zap *zap, const zap_entry_handle_t *zeh,
-    uint16_t buflen, char *buf);
-
-/*
- * Replace the value of an existing entry.
- *
- * zap_entry_update may fail if it runs out of space (ENOSPC).
- */
-extern int zap_entry_update(zap_entry_handle_t *zeh,
-    uint8_t integer_size, uint64_t num_integers, const void *buf);
-
-/*
- * Remove an entry.
- */
-extern void zap_entry_remove(zap_entry_handle_t *zeh);
-
-/*
- * Create an entry. An equal entry must not exist, and this entry must
- * belong in this leaf (according to its hash value).  Fills in the
- * entry handle on success.  Returns 0 on success or ENOSPC on failure.
- */
-extern int zap_entry_create(zap_leaf_t *l, struct zap_name *zn, uint32_t cd,
-    uint8_t integer_size, uint64_t num_integers, const void *buf,
-    zap_entry_handle_t *zeh);
-
-/*
- * Return true if there are additional entries with the same normalized
- * form.
- */
-extern boolean_t zap_entry_normalization_conflict(zap_entry_handle_t *zeh,
-    struct zap_name *zn, const char *name, struct zap *zap);
-
-/*
- * Other stuff.
- */
-
-extern void zap_leaf_init(zap_leaf_t *l, boolean_t sort);
-extern void zap_leaf_byteswap(zap_leaf_phys_t *buf, int len);
-extern void zap_leaf_split(zap_leaf_t *l, zap_leaf_t *nl, boolean_t sort);
-extern void zap_leaf_stats(struct zap *zap, zap_leaf_t *l,
-    struct zap_stats *zs);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZAP_LEAF_H */
diff --git a/module/zfs/include/sys/zfs_acl.h b/module/zfs/include/sys/zfs_acl.h
deleted file mode 100644 (file)
index c1a0aee..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_FS_ZFS_ACL_H
-#define        _SYS_FS_ZFS_ACL_H
-
-#ifdef _KERNEL
-#include <sys/isa_defs.h>
-#include <sys/types32.h>
-#endif
-#include <sys/acl.h>
-#include <sys/dmu.h>
-#include <sys/zfs_fuid.h>
-#include <sys/sa.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct znode_phys;
-
-#define        ACE_SLOT_CNT    6
-#define        ZFS_ACL_VERSION_INITIAL 0ULL
-#define        ZFS_ACL_VERSION_FUID    1ULL
-#define        ZFS_ACL_VERSION         ZFS_ACL_VERSION_FUID
-
-/*
- * ZFS ACLs are store in various forms.
- * Files created with ACL version ZFS_ACL_VERSION_INITIAL
- * will all be created with fixed length ACEs of type
- * zfs_oldace_t.
- *
- * Files with ACL version ZFS_ACL_VERSION_FUID will be created
- * with various sized ACEs.  The abstraction entries will utilize
- * zfs_ace_hdr_t, normal user/group entries will use zfs_ace_t
- * and some specialized CIFS ACEs will use zfs_object_ace_t.
- */
-
-/*
- * All ACEs have a common hdr.  For
- * owner@, group@, and everyone@ this is all
- * thats needed.
- */
-typedef struct zfs_ace_hdr {
-       uint16_t z_type;
-       uint16_t z_flags;
-       uint32_t z_access_mask;
-} zfs_ace_hdr_t;
-
-typedef zfs_ace_hdr_t zfs_ace_abstract_t;
-
-/*
- * Standard ACE
- */
-typedef struct zfs_ace {
-       zfs_ace_hdr_t   z_hdr;
-       uint64_t        z_fuid;
-} zfs_ace_t;
-
-/*
- * The following type only applies to ACE_ACCESS_ALLOWED|DENIED_OBJECT_ACE_TYPE
- * and will only be set/retrieved in a CIFS context.
- */
-
-typedef struct zfs_object_ace {
-       zfs_ace_t       z_ace;
-       uint8_t         z_object_type[16]; /* object type */
-       uint8_t         z_inherit_type[16]; /* inherited object type */
-} zfs_object_ace_t;
-
-typedef struct zfs_oldace {
-       uint32_t        z_fuid;         /* "who" */
-       uint32_t        z_access_mask;  /* access mask */
-       uint16_t        z_flags;        /* flags, i.e inheritance */
-       uint16_t        z_type;         /* type of entry allow/deny */
-} zfs_oldace_t;
-
-typedef struct zfs_acl_phys_v0 {
-       uint64_t        z_acl_extern_obj;       /* ext acl pieces */
-       uint32_t        z_acl_count;            /* Number of ACEs */
-       uint16_t        z_acl_version;          /* acl version */
-       uint16_t        z_acl_pad;              /* pad */
-       zfs_oldace_t    z_ace_data[ACE_SLOT_CNT]; /* 6 standard ACEs */
-} zfs_acl_phys_v0_t;
-
-#define        ZFS_ACE_SPACE   (sizeof (zfs_oldace_t) * ACE_SLOT_CNT)
-
-/*
- * Size of ACL count is always 2 bytes.
- * Necessary to for dealing with both V0 ACL and V1 ACL layout
- */
-#define        ZFS_ACL_COUNT_SIZE      (sizeof (uint16_t))
-
-typedef struct zfs_acl_phys {
-       uint64_t        z_acl_extern_obj;         /* ext acl pieces */
-       uint32_t        z_acl_size;               /* Number of bytes in ACL */
-       uint16_t        z_acl_version;            /* acl version */
-       uint16_t        z_acl_count;              /* ace count */
-       uint8_t z_ace_data[ZFS_ACE_SPACE]; /* space for embedded ACEs */
-} zfs_acl_phys_t;
-
-typedef struct acl_ops {
-       uint32_t        (*ace_mask_get) (void *acep); /* get  access mask */
-       void            (*ace_mask_set) (void *acep,
-                           uint32_t mask); /* set access mask */
-       uint16_t        (*ace_flags_get) (void *acep);  /* get flags */
-       void            (*ace_flags_set) (void *acep,
-                           uint16_t flags); /* set flags */
-       uint16_t        (*ace_type_get)(void *acep); /* get type */
-       void            (*ace_type_set)(void *acep,
-                           uint16_t type); /* set type */
-       uint64_t        (*ace_who_get)(void *acep); /* get who/fuid */
-       void            (*ace_who_set)(void *acep,
-                           uint64_t who); /* set who/fuid */
-       size_t          (*ace_size)(void *acep); /* how big is this ace */
-       size_t          (*ace_abstract_size)(void); /* sizeof abstract entry */
-       int             (*ace_mask_off)(void); /* off of access mask in ace */
-       int             (*ace_data)(void *acep, void **datap);
-                           /* ptr to data if any */
-} acl_ops_t;
-
-/*
- * A zfs_acl_t structure is composed of a list of zfs_acl_node_t's.
- * Each node will have one or more ACEs associated with it.  You will
- * only have multiple nodes during a chmod operation.   Normally only
- * one node is required.
- */
-typedef struct zfs_acl_node {
-       list_node_t     z_next;         /* Next chunk of ACEs */
-       void            *z_acldata;     /* pointer into actual ACE(s) */
-       void            *z_allocdata;   /* pointer to kmem allocated memory */
-       size_t          z_allocsize;    /* Size of blob in bytes */
-       size_t          z_size;         /* length of ACL data */
-       uint64_t        z_ace_count;    /* number of ACEs in this acl node */
-       int             z_ace_idx;      /* ace iterator positioned on */
-} zfs_acl_node_t;
-
-typedef struct zfs_acl {
-       uint64_t        z_acl_count;    /* Number of ACEs */
-       size_t          z_acl_bytes;    /* Number of bytes in ACL */
-       uint_t          z_version;      /* version of ACL */
-       void            *z_next_ace;    /* pointer to next ACE */
-       uint64_t        z_hints;        /* ACL hints (ZFS_INHERIT_ACE ...) */
-       zfs_acl_node_t  *z_curr_node;   /* current node iterator is handling */
-       list_t          z_acl;          /* chunks of ACE data */
-       acl_ops_t       z_ops;          /* ACL operations */
-} zfs_acl_t;
-
-typedef struct acl_locator_cb {
-       zfs_acl_t *cb_aclp;
-       zfs_acl_node_t *cb_acl_node;
-} zfs_acl_locator_cb_t;
-
-#define        ACL_DATA_ALLOCED        0x1
-#define        ZFS_ACL_SIZE(aclcnt)    (sizeof (ace_t) * (aclcnt))
-
-struct zfs_fuid_info;
-
-typedef struct zfs_acl_ids {
-       uint64_t                z_fuid;         /* file owner fuid */
-       uint64_t                z_fgid;         /* file group owner fuid */
-       uint64_t                z_mode;         /* mode to set on create */
-       zfs_acl_t               *z_aclp;        /* ACL to create with file */
-       struct zfs_fuid_info    *z_fuidp;       /* for tracking fuids for log */
-} zfs_acl_ids_t;
-
-/*
- * Property values for acl_mode and acl_inherit.
- *
- * acl_mode can take discard, noallow, groupmask and passthrough.
- * whereas acl_inherit has secure instead of groupmask.
- */
-
-#define        ZFS_ACL_DISCARD         0
-#define        ZFS_ACL_NOALLOW         1
-#define        ZFS_ACL_GROUPMASK       2
-#define        ZFS_ACL_PASSTHROUGH     3
-#define        ZFS_ACL_RESTRICTED      4
-#define        ZFS_ACL_PASSTHROUGH_X   5
-
-struct znode;
-struct zfsvfs;
-
-#ifdef _KERNEL
-int zfs_acl_ids_create(struct znode *, int, vattr_t *,
-    cred_t *, vsecattr_t *, zfs_acl_ids_t *);
-void zfs_acl_ids_free(zfs_acl_ids_t *);
-boolean_t zfs_acl_ids_overquota(struct zfsvfs *, zfs_acl_ids_t *);
-int zfs_getacl(struct znode *, vsecattr_t *, boolean_t, cred_t *);
-int zfs_setacl(struct znode *, vsecattr_t *, boolean_t, cred_t *);
-void zfs_acl_rele(void *);
-void zfs_oldace_byteswap(ace_t *, int);
-void zfs_ace_byteswap(void *, size_t, boolean_t);
-extern boolean_t zfs_has_access(struct znode *zp, cred_t *cr);
-extern int zfs_zaccess(struct znode *, int, int, boolean_t, cred_t *);
-int zfs_fastaccesschk_execute(struct znode *, cred_t *);
-extern int zfs_zaccess_rwx(struct znode *, mode_t, int, cred_t *);
-extern int zfs_zaccess_unix(struct znode *, mode_t, cred_t *);
-extern int zfs_acl_access(struct znode *, int, cred_t *);
-void zfs_acl_chmod_setattr(struct znode *, zfs_acl_t **, uint64_t);
-int zfs_zaccess_delete(struct znode *, struct znode *, cred_t *);
-int zfs_zaccess_rename(struct znode *, struct znode *,
-    struct znode *, struct znode *, cred_t *cr);
-void zfs_acl_free(zfs_acl_t *);
-int zfs_vsec_2_aclp(struct zfsvfs *, vtype_t, vsecattr_t *, cred_t *,
-    struct zfs_fuid_info **, zfs_acl_t **);
-int zfs_aclset_common(struct znode *, zfs_acl_t *, cred_t *, dmu_tx_t *);
-uint64_t zfs_external_acl(struct znode *);
-int zfs_znode_acl_version(struct znode *);
-int zfs_acl_size(struct znode *, int *);
-zfs_acl_t *zfs_acl_alloc(int);
-zfs_acl_node_t *zfs_acl_node_alloc(size_t);
-void zfs_acl_xform(struct znode *, zfs_acl_t *, cred_t *);
-void zfs_acl_data_locator(void **, uint32_t *, uint32_t, boolean_t, void *);
-uint64_t zfs_mode_compute(uint64_t, zfs_acl_t *,
-    uint64_t *, uint64_t, uint64_t);
-int zfs_acl_chown_setattr(struct znode *);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* _SYS_FS_ZFS_ACL_H */
diff --git a/module/zfs/include/sys/zfs_context.h b/module/zfs/include/sys/zfs_context.h
deleted file mode 100644 (file)
index af9275b..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_ZFS_CONTEXT_H
-#define        _SYS_ZFS_CONTEXT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <sys/note.h>
-#include <sys/types.h>
-#include <sys/t_lock.h>
-#include <sys/atomic.h>
-#include <sys/sysmacros.h>
-#include <sys/bitmap.h>
-#include <sys/cmn_err.h>
-#include <sys/kmem.h>
-#include <sys/taskq.h>
-#include <sys/buf.h>
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/cpuvar.h>
-#include <sys/kobj.h>
-#include <sys/conf.h>
-#include <sys/disp.h>
-#include <sys/debug.h>
-#include <sys/random.h>
-#include <sys/byteorder.h>
-#include <sys/systm.h>
-#include <sys/list.h>
-#include <sys/uio.h>
-#include <sys/dirent.h>
-#include <sys/time.h>
-#include <vm/seg_kmem.h>
-#include <sys/zone.h>
-#include <sys/uio.h>
-#include <sys/zfs_debug.h>
-#include <sys/fm/fs/zfs.h>
-#include <sys/sunddi.h>
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZFS_CONTEXT_H */
diff --git a/module/zfs/include/sys/zfs_ctldir.h b/module/zfs/include/sys/zfs_ctldir.h
deleted file mode 100644 (file)
index f88ef95..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _ZFS_CTLDIR_H
-#define        _ZFS_CTLDIR_H
-
-#include <sys/pathname.h>
-#include <sys/vnode.h>
-#include <sys/zfs_vfsops.h>
-#include <sys/zfs_znode.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define        ZFS_CTLDIR_NAME         ".zfs"
-
-#define        zfs_has_ctldir(zdp)     \
-       ((zdp)->z_id == (zdp)->z_zfsvfs->z_root && \
-       ((zdp)->z_zfsvfs->z_ctldir != NULL))
-#define        zfs_show_ctldir(zdp)    \
-       (zfs_has_ctldir(zdp) && \
-       ((zdp)->z_zfsvfs->z_show_ctldir))
-
-void zfsctl_create(zfsvfs_t *);
-void zfsctl_destroy(zfsvfs_t *);
-vnode_t *zfsctl_root(znode_t *);
-void zfsctl_init(void);
-void zfsctl_fini(void);
-boolean_t zfsctl_is_node(vnode_t *);
-
-int zfsctl_rename_snapshot(const char *from, const char *to);
-int zfsctl_destroy_snapshot(const char *snapname, int force);
-int zfsctl_umount_snapshots(vfs_t *, int, cred_t *);
-
-int zfsctl_root_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, pathname_t *pnp,
-    int flags, vnode_t *rdir, cred_t *cr, caller_context_t *ct,
-    int *direntflags, pathname_t *realpnp);
-
-int zfsctl_make_fid(zfsvfs_t *zfsvfsp, uint64_t object, uint32_t gen,
-    fid_t *fidp);
-int zfsctl_lookup_objset(vfs_t *vfsp, uint64_t objsetid, zfsvfs_t **zfsvfsp);
-
-#define        ZFSCTL_INO_ROOT         0x1
-#define        ZFSCTL_INO_SNAPDIR      0x2
-#define        ZFSCTL_INO_SHARES       0x3
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZFS_CTLDIR_H */
diff --git a/module/zfs/include/sys/zfs_debug.h b/module/zfs/include/sys/zfs_debug.h
deleted file mode 100644 (file)
index f08d7cd..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _SYS_ZFS_DEBUG_H
-#define        _SYS_ZFS_DEBUG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef TRUE
-#define        TRUE 1
-#endif
-
-#ifndef FALSE
-#define        FALSE 0
-#endif
-
-/*
- * ZFS debugging
- */
-
-#if defined(DEBUG) || !defined(_KERNEL)
-#define        ZFS_DEBUG
-#endif
-
-extern int zfs_flags;
-
-#define        ZFS_DEBUG_DPRINTF       0x0001
-#define        ZFS_DEBUG_DBUF_VERIFY   0x0002
-#define        ZFS_DEBUG_DNODE_VERIFY  0x0004
-#define        ZFS_DEBUG_SNAPNAMES     0x0008
-#define        ZFS_DEBUG_MODIFY        0x0010
-
-#ifdef ZFS_DEBUG
-#if defined(_KERNEL) && defined(HAVE_SPL)
-/*
- * Log ZFS debug messages as the spl SS_USER1 subsystem.
- */
-#include <spl-debug.h>
-
-#ifdef SS_DEBUG_SUBSYS
-#undef SS_DEBUG_SUBSYS
-#endif
-#define SS_DEBUG_SUBSYS SS_USER1
-#define dprintf(...) SDEBUG_LIMIT(SD_DPRINTF, __VA_ARGS__)
-#else
-extern void __dprintf(const char *file, const char *func,
-    int line, const char *fmt, ...);
-#define        dprintf(...) \
-       if (zfs_flags & ZFS_DEBUG_DPRINTF) \
-               __dprintf(__FILE__, __func__, __LINE__, __VA_ARGS__)
-#endif /* _KERNEL && HAVE_SPL */
-#else
-#define        dprintf(...) ((void)0)
-#endif /* ZFS_DEBUG */
-
-extern void zfs_panic_recover(const char *fmt, ...);
-
-typedef struct zfs_dbgmsg {
-       list_node_t zdm_node;
-       time_t zdm_timestamp;
-       char zdm_msg[1]; /* variable length allocation */
-} zfs_dbgmsg_t;
-
-extern void zfs_dbgmsg_init(void);
-extern void zfs_dbgmsg_fini(void);
-extern void zfs_dbgmsg(const char *fmt, ...);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZFS_DEBUG_H */
diff --git a/module/zfs/include/sys/zfs_dir.h b/module/zfs/include/sys/zfs_dir.h
deleted file mode 100644 (file)
index 349f8ef..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _SYS_FS_ZFS_DIR_H
-#define        _SYS_FS_ZFS_DIR_H
-
-#include <sys/pathname.h>
-#include <sys/dmu.h>
-#include <sys/zfs_znode.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* zfs_dirent_lock() flags */
-#define        ZNEW            0x0001          /* entry should not exist */
-#define        ZEXISTS         0x0002          /* entry should exist */
-#define        ZSHARED         0x0004          /* shared access (zfs_dirlook()) */
-#define        ZXATTR          0x0008          /* we want the xattr dir */
-#define        ZRENAMING       0x0010          /* znode is being renamed */
-#define        ZCILOOK         0x0020          /* case-insensitive lookup requested */
-#define        ZCIEXACT        0x0040          /* c-i requires c-s match (rename) */
-#define        ZHAVELOCK       0x0080          /* z_name_lock is already held */
-
-/* mknode flags */
-#define        IS_ROOT_NODE    0x01            /* create a root node */
-#define        IS_XATTR        0x02            /* create an extended attribute node */
-
-extern int zfs_dirent_lock(zfs_dirlock_t **, znode_t *, char *, znode_t **,
-    int, int *, pathname_t *);
-extern void zfs_dirent_unlock(zfs_dirlock_t *);
-extern int zfs_link_create(zfs_dirlock_t *, znode_t *, dmu_tx_t *, int);
-extern int zfs_link_destroy(zfs_dirlock_t *, znode_t *, dmu_tx_t *, int,
-    boolean_t *);
-extern int zfs_dirlook(znode_t *, char *, vnode_t **, int, int *,
-    pathname_t *);
-extern void zfs_mknode(znode_t *, vattr_t *, dmu_tx_t *, cred_t *,
-    uint_t, znode_t **, zfs_acl_ids_t *);
-extern void zfs_rmnode(znode_t *);
-extern void zfs_dl_name_switch(zfs_dirlock_t *dl, char *new, char **old);
-extern boolean_t zfs_dirempty(znode_t *);
-extern void zfs_unlinked_add(znode_t *, dmu_tx_t *);
-extern void zfs_unlinked_drain(zfsvfs_t *zfsvfs);
-extern int zfs_sticky_remove_access(znode_t *, znode_t *, cred_t *cr);
-extern int zfs_get_xattrdir(znode_t *, vnode_t **, cred_t *, int);
-extern int zfs_make_xattrdir(znode_t *, vattr_t *, vnode_t **, cred_t *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_FS_ZFS_DIR_H */
diff --git a/module/zfs/include/sys/zfs_fuid.h b/module/zfs/include/sys/zfs_fuid.h
deleted file mode 100644 (file)
index d2989c8..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _SYS_FS_ZFS_FUID_H
-#define        _SYS_FS_ZFS_FUID_H
-
-#ifdef _KERNEL
-#include <sys/kidmap.h>
-#include <sys/sid.h>
-#include <sys/dmu.h>
-#include <sys/zfs_vfsops.h>
-#endif
-#include <sys/avl.h>
-#include <sys/list.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum {
-       ZFS_OWNER,
-       ZFS_GROUP,
-       ZFS_ACE_USER,
-       ZFS_ACE_GROUP
-} zfs_fuid_type_t;
-
-/*
- * Estimate space needed for one more fuid table entry.
- * for now assume its current size + 1K
- */
-#define        FUID_SIZE_ESTIMATE(z) ((z)->z_fuid_size + (SPA_MINBLOCKSIZE << 1))
-
-#define        FUID_INDEX(x)   ((x) >> 32)
-#define        FUID_RID(x)     ((x) & 0xffffffff)
-#define        FUID_ENCODE(idx, rid) (((uint64_t)(idx) << 32) | (rid))
-/*
- * FUIDs cause problems for the intent log
- * we need to replay the creation of the FUID,
- * but we can't count on the idmapper to be around
- * and during replay the FUID index may be different than
- * before.  Also, if an ACL has 100 ACEs and 12 different
- * domains we don't want to log 100 domain strings, but rather
- * just the unique 12.
- */
-
-/*
- * The FUIDs in the log will index into
- * domain string table and the bottom half will be the rid.
- * Used for mapping ephemeral uid/gid during ACL setting to FUIDs
- */
-typedef struct zfs_fuid {
-       list_node_t     z_next;
-       uint64_t        z_id;           /* uid/gid being converted to fuid */
-       uint64_t        z_domidx;       /* index in AVL domain table */
-       uint64_t        z_logfuid;      /* index for domain in log */
-} zfs_fuid_t;
-
-/* list of unique domains */
-typedef struct zfs_fuid_domain {
-       list_node_t     z_next;
-       uint64_t        z_domidx;       /* AVL tree idx */
-       const char      *z_domain;      /* domain string */
-} zfs_fuid_domain_t;
-
-/*
- * FUID information necessary for logging create, setattr, and setacl.
- */
-typedef struct zfs_fuid_info {
-       list_t  z_fuids;
-       list_t  z_domains;
-       uint64_t z_fuid_owner;
-       uint64_t z_fuid_group;
-       char **z_domain_table;  /* Used during replay */
-       uint32_t z_fuid_cnt;    /* How many fuids in z_fuids */
-       uint32_t z_domain_cnt;  /* How many domains */
-       size_t  z_domain_str_sz; /* len of domain strings z_domain list */
-} zfs_fuid_info_t;
-
-#ifdef _KERNEL
-#ifdef HAVE_ZPL
-struct znode;
-extern uid_t zfs_fuid_map_id(zfsvfs_t *, uint64_t, cred_t *, zfs_fuid_type_t);
-extern void zfs_fuid_node_add(zfs_fuid_info_t **, const char *, uint32_t,
-    uint64_t, uint64_t, zfs_fuid_type_t);
-extern void zfs_fuid_destroy(zfsvfs_t *);
-extern uint64_t zfs_fuid_create_cred(zfsvfs_t *, zfs_fuid_type_t,
-    cred_t *, zfs_fuid_info_t **);
-extern uint64_t zfs_fuid_create(zfsvfs_t *, uint64_t, cred_t *, zfs_fuid_type_t,
-    zfs_fuid_info_t **);
-extern void zfs_fuid_map_ids(struct znode *zp, cred_t *cr,
-    uid_t *uid, uid_t *gid);
-extern zfs_fuid_info_t *zfs_fuid_info_alloc(void);
-extern void zfs_fuid_info_free(zfs_fuid_info_t *);
-extern boolean_t zfs_groupmember(zfsvfs_t *, uint64_t, cred_t *);
-void zfs_fuid_sync(zfsvfs_t *, dmu_tx_t *);
-extern int zfs_fuid_find_by_domain(zfsvfs_t *, const char *domain,
-    char **retdomain, boolean_t addok);
-extern const char *zfs_fuid_find_by_idx(zfsvfs_t *zfsvfs, uint32_t idx);
-extern void zfs_fuid_txhold(zfsvfs_t *zfsvfs, dmu_tx_t *tx);
-#endif /* HAVE_ZPL */
-#endif
-
-char *zfs_fuid_idx_domain(avl_tree_t *, uint32_t);
-void zfs_fuid_avl_tree_create(avl_tree_t *, avl_tree_t *);
-uint64_t zfs_fuid_table_load(objset_t *, uint64_t, avl_tree_t *, avl_tree_t *);
-void zfs_fuid_table_destroy(avl_tree_t *, avl_tree_t *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_FS_ZFS_FUID_H */
diff --git a/module/zfs/include/sys/zfs_ioctl.h b/module/zfs/include/sys/zfs_ioctl.h
deleted file mode 100644 (file)
index e3fd2c3..0000000
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_ZFS_IOCTL_H
-#define        _SYS_ZFS_IOCTL_H
-
-#include <sys/cred.h>
-#include <sys/dmu.h>
-#include <sys/zio.h>
-#include <sys/dsl_deleg.h>
-#include <sys/spa.h>
-#include <sys/zfs_stat.h>
-
-#ifdef _KERNEL
-#include <sys/nvpair.h>
-#endif /* _KERNEL */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Property values for snapdir
- */
-#define        ZFS_SNAPDIR_HIDDEN              0
-#define        ZFS_SNAPDIR_VISIBLE             1
-
-/*
- * Field manipulation macros for the drr_versioninfo field of the
- * send stream header.
- */
-
-/*
- * Header types for zfs send streams.
- */
-typedef enum drr_headertype {
-       DMU_SUBSTREAM = 0x1,
-       DMU_COMPOUNDSTREAM = 0x2
-} drr_headertype_t;
-
-#define        DMU_GET_STREAM_HDRTYPE(vi)      BF64_GET((vi), 0, 2)
-#define        DMU_SET_STREAM_HDRTYPE(vi, x)   BF64_SET((vi), 0, 2, x)
-
-#define        DMU_GET_FEATUREFLAGS(vi)        BF64_GET((vi), 2, 30)
-#define        DMU_SET_FEATUREFLAGS(vi, x)     BF64_SET((vi), 2, 30, x)
-
-/*
- * Feature flags for zfs send streams (flags in drr_versioninfo)
- */
-
-#define        DMU_BACKUP_FEATURE_DEDUP        (0x1)
-#define        DMU_BACKUP_FEATURE_DEDUPPROPS   (0x2)
-#define        DMU_BACKUP_FEATURE_SA_SPILL     (0x4)
-
-/*
- * Mask of all supported backup features
- */
-#define        DMU_BACKUP_FEATURE_MASK (DMU_BACKUP_FEATURE_DEDUP | \
-               DMU_BACKUP_FEATURE_DEDUPPROPS | DMU_BACKUP_FEATURE_SA_SPILL)
-
-/* Are all features in the given flag word currently supported? */
-#define        DMU_STREAM_SUPPORTED(x) (!((x) & ~DMU_BACKUP_FEATURE_MASK))
-
-/*
- * The drr_versioninfo field of the dmu_replay_record has the
- * following layout:
- *
- *     64      56      48      40      32      24      16      8       0
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- *     |               reserved        |        feature-flags      |C|S|
- *     +-------+-------+-------+-------+-------+-------+-------+-------+
- *
- * The low order two bits indicate the header type: SUBSTREAM (0x1)
- * or COMPOUNDSTREAM (0x2).  Using two bits for this is historical:
- * this field used to be a version number, where the two version types
- * were 1 and 2.  Using two bits for this allows earlier versions of
- * the code to be able to recognize send streams that don't use any
- * of the features indicated by feature flags.
- */
-
-#define        DMU_BACKUP_MAGIC 0x2F5bacbacULL
-
-#define        DRR_FLAG_CLONE          (1<<0)
-#define        DRR_FLAG_CI_DATA        (1<<1)
-
-/*
- * flags in the drr_checksumflags field in the DRR_WRITE and
- * DRR_WRITE_BYREF blocks
- */
-#define        DRR_CHECKSUM_DEDUP      (1<<0)
-
-#define        DRR_IS_DEDUP_CAPABLE(flags)     ((flags) & DRR_CHECKSUM_DEDUP)
-
-/*
- * zfs ioctl command structure
- */
-typedef struct dmu_replay_record {
-       enum {
-               DRR_BEGIN, DRR_OBJECT, DRR_FREEOBJECTS,
-               DRR_WRITE, DRR_FREE, DRR_END, DRR_WRITE_BYREF,
-               DRR_SPILL, DRR_NUMTYPES
-       } drr_type;
-       uint32_t drr_payloadlen;
-       union {
-               struct drr_begin {
-                       uint64_t drr_magic;
-                       uint64_t drr_versioninfo; /* was drr_version */
-                       uint64_t drr_creation_time;
-                       dmu_objset_type_t drr_type;
-                       uint32_t drr_flags;
-                       uint64_t drr_toguid;
-                       uint64_t drr_fromguid;
-                       char drr_toname[MAXNAMELEN];
-               } drr_begin;
-               struct drr_end {
-                       zio_cksum_t drr_checksum;
-                       uint64_t drr_toguid;
-               } drr_end;
-               struct drr_object {
-                       uint64_t drr_object;
-                       dmu_object_type_t drr_type;
-                       dmu_object_type_t drr_bonustype;
-                       uint32_t drr_blksz;
-                       uint32_t drr_bonuslen;
-                       uint8_t drr_checksumtype;
-                       uint8_t drr_compress;
-                       uint8_t drr_pad[6];
-                       uint64_t drr_toguid;
-                       /* bonus content follows */
-               } drr_object;
-               struct drr_freeobjects {
-                       uint64_t drr_firstobj;
-                       uint64_t drr_numobjs;
-                       uint64_t drr_toguid;
-               } drr_freeobjects;
-               struct drr_write {
-                       uint64_t drr_object;
-                       dmu_object_type_t drr_type;
-                       uint32_t drr_pad;
-                       uint64_t drr_offset;
-                       uint64_t drr_length;
-                       uint64_t drr_toguid;
-                       uint8_t drr_checksumtype;
-                       uint8_t drr_checksumflags;
-                       uint8_t drr_pad2[6];
-                       ddt_key_t drr_key; /* deduplication key */
-                       /* content follows */
-               } drr_write;
-               struct drr_free {
-                       uint64_t drr_object;
-                       uint64_t drr_offset;
-                       uint64_t drr_length;
-                       uint64_t drr_toguid;
-               } drr_free;
-               struct drr_write_byref {
-                       /* where to put the data */
-                       uint64_t drr_object;
-                       uint64_t drr_offset;
-                       uint64_t drr_length;
-                       uint64_t drr_toguid;
-                       /* where to find the prior copy of the data */
-                       uint64_t drr_refguid;
-                       uint64_t drr_refobject;
-                       uint64_t drr_refoffset;
-                       /* properties of the data */
-                       uint8_t drr_checksumtype;
-                       uint8_t drr_checksumflags;
-                       uint8_t drr_pad2[6];
-                       ddt_key_t drr_key; /* deduplication key */
-               } drr_write_byref;
-               struct drr_spill {
-                       uint64_t drr_object;
-                       uint64_t drr_length;
-                       uint64_t drr_toguid;
-                       uint64_t drr_pad[4]; /* needed for crypto */
-                       /* spill data follows */
-               } drr_spill;
-       } drr_u;
-} dmu_replay_record_t;
-
-/* diff record range types */
-typedef enum diff_type {
-       DDR_NONE = 0x1,
-       DDR_INUSE = 0x2,
-       DDR_FREE = 0x4
-} diff_type_t;
-
-/*
- * The diff reports back ranges of free or in-use objects.
- */
-typedef struct dmu_diff_record {
-       uint64_t ddr_type;
-       uint64_t ddr_first;
-       uint64_t ddr_last;
-} dmu_diff_record_t;
-
-typedef struct zinject_record {
-       uint64_t        zi_objset;
-       uint64_t        zi_object;
-       uint64_t        zi_start;
-       uint64_t        zi_end;
-       uint64_t        zi_guid;
-       uint32_t        zi_level;
-       uint32_t        zi_error;
-       uint64_t        zi_type;
-       uint32_t        zi_freq;
-       uint32_t        zi_failfast;
-       char            zi_func[MAXNAMELEN];
-       uint32_t        zi_iotype;
-       int32_t         zi_duration;
-       uint64_t        zi_timer;
-} zinject_record_t;
-
-#define        ZINJECT_NULL            0x1
-#define        ZINJECT_FLUSH_ARC       0x2
-#define        ZINJECT_UNLOAD_SPA      0x4
-
-#define        ZEVENT_NONBLOCK         0x1
-#define        ZEVENT_SIZE             1024
-
-typedef struct zfs_share {
-       uint64_t        z_exportdata;
-       uint64_t        z_sharedata;
-       uint64_t        z_sharetype;    /* 0 = share, 1 = unshare */
-       uint64_t        z_sharemax;  /* max length of share string */
-} zfs_share_t;
-
-/*
- * ZFS file systems may behave the usual, POSIX-compliant way, where
- * name lookups are case-sensitive.  They may also be set up so that
- * all the name lookups are case-insensitive, or so that only some
- * lookups, the ones that set an FIGNORECASE flag, are case-insensitive.
- */
-typedef enum zfs_case {
-       ZFS_CASE_SENSITIVE,
-       ZFS_CASE_INSENSITIVE,
-       ZFS_CASE_MIXED
-} zfs_case_t;
-
-typedef struct zfs_cmd {
-       char            zc_name[MAXPATHLEN];
-       char            zc_value[MAXPATHLEN * 2];
-       char            zc_string[MAXNAMELEN];
-       char            zc_top_ds[MAXPATHLEN];
-       uint64_t        zc_guid;
-       uint64_t        zc_nvlist_conf;         /* really (char *) */
-       uint64_t        zc_nvlist_conf_size;
-       uint64_t        zc_nvlist_src;          /* really (char *) */
-       uint64_t        zc_nvlist_src_size;
-       uint64_t        zc_nvlist_dst;          /* really (char *) */
-       uint64_t        zc_nvlist_dst_size;
-       uint64_t        zc_cookie;
-       uint64_t        zc_objset_type;
-       uint64_t        zc_perm_action;
-       uint64_t        zc_history;             /* really (char *) */
-       uint64_t        zc_history_len;
-       uint64_t        zc_history_offset;
-       uint64_t        zc_obj;
-       uint64_t        zc_iflags;              /* internal to zfs(7fs) */
-       zfs_share_t     zc_share;
-       dmu_objset_stats_t zc_objset_stats;
-       struct drr_begin zc_begin_record;
-       zinject_record_t zc_inject_record;
-       boolean_t       zc_defer_destroy;
-       boolean_t       zc_temphold;
-       uint64_t        zc_action_handle;
-       int             zc_cleanup_fd;
-       uint8_t         zc_pad[4];              /* alignment */
-       uint64_t        zc_sendobj;
-       uint64_t        zc_fromobj;
-       uint64_t        zc_createtxg;
-       zfs_stat_t      zc_stat;
-} zfs_cmd_t;
-
-typedef struct zfs_useracct {
-       char zu_domain[256];
-       uid_t zu_rid;
-       uint32_t zu_pad;
-       uint64_t zu_space;
-} zfs_useracct_t;
-
-#define        ZFSDEV_MAX_MINOR        (1 << 16)
-#define        ZFS_MIN_MINOR   (ZFSDEV_MAX_MINOR + 1)
-
-#define        ZPOOL_EXPORT_AFTER_SPLIT 0x1
-
-#ifdef _KERNEL
-
-typedef struct zfs_creat {
-       nvlist_t        *zct_zplprops;
-       nvlist_t        *zct_props;
-} zfs_creat_t;
-
-extern int zfs_secpolicy_snapshot_perms(const char *name, cred_t *cr);
-extern int zfs_secpolicy_rename_perms(const char *from,
-    const char *to, cred_t *cr);
-extern int zfs_secpolicy_destroy_perms(const char *name, cred_t *cr);
-extern int zfs_unmount_snap(const char *, void *);
-
-enum zfsdev_state_type {
-       ZST_ONEXIT,
-       ZST_ZEVENT,
-       ZST_ALL,
-};
-
-typedef struct zfsdev_state {
-        list_node_t             zs_next;        /* next zfsdev_state_t link */
-       struct file             *zs_file;       /* associated file struct */
-       minor_t                 zs_minor;       /* made up minor number */
-       void                    *zs_onexit;     /* onexit data */
-       void                    *zs_zevent;     /* zevent data */
-} zfsdev_state_t;
-
-extern void *zfsdev_get_state(minor_t minor, enum zfsdev_state_type which);
-extern minor_t zfsdev_getminor(struct file *filp);
-extern minor_t zfsdev_minor_alloc(void);
-
-#endif /* _KERNEL */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZFS_IOCTL_H */
diff --git a/module/zfs/include/sys/zfs_onexit.h b/module/zfs/include/sys/zfs_onexit.h
deleted file mode 100644 (file)
index 4982bd4..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_ZFS_ONEXIT_H
-#define        _SYS_ZFS_ONEXIT_H
-
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef _KERNEL
-
-typedef struct zfs_onexit {
-       kmutex_t        zo_lock;
-       list_t          zo_actions;
-} zfs_onexit_t;
-
-typedef struct zfs_onexit_action_node {
-       list_node_t     za_link;
-       void            (*za_func)(void *);
-       void            *za_data;
-} zfs_onexit_action_node_t;
-
-extern void zfs_onexit_init(zfs_onexit_t **zo);
-extern void zfs_onexit_destroy(zfs_onexit_t *zo);
-
-#endif
-
-extern int zfs_onexit_fd_hold(int fd, minor_t *minorp);
-extern void zfs_onexit_fd_rele(int fd);
-extern int zfs_onexit_add_cb(minor_t minor, void (*func)(void *), void *data,
-    uint64_t *action_handle);
-extern int zfs_onexit_del_cb(minor_t minor, uint64_t action_handle,
-    boolean_t fire);
-extern int zfs_onexit_cb_data(minor_t minor, uint64_t action_handle,
-    void **data);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZFS_ONEXIT_H */
diff --git a/module/zfs/include/sys/zfs_rlock.h b/module/zfs/include/sys/zfs_rlock.h
deleted file mode 100644 (file)
index 722c341..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _SYS_FS_ZFS_RLOCK_H
-#define        _SYS_FS_ZFS_RLOCK_H
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef _KERNEL
-
-#include <sys/zfs_znode.h>
-
-typedef enum {
-       RL_READER,
-       RL_WRITER,
-       RL_APPEND
-} rl_type_t;
-
-typedef struct rl {
-       znode_t *r_zp;          /* znode this lock applies to */
-       avl_node_t r_node;      /* avl node link */
-       uint64_t r_off;         /* file range offset */
-       uint64_t r_len;         /* file range length */
-       uint_t r_cnt;           /* range reference count in tree */
-       rl_type_t r_type;       /* range type */
-       kcondvar_t r_wr_cv;     /* cv for waiting writers */
-       kcondvar_t r_rd_cv;     /* cv for waiting readers */
-       uint8_t r_proxy;        /* acting for original range */
-       uint8_t r_write_wanted; /* writer wants to lock this range */
-       uint8_t r_read_wanted;  /* reader wants to lock this range */
-} rl_t;
-
-/*
- * Lock a range (offset, length) as either shared (READER)
- * or exclusive (WRITER or APPEND). APPEND is a special type that
- * is converted to WRITER that specified to lock from the start of the
- * end of file.  zfs_range_lock() returns the range lock structure.
- */
-rl_t *zfs_range_lock(znode_t *zp, uint64_t off, uint64_t len, rl_type_t type);
-
-/*
- * Unlock range and destroy range lock structure.
- */
-void zfs_range_unlock(rl_t *rl);
-
-/*
- * Reduce range locked as RW_WRITER from whole file to specified range.
- * Asserts the whole file was previously locked.
- */
-void zfs_range_reduce(rl_t *rl, uint64_t off, uint64_t len);
-
-/*
- * AVL comparison function used to compare range locks
- */
-int zfs_range_compare(const void *arg1, const void *arg2);
-
-#endif /* _KERNEL */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_FS_ZFS_RLOCK_H */
diff --git a/module/zfs/include/sys/zfs_sa.h b/module/zfs/include/sys/zfs_sa.h
deleted file mode 100644 (file)
index cd312b2..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef        _SYS_ZFS_SA_H
-#define        _SYS_ZFS_SA_H
-
-#ifdef _KERNEL
-#include <sys/types32.h>
-#include <sys/list.h>
-#include <sys/dmu.h>
-#include <sys/zfs_acl.h>
-#include <sys/zfs_znode.h>
-#include <sys/sa.h>
-#include <sys/zil.h>
-
-
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * This is the list of known attributes
- * to the ZPL.  The values of the actual
- * attributes are not defined by the order
- * the enums.  It is controlled by the attribute
- * registration mechanism.  Two different file system
- * could have different numeric values for the same
- * attributes.  this list is only used for dereferencing
- * into the table that will hold the actual numeric value.
- */
-typedef enum zpl_attr {
-       ZPL_ATIME,
-       ZPL_MTIME,
-       ZPL_CTIME,
-       ZPL_CRTIME,
-       ZPL_GEN,
-       ZPL_MODE,
-       ZPL_SIZE,
-       ZPL_PARENT,
-       ZPL_LINKS,
-       ZPL_XATTR,
-       ZPL_RDEV,
-       ZPL_FLAGS,
-       ZPL_UID,
-       ZPL_GID,
-       ZPL_PAD,
-       ZPL_ZNODE_ACL,
-       ZPL_DACL_COUNT,
-       ZPL_SYMLINK,
-       ZPL_SCANSTAMP,
-       ZPL_DACL_ACES,
-       ZPL_END
-} zpl_attr_t;
-
-#define        ZFS_OLD_ZNODE_PHYS_SIZE 0x108
-#define        ZFS_SA_BASE_ATTR_SIZE   (ZFS_OLD_ZNODE_PHYS_SIZE - \
-    sizeof (zfs_acl_phys_t))
-
-#define        SA_MODE_OFFSET          0
-#define        SA_SIZE_OFFSET          8
-#define        SA_GEN_OFFSET           16
-#define        SA_UID_OFFSET           24
-#define        SA_GID_OFFSET           32
-#define        SA_PARENT_OFFSET        40
-
-extern sa_attr_reg_t zfs_attr_table[ZPL_END + 1];
-extern sa_attr_reg_t zfs_legacy_attr_table[ZPL_END + 1];
-
-/*
- * This is a deprecated data structure that only exists for
- * dealing with file systems create prior to ZPL version 5.
- */
-typedef struct znode_phys {
-       uint64_t zp_atime[2];           /*  0 - last file access time */
-       uint64_t zp_mtime[2];           /* 16 - last file modification time */
-       uint64_t zp_ctime[2];           /* 32 - last file change time */
-       uint64_t zp_crtime[2];          /* 48 - creation time */
-       uint64_t zp_gen;                /* 64 - generation (txg of creation) */
-       uint64_t zp_mode;               /* 72 - file mode bits */
-       uint64_t zp_size;               /* 80 - size of file */
-       uint64_t zp_parent;             /* 88 - directory parent (`..') */
-       uint64_t zp_links;              /* 96 - number of links to file */
-       uint64_t zp_xattr;              /* 104 - DMU object for xattrs */
-       uint64_t zp_rdev;               /* 112 - dev_t for VBLK & VCHR files */
-       uint64_t zp_flags;              /* 120 - persistent flags */
-       uint64_t zp_uid;                /* 128 - file owner */
-       uint64_t zp_gid;                /* 136 - owning group */
-       uint64_t zp_zap;                /* 144 - extra attributes */
-       uint64_t zp_pad[3];             /* 152 - future */
-       zfs_acl_phys_t zp_acl;          /* 176 - 263 ACL */
-       /*
-        * Data may pad out any remaining bytes in the znode buffer, eg:
-        *
-        * |<---------------------- dnode_phys (512) ------------------------>|
-        * |<-- dnode (192) --->|<----------- "bonus" buffer (320) ---------->|
-        *                      |<---- znode (264) ---->|<---- data (56) ---->|
-        *
-        * At present, we use this space for the following:
-        *  - symbolic links
-        *  - 32-byte anti-virus scanstamp (regular files only)
-        */
-} znode_phys_t;
-
-#ifdef _KERNEL
-int zfs_sa_readlink(struct znode *, uio_t *);
-void zfs_sa_symlink(struct znode *, char *link, int len, dmu_tx_t *);
-void zfs_sa_upgrade(struct sa_handle  *, dmu_tx_t *);
-void zfs_sa_get_scanstamp(struct znode *, xvattr_t *);
-void zfs_sa_set_scanstamp(struct znode *, xvattr_t *, dmu_tx_t *);
-void zfs_sa_uprade_pre(struct sa_handle *, void *, dmu_tx_t *);
-void zfs_sa_upgrade_post(struct sa_handle *, void *, dmu_tx_t *);
-void zfs_sa_upgrade_txholds(dmu_tx_t *, struct znode *);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZFS_SA_H */
diff --git a/module/zfs/include/sys/zfs_stat.h b/module/zfs/include/sys/zfs_stat.h
deleted file mode 100644 (file)
index 465aefa..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_FS_ZFS_STAT_H
-#define        _SYS_FS_ZFS_STAT_H
-
-#ifdef _KERNEL
-#include <sys/isa_defs.h>
-#include <sys/types32.h>
-#include <sys/dmu.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * A limited number of zpl level stats are retrievable
- * with an ioctl.  zfs diff is the current consumer.
- */
-typedef struct zfs_stat {
-       uint64_t        zs_gen;
-       uint64_t        zs_mode;
-       uint64_t        zs_links;
-       uint64_t        zs_ctime[2];
-} zfs_stat_t;
-
-extern int zfs_obj_to_stats(objset_t *osp, uint64_t obj, zfs_stat_t *sb,
-    char *buf, int len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_FS_ZFS_STAT_H */
diff --git a/module/zfs/include/sys/zfs_vfsops.h b/module/zfs/include/sys/zfs_vfsops.h
deleted file mode 100644 (file)
index 38c87df..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_FS_ZFS_VFSOPS_H
-#define        _SYS_FS_ZFS_VFSOPS_H
-
-#include <sys/isa_defs.h>
-#include <sys/types32.h>
-#include <sys/list.h>
-#include <sys/vfs.h>
-#include <sys/zil.h>
-#include <sys/sa.h>
-#include <sys/rrwlock.h>
-#include <sys/zfs_ioctl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct zfsvfs zfsvfs_t;
-struct znode;
-
-struct zfsvfs {
-       vfs_t           *z_vfs;         /* generic fs struct */
-       zfsvfs_t        *z_parent;      /* parent fs */
-       objset_t        *z_os;          /* objset reference */
-       uint64_t        z_root;         /* id of root znode */
-       uint64_t        z_unlinkedobj;  /* id of unlinked zapobj */
-       uint64_t        z_max_blksz;    /* maximum block size for files */
-       uint64_t        z_fuid_obj;     /* fuid table object number */
-       uint64_t        z_fuid_size;    /* fuid table size */
-       avl_tree_t      z_fuid_idx;     /* fuid tree keyed by index */
-       avl_tree_t      z_fuid_domain;  /* fuid tree keyed by domain */
-       krwlock_t       z_fuid_lock;    /* fuid lock */
-       boolean_t       z_fuid_loaded;  /* fuid tables are loaded */
-       boolean_t       z_fuid_dirty;   /* need to sync fuid table ? */
-       struct zfs_fuid_info    *z_fuid_replay; /* fuid info for replay */
-       zilog_t         *z_log;         /* intent log pointer */
-       uint_t          z_acl_inherit;  /* acl inheritance behavior */
-       zfs_case_t      z_case;         /* case-sense */
-       boolean_t       z_utf8;         /* utf8-only */
-       int             z_norm;         /* normalization flags */
-       boolean_t       z_atime;        /* enable atimes mount option */
-       boolean_t       z_unmounted;    /* unmounted */
-       rrwlock_t       z_teardown_lock;
-       krwlock_t       z_teardown_inactive_lock;
-       list_t          z_all_znodes;   /* all vnodes in the fs */
-       kmutex_t        z_znodes_lock;  /* lock for z_all_znodes */
-       vnode_t         *z_ctldir;      /* .zfs directory pointer */
-       boolean_t       z_show_ctldir;  /* expose .zfs in the root dir */
-       boolean_t       z_issnap;       /* true if this is a snapshot */
-       boolean_t       z_vscan;        /* virus scan on/off */
-       boolean_t       z_use_fuids;    /* version allows fuids */
-       boolean_t       z_replay;       /* set during ZIL replay */
-       boolean_t       z_use_sa;       /* version allow system attributes */
-       uint64_t        z_version;      /* ZPL version */
-       uint64_t        z_shares_dir;   /* hidden shares dir */
-       kmutex_t        z_lock;
-       uint64_t        z_userquota_obj;
-       uint64_t        z_groupquota_obj;
-       uint64_t        z_replay_eof;   /* New end of file - replay only */
-       sa_attr_type_t  *z_attr_table;  /* SA attr mapping->id */
-#define        ZFS_OBJ_MTX_SZ  64
-       kmutex_t        z_hold_mtx[ZFS_OBJ_MTX_SZ];     /* znode hold locks */
-};
-
-/*
- * Normal filesystems (those not under .zfs/snapshot) have a total
- * file ID size limited to 12 bytes (including the length field) due to
- * NFSv2 protocol's limitation of 32 bytes for a filehandle.  For historical
- * reasons, this same limit is being imposed by the Solaris NFSv3 implementation
- * (although the NFSv3 protocol actually permits a maximum of 64 bytes).  It
- * is not possible to expand beyond 12 bytes without abandoning support
- * of NFSv2.
- *
- * For normal filesystems, we partition up the available space as follows:
- *     2 bytes         fid length (required)
- *     6 bytes         object number (48 bits)
- *     4 bytes         generation number (32 bits)
- *
- * We reserve only 48 bits for the object number, as this is the limit
- * currently defined and imposed by the DMU.
- */
-typedef struct zfid_short {
-       uint16_t        zf_len;
-       uint8_t         zf_object[6];           /* obj[i] = obj >> (8 * i) */
-       uint8_t         zf_gen[4];              /* gen[i] = gen >> (8 * i) */
-} zfid_short_t;
-
-/*
- * Filesystems under .zfs/snapshot have a total file ID size of 22 bytes
- * (including the length field).  This makes files under .zfs/snapshot
- * accessible by NFSv3 and NFSv4, but not NFSv2.
- *
- * For files under .zfs/snapshot, we partition up the available space
- * as follows:
- *     2 bytes         fid length (required)
- *     6 bytes         object number (48 bits)
- *     4 bytes         generation number (32 bits)
- *     6 bytes         objset id (48 bits)
- *     4 bytes         currently just zero (32 bits)
- *
- * We reserve only 48 bits for the object number and objset id, as these are
- * the limits currently defined and imposed by the DMU.
- */
-typedef struct zfid_long {
-       zfid_short_t    z_fid;
-       uint8_t         zf_setid[6];            /* obj[i] = obj >> (8 * i) */
-       uint8_t         zf_setgen[4];           /* gen[i] = gen >> (8 * i) */
-} zfid_long_t;
-
-#define        SHORT_FID_LEN   (sizeof (zfid_short_t) - sizeof (uint16_t))
-#define        LONG_FID_LEN    (sizeof (zfid_long_t) - sizeof (uint16_t))
-
-extern uint_t zfs_fsyncer_key;
-
-extern int zfs_suspend_fs(zfsvfs_t *zfsvfs);
-extern int zfs_resume_fs(zfsvfs_t *zfsvfs, const char *osname);
-extern int zfs_userspace_one(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type,
-    const char *domain, uint64_t rid, uint64_t *valuep);
-extern int zfs_userspace_many(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type,
-    uint64_t *cookiep, void *vbuf, uint64_t *bufsizep);
-extern int zfs_set_userquota(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type,
-    const char *domain, uint64_t rid, uint64_t quota);
-extern boolean_t zfs_owner_overquota(zfsvfs_t *zfsvfs, struct znode *,
-    boolean_t isgroup);
-extern boolean_t zfs_fuid_overquota(zfsvfs_t *zfsvfs, boolean_t isgroup,
-    uint64_t fuid);
-extern int zfs_set_version(zfsvfs_t *zfsvfs, uint64_t newvers);
-extern int zfsvfs_create(const char *name, zfsvfs_t **zfvp);
-extern void zfsvfs_free(zfsvfs_t *zfsvfs);
-extern int zfs_check_global_label(const char *dsname, const char *hexsl);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_FS_ZFS_VFSOPS_H */
diff --git a/module/zfs/include/sys/zfs_znode.h b/module/zfs/include/sys/zfs_znode.h
deleted file mode 100644 (file)
index aa1f449..0000000
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_FS_ZFS_ZNODE_H
-#define        _SYS_FS_ZFS_ZNODE_H
-
-#ifdef _KERNEL
-#include <sys/isa_defs.h>
-#include <sys/types32.h>
-#include <sys/attr.h>
-#include <sys/list.h>
-#include <sys/dmu.h>
-#include <sys/sa.h>
-#include <sys/zfs_vfsops.h>
-#include <sys/rrwlock.h>
-#include <sys/zfs_sa.h>
-#include <sys/zfs_stat.h>
-#endif
-#include <sys/zfs_acl.h>
-#include <sys/zil.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Additional file level attributes, that are stored
- * in the upper half of zp_flags
- */
-#define        ZFS_READONLY            0x0000000100000000ull
-#define        ZFS_HIDDEN              0x0000000200000000ull
-#define        ZFS_SYSTEM              0x0000000400000000ull
-#define        ZFS_ARCHIVE             0x0000000800000000ull
-#define        ZFS_IMMUTABLE           0x0000001000000000ull
-#define        ZFS_NOUNLINK            0x0000002000000000ull
-#define        ZFS_APPENDONLY          0x0000004000000000ull
-#define        ZFS_NODUMP              0x0000008000000000ull
-#define        ZFS_OPAQUE              0x0000010000000000ull
-#define        ZFS_AV_QUARANTINED      0x0000020000000000ull
-#define        ZFS_AV_MODIFIED         0x0000040000000000ull
-#define        ZFS_REPARSE             0x0000080000000000ull
-#define        ZFS_OFFLINE             0x0000100000000000ull
-#define        ZFS_SPARSE              0x0000200000000000ull
-
-#define        ZFS_ATTR_SET(zp, attr, value, pflags, tx) \
-{ \
-       if (value) \
-               pflags |= attr; \
-       else \
-               pflags &= ~attr; \
-       VERIFY(0 == sa_update(zp->z_sa_hdl, SA_ZPL_FLAGS(zp->z_zfsvfs), \
-           &pflags, sizeof (pflags), tx)); \
-}
-
-/*
- * Define special zfs pflags
- */
-#define        ZFS_XATTR               0x1             /* is an extended attribute */
-#define        ZFS_INHERIT_ACE         0x2             /* ace has inheritable ACEs */
-#define        ZFS_ACL_TRIVIAL         0x4             /* files ACL is trivial */
-#define        ZFS_ACL_OBJ_ACE         0x8             /* ACL has CMPLX Object ACE */
-#define        ZFS_ACL_PROTECTED       0x10            /* ACL protected */
-#define        ZFS_ACL_DEFAULTED       0x20            /* ACL should be defaulted */
-#define        ZFS_ACL_AUTO_INHERIT    0x40            /* ACL should be inherited */
-#define        ZFS_BONUS_SCANSTAMP     0x80            /* Scanstamp in bonus area */
-#define        ZFS_NO_EXECS_DENIED     0x100           /* exec was given to everyone */
-
-#define        SA_ZPL_ATIME(z)         z->z_attr_table[ZPL_ATIME]
-#define        SA_ZPL_MTIME(z)         z->z_attr_table[ZPL_MTIME]
-#define        SA_ZPL_CTIME(z)         z->z_attr_table[ZPL_CTIME]
-#define        SA_ZPL_CRTIME(z)        z->z_attr_table[ZPL_CRTIME]
-#define        SA_ZPL_GEN(z)           z->z_attr_table[ZPL_GEN]
-#define        SA_ZPL_DACL_ACES(z)     z->z_attr_table[ZPL_DACL_ACES]
-#define        SA_ZPL_XATTR(z)         z->z_attr_table[ZPL_XATTR]
-#define        SA_ZPL_SYMLINK(z)       z->z_attr_table[ZPL_SYMLINK]
-#define        SA_ZPL_RDEV(z)          z->z_attr_table[ZPL_RDEV]
-#define        SA_ZPL_SCANSTAMP(z)     z->z_attr_table[ZPL_SCANSTAMP]
-#define        SA_ZPL_UID(z)           z->z_attr_table[ZPL_UID]
-#define        SA_ZPL_GID(z)           z->z_attr_table[ZPL_GID]
-#define        SA_ZPL_PARENT(z)        z->z_attr_table[ZPL_PARENT]
-#define        SA_ZPL_LINKS(z)         z->z_attr_table[ZPL_LINKS]
-#define        SA_ZPL_MODE(z)          z->z_attr_table[ZPL_MODE]
-#define        SA_ZPL_DACL_COUNT(z)    z->z_attr_table[ZPL_DACL_COUNT]
-#define        SA_ZPL_FLAGS(z)         z->z_attr_table[ZPL_FLAGS]
-#define        SA_ZPL_SIZE(z)          z->z_attr_table[ZPL_SIZE]
-#define        SA_ZPL_ZNODE_ACL(z)     z->z_attr_table[ZPL_ZNODE_ACL]
-#define        SA_ZPL_PAD(z)           z->z_attr_table[ZPL_PAD]
-
-/*
- * Is ID ephemeral?
- */
-#define        IS_EPHEMERAL(x)         (x > MAXUID)
-
-/*
- * Should we use FUIDs?
- */
-#define        USE_FUIDS(version, os)  (version >= ZPL_VERSION_FUID && \
-    spa_version(dmu_objset_spa(os)) >= SPA_VERSION_FUID)
-#define        USE_SA(version, os) (version >= ZPL_VERSION_SA && \
-    spa_version(dmu_objset_spa(os)) >= SPA_VERSION_SA)
-
-#define        MASTER_NODE_OBJ 1
-
-/*
- * Special attributes for master node.
- * "userquota@" and "groupquota@" are also valid (from
- * zfs_userquota_prop_prefixes[]).
- */
-#define        ZFS_FSID                "FSID"
-#define        ZFS_UNLINKED_SET        "DELETE_QUEUE"
-#define        ZFS_ROOT_OBJ            "ROOT"
-#define        ZPL_VERSION_STR         "VERSION"
-#define        ZFS_FUID_TABLES         "FUID"
-#define        ZFS_SHARES_DIR          "SHARES"
-#define        ZFS_SA_ATTRS            "SA_ATTRS"
-
-#define        ZFS_MAX_BLOCKSIZE       (SPA_MAXBLOCKSIZE)
-
-/* Path component length */
-/*
- * The generic fs code uses MAXNAMELEN to represent
- * what the largest component length is.  Unfortunately,
- * this length includes the terminating NULL.  ZFS needs
- * to tell the users via pathconf() and statvfs() what the
- * true maximum length of a component is, excluding the NULL.
- */
-#define        ZFS_MAXNAMELEN  (MAXNAMELEN - 1)
-
-/*
- * Convert mode bits (zp_mode) to BSD-style DT_* values for storing in
- * the directory entries.  On Linux systems this value is already
- * defined correctly as part of the /usr/include/dirent.h header file.
- */
-#ifndef IFTODT
-#define        IFTODT(mode) (((mode) & S_IFMT) >> 12)
-#endif
-
-/*
- * The directory entry has the type (currently unused on Solaris) in the
- * top 4 bits, and the object number in the low 48 bits.  The "middle"
- * 12 bits are unused.
- */
-#define        ZFS_DIRENT_TYPE(de) BF64_GET(de, 60, 4)
-#define        ZFS_DIRENT_OBJ(de) BF64_GET(de, 0, 48)
-
-/*
- * Directory entry locks control access to directory entries.
- * They are used to protect creates, deletes, and renames.
- * Each directory znode has a mutex and a list of locked names.
- */
-#ifdef _KERNEL
-typedef struct zfs_dirlock {
-       char            *dl_name;       /* directory entry being locked */
-       uint32_t        dl_sharecnt;    /* 0 if exclusive, > 0 if shared */
-       uint8_t         dl_namelock;    /* 1 if z_name_lock is NOT held */
-       uint16_t        dl_namesize;    /* set if dl_name was allocated */
-       kcondvar_t      dl_cv;          /* wait for entry to be unlocked */
-       struct znode    *dl_dzp;        /* directory znode */
-       struct zfs_dirlock *dl_next;    /* next in z_dirlocks list */
-} zfs_dirlock_t;
-
-typedef struct znode {
-       struct zfsvfs   *z_zfsvfs;
-       vnode_t         *z_vnode;
-       uint64_t        z_id;           /* object ID for this znode */
-       kmutex_t        z_lock;         /* znode modification lock */
-       krwlock_t       z_parent_lock;  /* parent lock for directories */
-       krwlock_t       z_name_lock;    /* "master" lock for dirent locks */
-       zfs_dirlock_t   *z_dirlocks;    /* directory entry lock list */
-       kmutex_t        z_range_lock;   /* protects changes to z_range_avl */
-       avl_tree_t      z_range_avl;    /* avl tree of file range locks */
-       uint8_t         z_unlinked;     /* file has been unlinked */
-       uint8_t         z_atime_dirty;  /* atime needs to be synced */
-       uint8_t         z_zn_prefetch;  /* Prefetch znodes? */
-       uint8_t         z_moved;        /* Has this znode been moved? */
-       uint_t          z_blksz;        /* block size in bytes */
-       uint_t          z_seq;          /* modification sequence number */
-       uint64_t        z_mapcnt;       /* number of pages mapped to file */
-       uint64_t        z_gen;          /* generation (cached) */
-       uint64_t        z_size;         /* file size (cached) */
-       uint64_t        z_atime[2];     /* atime (cached) */
-       uint64_t        z_links;        /* file links (cached) */
-       uint64_t        z_pflags;       /* pflags (cached) */
-       uint64_t        z_uid;          /* uid fuid (cached) */
-       uint64_t        z_gid;          /* gid fuid (cached) */
-       mode_t          z_mode;         /* mode (cached) */
-       uint32_t        z_sync_cnt;     /* synchronous open count */
-       kmutex_t        z_acl_lock;     /* acl data lock */
-       zfs_acl_t       *z_acl_cached;  /* cached acl */
-       list_node_t     z_link_node;    /* all znodes in fs link */
-       sa_handle_t     *z_sa_hdl;      /* handle to sa data */
-       boolean_t       z_is_sa;        /* are we native sa? */
-} znode_t;
-
-
-/*
- * Range locking rules
- * --------------------
- * 1. When truncating a file (zfs_create, zfs_setattr, zfs_space) the whole
- *    file range needs to be locked as RL_WRITER. Only then can the pages be
- *    freed etc and zp_size reset. zp_size must be set within range lock.
- * 2. For writes and punching holes (zfs_write & zfs_space) just the range
- *    being written or freed needs to be locked as RL_WRITER.
- *    Multiple writes at the end of the file must coordinate zp_size updates
- *    to ensure data isn't lost. A compare and swap loop is currently used
- *    to ensure the file size is at least the offset last written.
- * 3. For reads (zfs_read, zfs_get_data & zfs_putapage) just the range being
- *    read needs to be locked as RL_READER. A check against zp_size can then
- *    be made for reading beyond end of file.
- */
-
-/*
- * Convert between znode pointers and vnode pointers
- */
-#define        ZTOV(ZP)        ((ZP)->z_vnode)
-#define        VTOZ(VP)        ((znode_t *)(VP)->v_data)
-
-/*
- * ZFS_ENTER() is called on entry to each ZFS vnode and vfs operation.
- * ZFS_EXIT() must be called before exitting the vop.
- * ZFS_VERIFY_ZP() verifies the znode is valid.
- */
-#define        ZFS_ENTER(zfsvfs) \
-       { \
-               rrw_enter(&(zfsvfs)->z_teardown_lock, RW_READER, FTAG); \
-               if ((zfsvfs)->z_unmounted) { \
-                       ZFS_EXIT(zfsvfs); \
-                       return (EIO); \
-               } \
-       }
-
-#define        ZFS_EXIT(zfsvfs) rrw_exit(&(zfsvfs)->z_teardown_lock, FTAG)
-
-#define        ZFS_VERIFY_ZP(zp) \
-       if ((zp)->z_sa_hdl == NULL) { \
-               ZFS_EXIT((zp)->z_zfsvfs); \
-               return (EIO); \
-       } \
-
-/*
- * Macros for dealing with dmu_buf_hold
- */
-#define        ZFS_OBJ_HASH(obj_num)   ((obj_num) & (ZFS_OBJ_MTX_SZ - 1))
-#define        ZFS_OBJ_MUTEX(zfsvfs, obj_num)  \
-       (&(zfsvfs)->z_hold_mtx[ZFS_OBJ_HASH(obj_num)])
-#define        ZFS_OBJ_HOLD_ENTER(zfsvfs, obj_num) \
-       mutex_enter(ZFS_OBJ_MUTEX((zfsvfs), (obj_num)))
-#define        ZFS_OBJ_HOLD_TRYENTER(zfsvfs, obj_num) \
-       mutex_tryenter(ZFS_OBJ_MUTEX((zfsvfs), (obj_num)))
-#define        ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num) \
-       mutex_exit(ZFS_OBJ_MUTEX((zfsvfs), (obj_num)))
-
-/*
- * Macros to encode/decode ZFS stored time values from/to struct timespec
- */
-#define        ZFS_TIME_ENCODE(tp, stmp)               \
-{                                              \
-       (stmp)[0] = (uint64_t)(tp)->tv_sec;     \
-       (stmp)[1] = (uint64_t)(tp)->tv_nsec;    \
-}
-
-#define        ZFS_TIME_DECODE(tp, stmp)               \
-{                                              \
-       (tp)->tv_sec = (time_t)(stmp)[0];               \
-       (tp)->tv_nsec = (long)(stmp)[1];                \
-}
-
-/*
- * Timestamp defines
- */
-#define        ACCESSED                (AT_ATIME)
-#define        STATE_CHANGED           (AT_CTIME)
-#define        CONTENT_MODIFIED        (AT_MTIME | AT_CTIME)
-
-#define        ZFS_ACCESSTIME_STAMP(zfsvfs, zp) \
-       if ((zfsvfs)->z_atime && !((zfsvfs)->z_vfs->vfs_flag & VFS_RDONLY)) \
-               zfs_tstamp_update_setup(zp, ACCESSED, NULL, NULL, B_FALSE);
-
-extern int     zfs_init_fs(zfsvfs_t *, znode_t **);
-extern void    zfs_set_dataprop(objset_t *);
-extern void    zfs_create_fs(objset_t *os, cred_t *cr, nvlist_t *,
-    dmu_tx_t *tx);
-extern void    zfs_tstamp_update_setup(znode_t *, uint_t, uint64_t [2],
-    uint64_t [2], boolean_t);
-extern void    zfs_grow_blocksize(znode_t *, uint64_t, dmu_tx_t *);
-extern int     zfs_freesp(znode_t *, uint64_t, uint64_t, int, boolean_t);
-extern void    zfs_znode_init(void);
-extern void    zfs_znode_fini(void);
-extern int     zfs_zget(zfsvfs_t *, uint64_t, znode_t **);
-extern int     zfs_rezget(znode_t *);
-extern void    zfs_zinactive(znode_t *);
-extern void    zfs_znode_delete(znode_t *, dmu_tx_t *);
-extern void    zfs_znode_free(znode_t *);
-extern void    zfs_remove_op_tables(void);
-extern int     zfs_create_op_tables(void);
-extern int     zfs_sync(vfs_t *vfsp, short flag, cred_t *cr);
-extern dev_t   zfs_cmpldev(uint64_t);
-extern int     zfs_get_zplprop(objset_t *os, zfs_prop_t prop, uint64_t *value);
-extern int     zfs_get_stats(objset_t *os, nvlist_t *nv);
-extern void    zfs_znode_dmu_fini(znode_t *);
-
-extern void zfs_log_create(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
-    znode_t *dzp, znode_t *zp, char *name, vsecattr_t *, zfs_fuid_info_t *,
-    vattr_t *vap);
-extern int zfs_log_create_txtype(zil_create_t, vsecattr_t *vsecp,
-    vattr_t *vap);
-extern void zfs_log_remove(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
-    znode_t *dzp, char *name, uint64_t foid);
-#define        ZFS_NO_OBJECT   0       /* no object id */
-extern void zfs_log_link(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
-    znode_t *dzp, znode_t *zp, char *name);
-extern void zfs_log_symlink(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
-    znode_t *dzp, znode_t *zp, char *name, char *link);
-extern void zfs_log_rename(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
-    znode_t *sdzp, char *sname, znode_t *tdzp, char *dname, znode_t *szp);
-extern void zfs_log_write(zilog_t *zilog, dmu_tx_t *tx, int txtype,
-    znode_t *zp, offset_t off, ssize_t len, int ioflag);
-extern void zfs_log_truncate(zilog_t *zilog, dmu_tx_t *tx, int txtype,
-    znode_t *zp, uint64_t off, uint64_t len);
-extern void zfs_log_setattr(zilog_t *zilog, dmu_tx_t *tx, int txtype,
-    znode_t *zp, vattr_t *vap, uint_t mask_applied, zfs_fuid_info_t *fuidp);
-extern void zfs_log_acl(zilog_t *zilog, dmu_tx_t *tx, znode_t *zp,
-    vsecattr_t *vsecp, zfs_fuid_info_t *fuidp);
-extern void zfs_xvattr_set(znode_t *zp, xvattr_t *xvap, dmu_tx_t *tx);
-extern void zfs_upgrade(zfsvfs_t *zfsvfs, dmu_tx_t *tx);
-extern int zfs_create_share_dir(zfsvfs_t *zfsvfs, dmu_tx_t *tx);
-
-#if defined(HAVE_UIO_RW)
-extern caddr_t zfs_map_page(page_t *, enum seg_rw);
-extern void zfs_unmap_page(page_t *, caddr_t);
-#endif /* HAVE_UIO_RW */
-
-extern zil_get_data_t zfs_get_data;
-extern zil_replay_func_t *zfs_replay_vector[TX_MAX_TYPE];
-extern int zfsfstype;
-
-#endif /* _KERNEL */
-
-extern int zfs_obj_to_path(objset_t *osp, uint64_t obj, char *buf, int len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_FS_ZFS_ZNODE_H */
diff --git a/module/zfs/include/sys/zil.h b/module/zfs/include/sys/zil.h
deleted file mode 100644 (file)
index 45900c9..0000000
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* Portions Copyright 2010 Robert Milkowski */
-
-#ifndef        _SYS_ZIL_H
-#define        _SYS_ZIL_H
-
-#include <sys/types.h>
-#include <sys/spa.h>
-#include <sys/zio.h>
-#include <sys/dmu.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Intent log format:
- *
- * Each objset has its own intent log.  The log header (zil_header_t)
- * for objset N's intent log is kept in the Nth object of the SPA's
- * intent_log objset.  The log header points to a chain of log blocks,
- * each of which contains log records (i.e., transactions) followed by
- * a log block trailer (zil_trailer_t).  The format of a log record
- * depends on the record (or transaction) type, but all records begin
- * with a common structure that defines the type, length, and txg.
- */
-
-/*
- * Intent log header - this on disk structure holds fields to manage
- * the log.  All fields are 64 bit to easily handle cross architectures.
- */
-typedef struct zil_header {
-       uint64_t zh_claim_txg;  /* txg in which log blocks were claimed */
-       uint64_t zh_replay_seq; /* highest replayed sequence number */
-       blkptr_t zh_log;        /* log chain */
-       uint64_t zh_claim_blk_seq; /* highest claimed block sequence number */
-       uint64_t zh_flags;      /* header flags */
-       uint64_t zh_claim_lr_seq; /* highest claimed lr sequence number */
-       uint64_t zh_pad[3];
-} zil_header_t;
-
-/*
- * zh_flags bit settings
- */
-#define        ZIL_REPLAY_NEEDED       0x1     /* replay needed - internal only */
-#define        ZIL_CLAIM_LR_SEQ_VALID  0x2     /* zh_claim_lr_seq field is valid */
-
-/*
- * Log block chaining.
- *
- * Log blocks are chained together. Originally they were chained at the
- * end of the block. For performance reasons the chain was moved to the
- * beginning of the block which allows writes for only the data being used.
- * The older position is supported for backwards compatability.
- *
- * The zio_eck_t contains a zec_cksum which for the intent log is
- * the sequence number of this log block. A seq of 0 is invalid.
- * The zec_cksum is checked by the SPA against the sequence
- * number passed in the blk_cksum field of the blkptr_t
- */
-typedef struct zil_chain {
-       uint64_t zc_pad;
-       blkptr_t zc_next_blk;   /* next block in chain */
-       uint64_t zc_nused;      /* bytes in log block used */
-       zio_eck_t zc_eck;       /* block trailer */
-} zil_chain_t;
-
-#define        ZIL_MIN_BLKSZ   4096ULL
-#define        ZIL_MAX_BLKSZ   SPA_MAXBLOCKSIZE
-
-/*
- * The words of a log block checksum.
- */
-#define        ZIL_ZC_GUID_0   0
-#define        ZIL_ZC_GUID_1   1
-#define        ZIL_ZC_OBJSET   2
-#define        ZIL_ZC_SEQ      3
-
-typedef enum zil_create {
-       Z_FILE,
-       Z_DIR,
-       Z_XATTRDIR,
-} zil_create_t;
-
-/*
- * size of xvattr log section.
- * its composed of lr_attr_t + xvattr bitmap + 2 64 bit timestamps
- * for create time and a single 64 bit integer for all of the attributes,
- * and 4 64 bit integers (32 bytes) for the scanstamp.
- *
- */
-
-#define        ZIL_XVAT_SIZE(mapsize) \
-       sizeof (lr_attr_t) + (sizeof (uint32_t) * (mapsize - 1)) + \
-       (sizeof (uint64_t) * 7)
-
-/*
- * Size of ACL in log.  The ACE data is padded out to properly align
- * on 8 byte boundary.
- */
-
-#define        ZIL_ACE_LENGTH(x)       (roundup(x, sizeof (uint64_t)))
-
-/*
- * Intent log transaction types and record structures
- */
-#define        TX_CREATE               1       /* Create file */
-#define        TX_MKDIR                2       /* Make directory */
-#define        TX_MKXATTR              3       /* Make XATTR directory */
-#define        TX_SYMLINK              4       /* Create symbolic link to a file */
-#define        TX_REMOVE               5       /* Remove file */
-#define        TX_RMDIR                6       /* Remove directory */
-#define        TX_LINK                 7       /* Create hard link to a file */
-#define        TX_RENAME               8       /* Rename a file */
-#define        TX_WRITE                9       /* File write */
-#define        TX_TRUNCATE             10      /* Truncate a file */
-#define        TX_SETATTR              11      /* Set file attributes */
-#define        TX_ACL_V0               12      /* Set old formatted ACL */
-#define        TX_ACL                  13      /* Set ACL */
-#define        TX_CREATE_ACL           14      /* create with ACL */
-#define        TX_CREATE_ATTR          15      /* create + attrs */
-#define        TX_CREATE_ACL_ATTR      16      /* create with ACL + attrs */
-#define        TX_MKDIR_ACL            17      /* mkdir with ACL */
-#define        TX_MKDIR_ATTR           18      /* mkdir with attr */
-#define        TX_MKDIR_ACL_ATTR       19      /* mkdir with ACL + attrs */
-#define        TX_WRITE2               20      /* dmu_sync EALREADY write */
-#define        TX_MAX_TYPE             21      /* Max transaction type */
-
-/*
- * The transactions for mkdir, symlink, remove, rmdir, link, and rename
- * may have the following bit set, indicating the original request
- * specified case-insensitive handling of names.
- */
-#define        TX_CI   ((uint64_t)0x1 << 63) /* case-insensitive behavior requested */
-
-/*
- * Transactions for write, truncate, setattr, acl_v0, and acl can be logged
- * out of order.  For convenience in the code, all such records must have
- * lr_foid at the same offset.
- */
-#define        TX_OOO(txtype)                  \
-       ((txtype) == TX_WRITE ||        \
-       (txtype) == TX_TRUNCATE ||      \
-       (txtype) == TX_SETATTR ||       \
-       (txtype) == TX_ACL_V0 ||        \
-       (txtype) == TX_ACL ||           \
-       (txtype) == TX_WRITE2)
-
-/*
- * Format of log records.
- * The fields are carefully defined to allow them to be aligned
- * and sized the same on sparc & intel architectures.
- * Each log record has a common structure at the beginning.
- *
- * The log record on disk (lrc_seq) holds the sequence number of all log
- * records which is used to ensure we don't replay the same record.
- */
-typedef struct {                       /* common log record header */
-       uint64_t        lrc_txtype;     /* intent log transaction type */
-       uint64_t        lrc_reclen;     /* transaction record length */
-       uint64_t        lrc_txg;        /* dmu transaction group number */
-       uint64_t        lrc_seq;        /* see comment above */
-} lr_t;
-
-/*
- * Common start of all out-of-order record types (TX_OOO() above).
- */
-typedef struct {
-       lr_t            lr_common;      /* common portion of log record */
-       uint64_t        lr_foid;        /* object id */
-} lr_ooo_t;
-
-/*
- * Handle option extended vattr attributes.
- *
- * Whenever new attributes are added the version number
- * will need to be updated as will code in
- * zfs_log.c and zfs_replay.c
- */
-typedef struct {
-       uint32_t        lr_attr_masksize; /* number of elements in array */
-       uint32_t        lr_attr_bitmap; /* First entry of array */
-       /* remainder of array and any additional fields */
-} lr_attr_t;
-
-/*
- * log record for creates without optional ACL.
- * This log record does support optional xvattr_t attributes.
- */
-typedef struct {
-       lr_t            lr_common;      /* common portion of log record */
-       uint64_t        lr_doid;        /* object id of directory */
-       uint64_t        lr_foid;        /* object id of created file object */
-       uint64_t        lr_mode;        /* mode of object */
-       uint64_t        lr_uid;         /* uid of object */
-       uint64_t        lr_gid;         /* gid of object */
-       uint64_t        lr_gen;         /* generation (txg of creation) */
-       uint64_t        lr_crtime[2];   /* creation time */
-       uint64_t        lr_rdev;        /* rdev of object to create */
-       /* name of object to create follows this */
-       /* for symlinks, link content follows name */
-       /* for creates with xvattr data, the name follows the xvattr info */
-} lr_create_t;
-
-/*
- * FUID ACL record will be an array of ACEs from the original ACL.
- * If this array includes ephemeral IDs, the record will also include
- * an array of log-specific FUIDs to replace the ephemeral IDs.
- * Only one copy of each unique domain will be present, so the log-specific
- * FUIDs will use an index into a compressed domain table.  On replay this
- * information will be used to construct real FUIDs (and bypass idmap,
- * since it may not be available).
- */
-
-/*
- * Log record for creates with optional ACL
- * This log record is also used for recording any FUID
- * information needed for replaying the create.  If the
- * file doesn't have any actual ACEs then the lr_aclcnt
- * would be zero.
- */
-typedef struct {
-       lr_create_t     lr_create;      /* common create portion */
-       uint64_t        lr_aclcnt;      /* number of ACEs in ACL */
-       uint64_t        lr_domcnt;      /* number of unique domains */
-       uint64_t        lr_fuidcnt;     /* number of real fuids */
-       uint64_t        lr_acl_bytes;   /* number of bytes in ACL */
-       uint64_t        lr_acl_flags;   /* ACL flags */
-       /* lr_acl_bytes number of variable sized ace's follows */
-       /* if create is also setting xvattr's, then acl data follows xvattr */
-       /* if ACE FUIDs are needed then they will follow the xvattr_t */
-       /* Following the FUIDs will be the domain table information. */
-       /* The FUIDs for the owner and group will be in the lr_create */
-       /* portion of the record. */
-       /* name follows ACL data */
-} lr_acl_create_t;
-
-typedef struct {
-       lr_t            lr_common;      /* common portion of log record */
-       uint64_t        lr_doid;        /* obj id of directory */
-       /* name of object to remove follows this */
-} lr_remove_t;
-
-typedef struct {
-       lr_t            lr_common;      /* common portion of log record */
-       uint64_t        lr_doid;        /* obj id of directory */
-       uint64_t        lr_link_obj;    /* obj id of link */
-       /* name of object to link follows this */
-} lr_link_t;
-
-typedef struct {
-       lr_t            lr_common;      /* common portion of log record */
-       uint64_t        lr_sdoid;       /* obj id of source directory */
-       uint64_t        lr_tdoid;       /* obj id of target directory */
-       /* 2 strings: names of source and destination follow this */
-} lr_rename_t;
-
-typedef struct {
-       lr_t            lr_common;      /* common portion of log record */
-       uint64_t        lr_foid;        /* file object to write */
-       uint64_t        lr_offset;      /* offset to write to */
-       uint64_t        lr_length;      /* user data length to write */
-       uint64_t        lr_blkoff;      /* no longer used */
-       blkptr_t        lr_blkptr;      /* spa block pointer for replay */
-       /* write data will follow for small writes */
-} lr_write_t;
-
-typedef struct {
-       lr_t            lr_common;      /* common portion of log record */
-       uint64_t        lr_foid;        /* object id of file to truncate */
-       uint64_t        lr_offset;      /* offset to truncate from */
-       uint64_t        lr_length;      /* length to truncate */
-} lr_truncate_t;
-
-typedef struct {
-       lr_t            lr_common;      /* common portion of log record */
-       uint64_t        lr_foid;        /* file object to change attributes */
-       uint64_t        lr_mask;        /* mask of attributes to set */
-       uint64_t        lr_mode;        /* mode to set */
-       uint64_t        lr_uid;         /* uid to set */
-       uint64_t        lr_gid;         /* gid to set */
-       uint64_t        lr_size;        /* size to set */
-       uint64_t        lr_atime[2];    /* access time */
-       uint64_t        lr_mtime[2];    /* modification time */
-       /* optional attribute lr_attr_t may be here */
-} lr_setattr_t;
-
-typedef struct {
-       lr_t            lr_common;      /* common portion of log record */
-       uint64_t        lr_foid;        /* obj id of file */
-       uint64_t        lr_aclcnt;      /* number of acl entries */
-       /* lr_aclcnt number of ace_t entries follow this */
-} lr_acl_v0_t;
-
-typedef struct {
-       lr_t            lr_common;      /* common portion of log record */
-       uint64_t        lr_foid;        /* obj id of file */
-       uint64_t        lr_aclcnt;      /* number of ACEs in ACL */
-       uint64_t        lr_domcnt;      /* number of unique domains */
-       uint64_t        lr_fuidcnt;     /* number of real fuids */
-       uint64_t        lr_acl_bytes;   /* number of bytes in ACL */
-       uint64_t        lr_acl_flags;   /* ACL flags */
-       /* lr_acl_bytes number of variable sized ace's follows */
-} lr_acl_t;
-
-/*
- * ZIL structure definitions, interface function prototype and globals.
- */
-
-/*
- * Writes are handled in three different ways:
- *
- * WR_INDIRECT:
- *    In this mode, if we need to commit the write later, then the block
- *    is immediately written into the file system (using dmu_sync),
- *    and a pointer to the block is put into the log record.
- *    When the txg commits the block is linked in.
- *    This saves additionally writing the data into the log record.
- *    There are a few requirements for this to occur:
- *     - write is greater than zfs/zvol_immediate_write_sz
- *     - not using slogs (as slogs are assumed to always be faster
- *       than writing into the main pool)
- *     - the write occupies only one block
- * WR_COPIED:
- *    If we know we'll immediately be committing the
- *    transaction (FSYNC or FDSYNC), the we allocate a larger
- *    log record here for the data and copy the data in.
- * WR_NEED_COPY:
- *    Otherwise we don't allocate a buffer, and *if* we need to
- *    flush the write later then a buffer is allocated and
- *    we retrieve the data using the dmu.
- */
-typedef enum {
-       WR_INDIRECT,    /* indirect - a large write (dmu_sync() data */
-                       /* and put blkptr in log, rather than actual data) */
-       WR_COPIED,      /* immediate - data is copied into lr_write_t */
-       WR_NEED_COPY,   /* immediate - data needs to be copied if pushed */
-       WR_NUM_STATES   /* number of states */
-} itx_wr_state_t;
-
-typedef struct itx {
-       list_node_t     itx_node;       /* linkage on zl_itx_list */
-       void            *itx_private;   /* type-specific opaque data */
-       itx_wr_state_t  itx_wr_state;   /* write state */
-       uint8_t         itx_sync;       /* synchronous transaction */
-       uint64_t        itx_sod;        /* record size on disk */
-       uint64_t        itx_oid;        /* object id */
-       lr_t            itx_lr;         /* common part of log record */
-       /* followed by type-specific part of lr_xx_t and its immediate data */
-} itx_t;
-
-typedef int zil_parse_blk_func_t(zilog_t *zilog, blkptr_t *bp, void *arg,
-    uint64_t txg);
-typedef int zil_parse_lr_func_t(zilog_t *zilog, lr_t *lr, void *arg,
-    uint64_t txg);
-typedef int zil_replay_func_t(void *, char *, boolean_t);
-typedef int zil_get_data_t(void *arg, lr_write_t *lr, char *dbuf, zio_t *zio);
-
-extern int zil_parse(zilog_t *zilog, zil_parse_blk_func_t *parse_blk_func,
-    zil_parse_lr_func_t *parse_lr_func, void *arg, uint64_t txg);
-
-extern void    zil_init(void);
-extern void    zil_fini(void);
-
-extern zilog_t *zil_alloc(objset_t *os, zil_header_t *zh_phys);
-extern void    zil_free(zilog_t *zilog);
-
-extern zilog_t *zil_open(objset_t *os, zil_get_data_t *get_data);
-extern void    zil_close(zilog_t *zilog);
-
-extern void    zil_replay(objset_t *os, void *arg,
-    zil_replay_func_t *replay_func[TX_MAX_TYPE]);
-extern boolean_t zil_replaying(zilog_t *zilog, dmu_tx_t *tx);
-extern void    zil_destroy(zilog_t *zilog, boolean_t keep_first);
-extern void    zil_rollback_destroy(zilog_t *zilog, dmu_tx_t *tx);
-
-extern itx_t   *zil_itx_create(uint64_t txtype, size_t lrsize);
-extern void    zil_itx_destroy(itx_t *itx);
-extern void    zil_itx_assign(zilog_t *zilog, itx_t *itx, dmu_tx_t *tx);
-
-extern void    zil_commit(zilog_t *zilog, uint64_t oid);
-
-extern int     zil_vdev_offline(const char *osname, void *txarg);
-extern int     zil_claim(const char *osname, void *txarg);
-extern int     zil_check_log_chain(const char *osname, void *txarg);
-extern void    zil_sync(zilog_t *zilog, dmu_tx_t *tx);
-extern void    zil_clean(zilog_t *zilog, uint64_t synced_txg);
-
-extern int     zil_suspend(zilog_t *zilog);
-extern void    zil_resume(zilog_t *zilog);
-
-extern void    zil_add_block(zilog_t *zilog, const blkptr_t *bp);
-extern int     zil_bp_tree_add(zilog_t *zilog, const blkptr_t *bp);
-
-extern void    zil_set_sync(zilog_t *zilog, uint64_t syncval);
-
-extern void    zil_set_logbias(zilog_t *zilog, uint64_t slogval);
-
-extern int zil_replay_disable;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZIL_H */
diff --git a/module/zfs/include/sys/zil_impl.h b/module/zfs/include/sys/zil_impl.h
deleted file mode 100644 (file)
index 1d4c0cc..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-/* Portions Copyright 2010 Robert Milkowski */
-
-#ifndef        _SYS_ZIL_IMPL_H
-#define        _SYS_ZIL_IMPL_H
-
-#include <sys/zil.h>
-#include <sys/dmu_objset.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Log write buffer.
- */
-typedef struct lwb {
-       zilog_t         *lwb_zilog;     /* back pointer to log struct */
-       blkptr_t        lwb_blk;        /* on disk address of this log blk */
-       int             lwb_nused;      /* # used bytes in buffer */
-       int             lwb_sz;         /* size of block and buffer */
-       char            *lwb_buf;       /* log write buffer */
-       zio_t           *lwb_zio;       /* zio for this buffer */
-       dmu_tx_t        *lwb_tx;        /* tx for log block allocation */
-       uint64_t        lwb_max_txg;    /* highest txg in this lwb */
-       list_node_t     lwb_node;       /* zilog->zl_lwb_list linkage */
-} lwb_t;
-
-/*
- * Intent log transaction lists
- */
-typedef struct itxs {
-       list_t          i_sync_list;    /* list of synchronous itxs */
-       avl_tree_t      i_async_tree;   /* tree of foids for async itxs */
-} itxs_t;
-
-typedef struct itxg {
-       kmutex_t        itxg_lock;      /* lock for this structure */
-       uint64_t        itxg_txg;       /* txg for this chain */
-       uint64_t        itxg_sod;       /* total size on disk for this txg */
-       itxs_t          *itxg_itxs;     /* sync and async itxs */
-} itxg_t;
-
-/* for async nodes we build up an AVL tree of lists of async itxs per file */
-typedef struct itx_async_node {
-       uint64_t        ia_foid;        /* file object id */
-       list_t          ia_list;        /* list of async itxs for this foid */
-       avl_node_t      ia_node;        /* AVL tree linkage */
-} itx_async_node_t;
-
-/*
- * Vdev flushing: during a zil_commit(), we build up an AVL tree of the vdevs
- * we've touched so we know which ones need a write cache flush at the end.
- */
-typedef struct zil_vdev_node {
-       uint64_t        zv_vdev;        /* vdev to be flushed */
-       avl_node_t      zv_node;        /* AVL tree linkage */
-} zil_vdev_node_t;
-
-#define        ZIL_PREV_BLKS 16
-
-/*
- * Stable storage intent log management structure.  One per dataset.
- */
-struct zilog {
-       kmutex_t        zl_lock;        /* protects most zilog_t fields */
-       struct dsl_pool *zl_dmu_pool;   /* DSL pool */
-       spa_t           *zl_spa;        /* handle for read/write log */
-       const zil_header_t *zl_header;  /* log header buffer */
-       objset_t        *zl_os;         /* object set we're logging */
-       zil_get_data_t  *zl_get_data;   /* callback to get object content */
-       zio_t           *zl_root_zio;   /* log writer root zio */
-       uint64_t        zl_lr_seq;      /* on-disk log record sequence number */
-       uint64_t        zl_commit_lr_seq; /* last committed on-disk lr seq */
-       uint64_t        zl_destroy_txg; /* txg of last zil_destroy() */
-       uint64_t        zl_replayed_seq[TXG_SIZE]; /* last replayed rec seq */
-       uint64_t        zl_replaying_seq; /* current replay seq number */
-       uint32_t        zl_suspend;     /* log suspend count */
-       kcondvar_t      zl_cv_writer;   /* log writer thread completion */
-       kcondvar_t      zl_cv_suspend;  /* log suspend completion */
-       uint8_t         zl_suspending;  /* log is currently suspending */
-       uint8_t         zl_keep_first;  /* keep first log block in destroy */
-       uint8_t         zl_replay;      /* replaying records while set */
-       uint8_t         zl_stop_sync;   /* for debugging */
-       uint8_t         zl_writer;      /* boolean: write setup in progress */
-       uint8_t         zl_logbias;     /* latency or throughput */
-       uint8_t         zl_sync;        /* synchronous or asynchronous */
-       int             zl_parse_error; /* last zil_parse() error */
-       uint64_t        zl_parse_blk_seq; /* highest blk seq on last parse */
-       uint64_t        zl_parse_lr_seq; /* highest lr seq on last parse */
-       uint64_t        zl_parse_blk_count; /* number of blocks parsed */
-       uint64_t        zl_parse_lr_count; /* number of log records parsed */
-       uint64_t        zl_next_batch;  /* next batch number */
-       uint64_t        zl_com_batch;   /* committed batch number */
-       kcondvar_t      zl_cv_batch[2]; /* batch condition variables */
-       itxg_t          zl_itxg[TXG_SIZE]; /* intent log txg chains */
-       list_t          zl_itx_commit_list; /* itx list to be committed */
-       uint64_t        zl_itx_list_sz; /* total size of records on list */
-       uint64_t        zl_cur_used;    /* current commit log size used */
-       list_t          zl_lwb_list;    /* in-flight log write list */
-       kmutex_t        zl_vdev_lock;   /* protects zl_vdev_tree */
-       avl_tree_t      zl_vdev_tree;   /* vdevs to flush in zil_commit() */
-       taskq_t         *zl_clean_taskq; /* runs lwb and itx clean tasks */
-       avl_tree_t      zl_bp_tree;     /* track bps during log parse */
-       clock_t         zl_replay_time; /* lbolt of when replay started */
-       uint64_t        zl_replay_blks; /* number of log blocks replayed */
-       zil_header_t    zl_old_header;  /* debugging aid */
-       uint_t          zl_prev_blks[ZIL_PREV_BLKS]; /* size - sector rounded */
-       uint_t          zl_prev_rotor;  /* rotor for zl_prev[] */
-};
-
-typedef struct zil_bp_node {
-       dva_t           zn_dva;
-       avl_node_t      zn_node;
-} zil_bp_node_t;
-
-#define        ZIL_MAX_LOG_DATA (SPA_MAXBLOCKSIZE - sizeof (zil_chain_t) - \
-    sizeof (lr_write_t))
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZIL_IMPL_H */
diff --git a/module/zfs/include/sys/zio.h b/module/zfs/include/sys/zio.h
deleted file mode 100644 (file)
index 97d8ec7..0000000
+++ /dev/null
@@ -1,559 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _ZIO_H
-#define        _ZIO_H
-
-#include <sys/zfs_context.h>
-#include <sys/spa.h>
-#include <sys/txg.h>
-#include <sys/avl.h>
-#include <sys/fs/zfs.h>
-#include <sys/zio_impl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Embedded checksum
- */
-#define        ZEC_MAGIC       0x210da7ab10c7a11ULL
-
-typedef struct zio_eck {
-       uint64_t        zec_magic;      /* for validation, endianness   */
-       zio_cksum_t     zec_cksum;      /* 256-bit checksum             */
-} zio_eck_t;
-
-/*
- * Gang block headers are self-checksumming and contain an array
- * of block pointers.
- */
-#define        SPA_GANGBLOCKSIZE       SPA_MINBLOCKSIZE
-#define        SPA_GBH_NBLKPTRS        ((SPA_GANGBLOCKSIZE - \
-       sizeof (zio_eck_t)) / sizeof (blkptr_t))
-#define        SPA_GBH_FILLER          ((SPA_GANGBLOCKSIZE - \
-       sizeof (zio_eck_t) - \
-       (SPA_GBH_NBLKPTRS * sizeof (blkptr_t))) /\
-       sizeof (uint64_t))
-
-typedef struct zio_gbh {
-       blkptr_t                zg_blkptr[SPA_GBH_NBLKPTRS];
-       uint64_t                zg_filler[SPA_GBH_FILLER];
-       zio_eck_t               zg_tail;
-} zio_gbh_phys_t;
-
-enum zio_checksum {
-       ZIO_CHECKSUM_INHERIT = 0,
-       ZIO_CHECKSUM_ON,
-       ZIO_CHECKSUM_OFF,
-       ZIO_CHECKSUM_LABEL,
-       ZIO_CHECKSUM_GANG_HEADER,
-       ZIO_CHECKSUM_ZILOG,
-       ZIO_CHECKSUM_FLETCHER_2,
-       ZIO_CHECKSUM_FLETCHER_4,
-       ZIO_CHECKSUM_SHA256,
-       ZIO_CHECKSUM_ZILOG2,
-       ZIO_CHECKSUM_FUNCTIONS
-};
-
-#define        ZIO_CHECKSUM_ON_VALUE   ZIO_CHECKSUM_FLETCHER_4
-#define        ZIO_CHECKSUM_DEFAULT    ZIO_CHECKSUM_ON
-
-#define        ZIO_CHECKSUM_MASK       0xffULL
-#define        ZIO_CHECKSUM_VERIFY     (1 << 8)
-
-#define        ZIO_DEDUPCHECKSUM       ZIO_CHECKSUM_SHA256
-#define        ZIO_DEDUPDITTO_MIN      100
-
-enum zio_compress {
-       ZIO_COMPRESS_INHERIT = 0,
-       ZIO_COMPRESS_ON,
-       ZIO_COMPRESS_OFF,
-       ZIO_COMPRESS_LZJB,
-       ZIO_COMPRESS_EMPTY,
-       ZIO_COMPRESS_GZIP_1,
-       ZIO_COMPRESS_GZIP_2,
-       ZIO_COMPRESS_GZIP_3,
-       ZIO_COMPRESS_GZIP_4,
-       ZIO_COMPRESS_GZIP_5,
-       ZIO_COMPRESS_GZIP_6,
-       ZIO_COMPRESS_GZIP_7,
-       ZIO_COMPRESS_GZIP_8,
-       ZIO_COMPRESS_GZIP_9,
-       ZIO_COMPRESS_ZLE,
-       ZIO_COMPRESS_FUNCTIONS
-};
-
-#define        ZIO_COMPRESS_ON_VALUE   ZIO_COMPRESS_LZJB
-#define        ZIO_COMPRESS_DEFAULT    ZIO_COMPRESS_OFF
-
-#define        BOOTFS_COMPRESS_VALID(compress)                 \
-       ((compress) == ZIO_COMPRESS_LZJB ||             \
-       ((compress) == ZIO_COMPRESS_ON &&               \
-       ZIO_COMPRESS_ON_VALUE == ZIO_COMPRESS_LZJB) ||  \
-       (compress) == ZIO_COMPRESS_OFF)
-
-#define        ZIO_FAILURE_MODE_WAIT           0
-#define        ZIO_FAILURE_MODE_CONTINUE       1
-#define        ZIO_FAILURE_MODE_PANIC          2
-
-#define        ZIO_PRIORITY_NOW                (zio_priority_table[0])
-#define        ZIO_PRIORITY_SYNC_READ          (zio_priority_table[1])
-#define        ZIO_PRIORITY_SYNC_WRITE         (zio_priority_table[2])
-#define        ZIO_PRIORITY_LOG_WRITE          (zio_priority_table[3])
-#define        ZIO_PRIORITY_CACHE_FILL         (zio_priority_table[4])
-#define        ZIO_PRIORITY_AGG                (zio_priority_table[5])
-#define        ZIO_PRIORITY_FREE               (zio_priority_table[6])
-#define        ZIO_PRIORITY_ASYNC_WRITE        (zio_priority_table[7])
-#define        ZIO_PRIORITY_ASYNC_READ         (zio_priority_table[8])
-#define        ZIO_PRIORITY_RESILVER           (zio_priority_table[9])
-#define        ZIO_PRIORITY_SCRUB              (zio_priority_table[10])
-#define        ZIO_PRIORITY_DDT_PREFETCH       (zio_priority_table[11])
-#define        ZIO_PRIORITY_TABLE_SIZE         12
-
-#define        ZIO_PIPELINE_CONTINUE           0x100
-#define        ZIO_PIPELINE_STOP               0x101
-
-enum zio_flag {
-       /*
-        * Flags inherited by gang, ddt, and vdev children,
-        * and that must be equal for two zios to aggregate
-        */
-       ZIO_FLAG_DONT_AGGREGATE = 1 << 0,
-       ZIO_FLAG_IO_REPAIR      = 1 << 1,
-       ZIO_FLAG_SELF_HEAL      = 1 << 2,
-       ZIO_FLAG_RESILVER       = 1 << 3,
-       ZIO_FLAG_SCRUB          = 1 << 4,
-       ZIO_FLAG_SCAN_THREAD    = 1 << 5,
-
-#define        ZIO_FLAG_AGG_INHERIT    (ZIO_FLAG_CANFAIL - 1)
-
-       /*
-        * Flags inherited by ddt, gang, and vdev children.
-        */
-       ZIO_FLAG_CANFAIL        = 1 << 6,       /* must be first for INHERIT */
-       ZIO_FLAG_SPECULATIVE    = 1 << 7,
-       ZIO_FLAG_CONFIG_WRITER  = 1 << 8,
-       ZIO_FLAG_DONT_RETRY     = 1 << 9,
-       ZIO_FLAG_DONT_CACHE     = 1 << 10,
-       ZIO_FLAG_NODATA         = 1 << 11,
-       ZIO_FLAG_INDUCE_DAMAGE  = 1 << 12,
-
-#define        ZIO_FLAG_DDT_INHERIT    (ZIO_FLAG_IO_RETRY - 1)
-#define        ZIO_FLAG_GANG_INHERIT   (ZIO_FLAG_IO_RETRY - 1)
-
-       /*
-        * Flags inherited by vdev children.
-        */
-       ZIO_FLAG_IO_RETRY       = 1 << 13,      /* must be first for INHERIT */
-       ZIO_FLAG_PROBE          = 1 << 14,
-       ZIO_FLAG_TRYHARD        = 1 << 15,
-       ZIO_FLAG_OPTIONAL       = 1 << 16,
-
-#define        ZIO_FLAG_VDEV_INHERIT   (ZIO_FLAG_DONT_QUEUE - 1)
-
-       /*
-        * Flags not inherited by any children.
-        */
-       ZIO_FLAG_DONT_QUEUE     = 1 << 17,      /* must be first for INHERIT */
-       ZIO_FLAG_DONT_PROPAGATE = 1 << 18,
-       ZIO_FLAG_IO_BYPASS      = 1 << 19,
-       ZIO_FLAG_IO_REWRITE     = 1 << 20,
-       ZIO_FLAG_RAW            = 1 << 21,
-       ZIO_FLAG_GANG_CHILD     = 1 << 22,
-       ZIO_FLAG_DDT_CHILD      = 1 << 23,
-       ZIO_FLAG_GODFATHER      = 1 << 24
-};
-
-#define        ZIO_FLAG_MUSTSUCCEED            0
-
-#define        ZIO_DDT_CHILD_FLAGS(zio)                                \
-       (((zio)->io_flags & ZIO_FLAG_DDT_INHERIT) |             \
-       ZIO_FLAG_DDT_CHILD | ZIO_FLAG_CANFAIL)
-
-#define        ZIO_GANG_CHILD_FLAGS(zio)                               \
-       (((zio)->io_flags & ZIO_FLAG_GANG_INHERIT) |            \
-       ZIO_FLAG_GANG_CHILD | ZIO_FLAG_CANFAIL)
-
-#define        ZIO_VDEV_CHILD_FLAGS(zio)                               \
-       (((zio)->io_flags & ZIO_FLAG_VDEV_INHERIT) |            \
-       ZIO_FLAG_CANFAIL)
-
-enum zio_child {
-       ZIO_CHILD_VDEV = 0,
-       ZIO_CHILD_GANG,
-       ZIO_CHILD_DDT,
-       ZIO_CHILD_LOGICAL,
-       ZIO_CHILD_TYPES
-};
-
-enum zio_wait_type {
-       ZIO_WAIT_READY = 0,
-       ZIO_WAIT_DONE,
-       ZIO_WAIT_TYPES
-};
-
-/*
- * We'll take the unused errnos, 'EBADE' and 'EBADR' (from the Convergent
- * graveyard) to indicate checksum errors and fragmentation.
- */
-#define        ECKSUM  EBADE
-#define        EFRAGS  EBADR
-
-typedef void zio_done_func_t(zio_t *zio);
-
-extern uint8_t zio_priority_table[ZIO_PRIORITY_TABLE_SIZE];
-extern char *zio_type_name[ZIO_TYPES];
-
-/*
- * A bookmark is a four-tuple <objset, object, level, blkid> that uniquely
- * identifies any block in the pool.  By convention, the meta-objset (MOS)
- * is objset 0, and the meta-dnode is object 0.  This covers all blocks
- * except root blocks and ZIL blocks, which are defined as follows:
- *
- * Root blocks (objset_phys_t) are object 0, level -1:  <objset, 0, -1, 0>.
- * ZIL blocks are bookmarked <objset, 0, -2, blkid == ZIL sequence number>.
- * dmu_sync()ed ZIL data blocks are bookmarked <objset, object, -2, blkid>.
- *
- * Note: this structure is called a bookmark because its original purpose
- * was to remember where to resume a pool-wide traverse.
- *
- * Note: this structure is passed between userland and the kernel.
- * Therefore it must not change size or alignment between 32/64 bit
- * compilation options.
- */
-typedef struct zbookmark {
-       uint64_t        zb_objset;
-       uint64_t        zb_object;
-       int64_t         zb_level;
-       uint64_t        zb_blkid;
-} zbookmark_t;
-
-#define        SET_BOOKMARK(zb, objset, object, level, blkid)  \
-{                                                       \
-       (zb)->zb_objset = objset;                       \
-       (zb)->zb_object = object;                       \
-       (zb)->zb_level = level;                         \
-       (zb)->zb_blkid = blkid;                         \
-}
-
-#define        ZB_DESTROYED_OBJSET     (-1ULL)
-
-#define        ZB_ROOT_OBJECT          (0ULL)
-#define        ZB_ROOT_LEVEL           (-1LL)
-#define        ZB_ROOT_BLKID           (0ULL)
-
-#define        ZB_ZIL_OBJECT           (0ULL)
-#define        ZB_ZIL_LEVEL            (-2LL)
-
-typedef struct zio_prop {
-       enum zio_checksum       zp_checksum;
-       enum zio_compress       zp_compress;
-       dmu_object_type_t       zp_type;
-       uint8_t                 zp_level;
-       uint8_t                 zp_copies;
-       uint8_t                 zp_dedup;
-       uint8_t                 zp_dedup_verify;
-} zio_prop_t;
-
-typedef struct zio_cksum_report zio_cksum_report_t;
-
-typedef void zio_cksum_finish_f(zio_cksum_report_t *rep,
-    const void *good_data);
-typedef void zio_cksum_free_f(void *cbdata, size_t size);
-
-struct zio_bad_cksum;                          /* defined in zio_checksum.h */
-
-struct zio_cksum_report {
-       struct zio_cksum_report *zcr_next;
-       nvlist_t                *zcr_ereport;
-       nvlist_t                *zcr_detector;
-       void                    *zcr_cbdata;
-       size_t                  zcr_cbinfo;     /* passed to zcr_free() */
-       uint64_t                zcr_align;
-       uint64_t                zcr_length;
-       zio_cksum_finish_f      *zcr_finish;
-       zio_cksum_free_f        *zcr_free;
-
-       /* internal use only */
-       struct zio_bad_cksum    *zcr_ckinfo;    /* information from failure */
-};
-
-typedef void zio_vsd_cksum_report_f(zio_t *zio, zio_cksum_report_t *zcr,
-    void *arg);
-
-zio_vsd_cksum_report_f zio_vsd_default_cksum_report;
-
-typedef struct zio_vsd_ops {
-       zio_done_func_t         *vsd_free;
-       zio_vsd_cksum_report_f  *vsd_cksum_report;
-} zio_vsd_ops_t;
-
-typedef struct zio_gang_node {
-       zio_gbh_phys_t          *gn_gbh;
-       struct zio_gang_node    *gn_child[SPA_GBH_NBLKPTRS];
-} zio_gang_node_t;
-
-typedef zio_t *zio_gang_issue_func_t(zio_t *zio, blkptr_t *bp,
-    zio_gang_node_t *gn, void *data);
-
-typedef void zio_transform_func_t(zio_t *zio, void *data, uint64_t size);
-
-typedef struct zio_transform {
-       void                    *zt_orig_data;
-       uint64_t                zt_orig_size;
-       uint64_t                zt_bufsize;
-       zio_transform_func_t    *zt_transform;
-       struct zio_transform    *zt_next;
-} zio_transform_t;
-
-typedef int zio_pipe_stage_t(zio_t *zio);
-
-/*
- * The io_reexecute flags are distinct from io_flags because the child must
- * be able to propagate them to the parent.  The normal io_flags are local
- * to the zio, not protected by any lock, and not modifiable by children;
- * the reexecute flags are protected by io_lock, modifiable by children,
- * and always propagated -- even when ZIO_FLAG_DONT_PROPAGATE is set.
- */
-#define        ZIO_REEXECUTE_NOW       0x01
-#define        ZIO_REEXECUTE_SUSPEND   0x02
-
-typedef struct zio_link {
-       zio_t           *zl_parent;
-       zio_t           *zl_child;
-       list_node_t     zl_parent_node;
-       list_node_t     zl_child_node;
-} zio_link_t;
-
-struct zio {
-       /* Core information about this I/O */
-       zbookmark_t     io_bookmark;
-       zio_prop_t      io_prop;
-       zio_type_t      io_type;
-       enum zio_child  io_child_type;
-       int             io_cmd;
-       uint8_t         io_priority;
-       uint8_t         io_reexecute;
-       uint8_t         io_state[ZIO_WAIT_TYPES];
-       uint64_t        io_txg;
-       spa_t           *io_spa;
-       blkptr_t        *io_bp;
-       blkptr_t        *io_bp_override;
-       blkptr_t        io_bp_copy;
-       list_t          io_parent_list;
-       list_t          io_child_list;
-       zio_link_t      *io_walk_link;
-       zio_t           *io_logical;
-       zio_transform_t *io_transform_stack;
-
-       /* Callback info */
-       zio_done_func_t *io_ready;
-       zio_done_func_t *io_done;
-       void            *io_private;
-       int64_t         io_prev_space_delta;    /* DMU private */
-       blkptr_t        io_bp_orig;
-
-       /* Data represented by this I/O */
-       void            *io_data;
-       void            *io_orig_data;
-       uint64_t        io_size;
-       uint64_t        io_orig_size;
-
-       /* Stuff for the vdev stack */
-       vdev_t          *io_vd;
-       void            *io_vsd;
-       const zio_vsd_ops_t *io_vsd_ops;
-
-       uint64_t        io_offset;
-       uint64_t        io_deadline;
-       avl_node_t      io_offset_node;
-       avl_node_t      io_deadline_node;
-       avl_tree_t      *io_vdev_tree;
-
-       /* Internal pipeline state */
-       enum zio_flag   io_flags;
-       enum zio_stage  io_stage;
-       enum zio_stage  io_pipeline;
-       enum zio_flag   io_orig_flags;
-       enum zio_stage  io_orig_stage;
-       enum zio_stage  io_orig_pipeline;
-       int             io_error;
-       int             io_child_error[ZIO_CHILD_TYPES];
-       uint64_t        io_children[ZIO_CHILD_TYPES][ZIO_WAIT_TYPES];
-       uint64_t        io_child_count;
-       uint64_t        io_parent_count;
-       uint64_t        *io_stall;
-       zio_t           *io_gang_leader;
-       zio_gang_node_t *io_gang_tree;
-       void            *io_executor;
-       void            *io_waiter;
-       kmutex_t        io_lock;
-       kcondvar_t      io_cv;
-
-       /* FMA state */
-       zio_cksum_report_t *io_cksum_report;
-       uint64_t        io_ena;
-};
-
-extern zio_t *zio_null(zio_t *pio, spa_t *spa, vdev_t *vd,
-    zio_done_func_t *done, void *private, enum zio_flag flags);
-
-extern zio_t *zio_root(spa_t *spa,
-    zio_done_func_t *done, void *private, enum zio_flag flags);
-
-extern zio_t *zio_read(zio_t *pio, spa_t *spa, const blkptr_t *bp, void *data,
-    uint64_t size, zio_done_func_t *done, void *private,
-    int priority, enum zio_flag flags, const zbookmark_t *zb);
-
-extern zio_t *zio_write(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp,
-    void *data, uint64_t size, const zio_prop_t *zp,
-    zio_done_func_t *ready, zio_done_func_t *done, void *private,
-    int priority, enum zio_flag flags, const zbookmark_t *zb);
-
-extern zio_t *zio_rewrite(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp,
-    void *data, uint64_t size, zio_done_func_t *done, void *private,
-    int priority, enum zio_flag flags, zbookmark_t *zb);
-
-extern void zio_write_override(zio_t *zio, blkptr_t *bp, int copies);
-
-extern void zio_free(spa_t *spa, uint64_t txg, const blkptr_t *bp);
-
-extern zio_t *zio_claim(zio_t *pio, spa_t *spa, uint64_t txg,
-    const blkptr_t *bp,
-    zio_done_func_t *done, void *private, enum zio_flag flags);
-
-extern zio_t *zio_ioctl(zio_t *pio, spa_t *spa, vdev_t *vd, int cmd,
-    zio_done_func_t *done, void *private, int priority, enum zio_flag flags);
-
-extern zio_t *zio_read_phys(zio_t *pio, vdev_t *vd, uint64_t offset,
-    uint64_t size, void *data, int checksum,
-    zio_done_func_t *done, void *private, int priority, enum zio_flag flags,
-    boolean_t labels);
-
-extern zio_t *zio_write_phys(zio_t *pio, vdev_t *vd, uint64_t offset,
-    uint64_t size, void *data, int checksum,
-    zio_done_func_t *done, void *private, int priority, enum zio_flag flags,
-    boolean_t labels);
-
-extern zio_t *zio_free_sync(zio_t *pio, spa_t *spa, uint64_t txg,
-    const blkptr_t *bp, enum zio_flag flags);
-
-extern int zio_alloc_zil(spa_t *spa, uint64_t txg, blkptr_t *new_bp,
-    blkptr_t *old_bp, uint64_t size, boolean_t use_slog);
-extern void zio_free_zil(spa_t *spa, uint64_t txg, blkptr_t *bp);
-extern void zio_flush(zio_t *zio, vdev_t *vd);
-extern void zio_shrink(zio_t *zio, uint64_t size);
-
-extern int zio_wait(zio_t *zio);
-extern void zio_nowait(zio_t *zio);
-extern void zio_execute(zio_t *zio);
-extern void zio_interrupt(zio_t *zio);
-
-extern zio_t *zio_walk_parents(zio_t *cio);
-extern zio_t *zio_walk_children(zio_t *pio);
-extern zio_t *zio_unique_parent(zio_t *cio);
-extern void zio_add_child(zio_t *pio, zio_t *cio);
-
-extern void *zio_buf_alloc(size_t size);
-extern void zio_buf_free(void *buf, size_t size);
-extern void *zio_data_buf_alloc(size_t size);
-extern void zio_data_buf_free(void *buf, size_t size);
-
-extern void zio_resubmit_stage_async(void *);
-
-extern zio_t *zio_vdev_child_io(zio_t *zio, blkptr_t *bp, vdev_t *vd,
-    uint64_t offset, void *data, uint64_t size, int type, int priority,
-    enum zio_flag flags, zio_done_func_t *done, void *private);
-
-extern zio_t *zio_vdev_delegated_io(vdev_t *vd, uint64_t offset,
-    void *data, uint64_t size, int type, int priority,
-    enum zio_flag flags, zio_done_func_t *done, void *private);
-
-extern void zio_vdev_io_bypass(zio_t *zio);
-extern void zio_vdev_io_reissue(zio_t *zio);
-extern void zio_vdev_io_redone(zio_t *zio);
-
-extern void zio_checksum_verified(zio_t *zio);
-extern int zio_worst_error(int e1, int e2);
-
-extern enum zio_checksum zio_checksum_select(enum zio_checksum child,
-    enum zio_checksum parent);
-extern enum zio_checksum zio_checksum_dedup_select(spa_t *spa,
-    enum zio_checksum child, enum zio_checksum parent);
-extern enum zio_compress zio_compress_select(enum zio_compress child,
-    enum zio_compress parent);
-
-extern void zio_suspend(spa_t *spa, zio_t *zio);
-extern int zio_resume(spa_t *spa);
-extern void zio_resume_wait(spa_t *spa);
-
-/*
- * Initial setup and teardown.
- */
-extern void zio_init(void);
-extern void zio_fini(void);
-
-/*
- * Fault injection
- */
-struct zinject_record;
-extern uint32_t zio_injection_enabled;
-extern int zio_inject_fault(char *name, int flags, int *id,
-    struct zinject_record *record);
-extern int zio_inject_list_next(int *id, char *name, size_t buflen,
-    struct zinject_record *record);
-extern int zio_clear_fault(int id);
-extern void zio_handle_panic_injection(spa_t *spa, char *tag, uint64_t type);
-extern int zio_handle_fault_injection(zio_t *zio, int error);
-extern int zio_handle_device_injection(vdev_t *vd, zio_t *zio, int error);
-extern int zio_handle_label_injection(zio_t *zio, int error);
-extern void zio_handle_ignored_writes(zio_t *zio);
-
-/*
- * Checksum ereport functions
- */
-extern void zfs_ereport_start_checksum(spa_t *spa, vdev_t *vd, struct zio *zio,
-    uint64_t offset, uint64_t length, void *arg, struct zio_bad_cksum *info);
-extern void zfs_ereport_finish_checksum(zio_cksum_report_t *report,
-    const void *good_data, const void *bad_data, boolean_t drop_if_identical);
-
-extern void zfs_ereport_send_interim_checksum(zio_cksum_report_t *report);
-extern void zfs_ereport_free_checksum(zio_cksum_report_t *report);
-
-/* If we have the good data in hand, this function can be used */
-extern void zfs_ereport_post_checksum(spa_t *spa, vdev_t *vd,
-    struct zio *zio, uint64_t offset, uint64_t length,
-    const void *good_data, const void *bad_data, struct zio_bad_cksum *info);
-
-/* Called from spa_sync(), but primarily an injection handler */
-extern void spa_handle_ignored_writes(spa_t *spa);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZIO_H */
diff --git a/module/zfs/include/sys/zio_checksum.h b/module/zfs/include/sys/zio_checksum.h
deleted file mode 100644 (file)
index 0956c04..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef _SYS_ZIO_CHECKSUM_H
-#define        _SYS_ZIO_CHECKSUM_H
-
-#include <sys/zio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Signature for checksum functions.
- */
-typedef void zio_checksum_t(const void *data, uint64_t size, zio_cksum_t *zcp);
-
-/*
- * Information about each checksum function.
- */
-typedef struct zio_checksum_info {
-       zio_checksum_t  *ci_func[2]; /* checksum function for each byteorder */
-       int             ci_correctable; /* number of correctable bits   */
-       int             ci_eck;         /* uses zio embedded checksum? */
-       int             ci_dedup;       /* strong enough for dedup? */
-       char            *ci_name;       /* descriptive name */
-} zio_checksum_info_t;
-
-typedef struct zio_bad_cksum {
-       zio_cksum_t             zbc_expected;
-       zio_cksum_t             zbc_actual;
-       const char              *zbc_checksum_name;
-       uint8_t                 zbc_byteswapped;
-       uint8_t                 zbc_injected;
-       uint8_t                 zbc_has_cksum;  /* expected/actual valid */
-} zio_bad_cksum_t;
-
-extern zio_checksum_info_t zio_checksum_table[ZIO_CHECKSUM_FUNCTIONS];
-
-/*
- * Checksum routines.
- */
-extern zio_checksum_t zio_checksum_SHA256;
-
-extern void zio_checksum_compute(zio_t *zio, enum zio_checksum checksum,
-    void *data, uint64_t size);
-extern int zio_checksum_error(zio_t *zio, zio_bad_cksum_t *out);
-extern enum zio_checksum spa_dedup_checksum(spa_t *spa);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZIO_CHECKSUM_H */
diff --git a/module/zfs/include/sys/zio_compress.h b/module/zfs/include/sys/zio_compress.h
deleted file mode 100644 (file)
index 30bed1a..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _SYS_ZIO_COMPRESS_H
-#define        _SYS_ZIO_COMPRESS_H
-
-#include <sys/zio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Common signature for all zio compress/decompress functions.
- */
-typedef size_t zio_compress_func_t(void *src, void *dst,
-    size_t s_len, size_t d_len, int);
-typedef int zio_decompress_func_t(void *src, void *dst,
-    size_t s_len, size_t d_len, int);
-
-/*
- * Information about each compression function.
- */
-typedef struct zio_compress_info {
-       zio_compress_func_t     *ci_compress;   /* compression function */
-       zio_decompress_func_t   *ci_decompress; /* decompression function */
-       int                     ci_level;       /* level parameter */
-       char                    *ci_name;       /* algorithm name */
-} zio_compress_info_t;
-
-extern zio_compress_info_t zio_compress_table[ZIO_COMPRESS_FUNCTIONS];
-
-/*
- * Compression routines.
- */
-extern size_t lzjb_compress(void *src, void *dst, size_t s_len, size_t d_len,
-    int level);
-extern int lzjb_decompress(void *src, void *dst, size_t s_len, size_t d_len,
-    int level);
-extern size_t gzip_compress(void *src, void *dst, size_t s_len, size_t d_len,
-    int level);
-extern int gzip_decompress(void *src, void *dst, size_t s_len, size_t d_len,
-    int level);
-extern size_t zle_compress(void *src, void *dst, size_t s_len, size_t d_len,
-    int level);
-extern int zle_decompress(void *src, void *dst, size_t s_len, size_t d_len,
-    int level);
-
-/*
- * Compress and decompress data if necessary.
- */
-extern size_t zio_compress_data(enum zio_compress c, void *src, void *dst,
-    size_t s_len);
-extern int zio_decompress_data(enum zio_compress c, void *src, void *dst,
-    size_t s_len, size_t d_len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZIO_COMPRESS_H */
diff --git a/module/zfs/include/sys/zio_impl.h b/module/zfs/include/sys/zio_impl.h
deleted file mode 100644 (file)
index d90bd8b..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _ZIO_IMPL_H
-#define        _ZIO_IMPL_H
-
-#include <sys/zfs_context.h>
-#include <sys/zio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * zio pipeline stage definitions
- */
-enum zio_stage {
-       ZIO_STAGE_OPEN                  = 1 << 0,       /* RWFCI */
-
-       ZIO_STAGE_READ_BP_INIT          = 1 << 1,       /* R---- */
-       ZIO_STAGE_FREE_BP_INIT          = 1 << 2,       /* --F-- */
-       ZIO_STAGE_ISSUE_ASYNC           = 1 << 3,       /* RWF-- */
-       ZIO_STAGE_WRITE_BP_INIT         = 1 << 4,       /* -W--- */
-
-       ZIO_STAGE_CHECKSUM_GENERATE     = 1 << 5,       /* -W--- */
-
-       ZIO_STAGE_DDT_READ_START        = 1 << 6,       /* R---- */
-       ZIO_STAGE_DDT_READ_DONE         = 1 << 7,       /* R---- */
-       ZIO_STAGE_DDT_WRITE             = 1 << 8,       /* -W--- */
-       ZIO_STAGE_DDT_FREE              = 1 << 9,       /* --F-- */
-
-       ZIO_STAGE_GANG_ASSEMBLE         = 1 << 10,      /* RWFC- */
-       ZIO_STAGE_GANG_ISSUE            = 1 << 11,      /* RWFC- */
-
-       ZIO_STAGE_DVA_ALLOCATE          = 1 << 12,      /* -W--- */
-       ZIO_STAGE_DVA_FREE              = 1 << 13,      /* --F-- */
-       ZIO_STAGE_DVA_CLAIM             = 1 << 14,      /* ---C- */
-
-       ZIO_STAGE_READY                 = 1 << 15,      /* RWFCI */
-
-       ZIO_STAGE_VDEV_IO_START         = 1 << 16,      /* RW--I */
-       ZIO_STAGE_VDEV_IO_DONE          = 1 << 17,      /* RW--I */
-       ZIO_STAGE_VDEV_IO_ASSESS        = 1 << 18,      /* RW--I */
-
-       ZIO_STAGE_CHECKSUM_VERIFY       = 1 << 19,      /* R---- */
-
-       ZIO_STAGE_DONE                  = 1 << 20       /* RWFCI */
-};
-
-#define        ZIO_INTERLOCK_STAGES                    \
-       (ZIO_STAGE_READY |                      \
-       ZIO_STAGE_DONE)
-
-#define        ZIO_INTERLOCK_PIPELINE                  \
-       ZIO_INTERLOCK_STAGES
-
-#define        ZIO_VDEV_IO_STAGES                      \
-       (ZIO_STAGE_VDEV_IO_START |              \
-       ZIO_STAGE_VDEV_IO_DONE |                \
-       ZIO_STAGE_VDEV_IO_ASSESS)
-
-#define        ZIO_VDEV_CHILD_PIPELINE                 \
-       (ZIO_VDEV_IO_STAGES |                   \
-       ZIO_STAGE_DONE)
-
-#define        ZIO_READ_COMMON_STAGES                  \
-       (ZIO_INTERLOCK_STAGES |                 \
-       ZIO_VDEV_IO_STAGES |                    \
-       ZIO_STAGE_CHECKSUM_VERIFY)
-
-#define        ZIO_READ_PHYS_PIPELINE                  \
-       ZIO_READ_COMMON_STAGES
-
-#define        ZIO_READ_PIPELINE                       \
-       (ZIO_READ_COMMON_STAGES |               \
-       ZIO_STAGE_READ_BP_INIT)
-
-#define        ZIO_DDT_CHILD_READ_PIPELINE             \
-       ZIO_READ_COMMON_STAGES
-
-#define        ZIO_DDT_READ_PIPELINE                   \
-       (ZIO_INTERLOCK_STAGES |                 \
-       ZIO_STAGE_READ_BP_INIT |                \
-       ZIO_STAGE_DDT_READ_START |              \
-       ZIO_STAGE_DDT_READ_DONE)
-
-#define        ZIO_WRITE_COMMON_STAGES                 \
-       (ZIO_INTERLOCK_STAGES |                 \
-       ZIO_VDEV_IO_STAGES |                    \
-       ZIO_STAGE_ISSUE_ASYNC |                 \
-       ZIO_STAGE_CHECKSUM_GENERATE)
-
-#define        ZIO_WRITE_PHYS_PIPELINE                 \
-       ZIO_WRITE_COMMON_STAGES
-
-#define        ZIO_REWRITE_PIPELINE                    \
-       (ZIO_WRITE_COMMON_STAGES |              \
-       ZIO_STAGE_WRITE_BP_INIT)
-
-#define        ZIO_WRITE_PIPELINE                      \
-       (ZIO_WRITE_COMMON_STAGES |              \
-       ZIO_STAGE_WRITE_BP_INIT |               \
-       ZIO_STAGE_DVA_ALLOCATE)
-
-#define        ZIO_DDT_CHILD_WRITE_PIPELINE            \
-       (ZIO_INTERLOCK_STAGES |                 \
-       ZIO_VDEV_IO_STAGES |                    \
-       ZIO_STAGE_DVA_ALLOCATE)
-
-#define        ZIO_DDT_WRITE_PIPELINE                  \
-       (ZIO_INTERLOCK_STAGES |                 \
-       ZIO_STAGE_ISSUE_ASYNC |                 \
-       ZIO_STAGE_WRITE_BP_INIT |               \
-       ZIO_STAGE_CHECKSUM_GENERATE |           \
-       ZIO_STAGE_DDT_WRITE)
-
-#define        ZIO_GANG_STAGES                         \
-       (ZIO_STAGE_GANG_ASSEMBLE |              \
-       ZIO_STAGE_GANG_ISSUE)
-
-#define        ZIO_FREE_PIPELINE                       \
-       (ZIO_INTERLOCK_STAGES |                 \
-       ZIO_STAGE_FREE_BP_INIT |                \
-       ZIO_STAGE_DVA_FREE)
-
-#define        ZIO_DDT_FREE_PIPELINE                   \
-       (ZIO_INTERLOCK_STAGES |                 \
-       ZIO_STAGE_FREE_BP_INIT |                \
-       ZIO_STAGE_ISSUE_ASYNC |                 \
-       ZIO_STAGE_DDT_FREE)
-
-#define        ZIO_CLAIM_PIPELINE                      \
-       (ZIO_INTERLOCK_STAGES |                 \
-       ZIO_STAGE_DVA_CLAIM)
-
-#define        ZIO_IOCTL_PIPELINE                      \
-       (ZIO_INTERLOCK_STAGES |                 \
-       ZIO_STAGE_VDEV_IO_START |               \
-       ZIO_STAGE_VDEV_IO_ASSESS)
-
-#define        ZIO_BLOCKING_STAGES                     \
-       (ZIO_STAGE_DVA_ALLOCATE |               \
-       ZIO_STAGE_DVA_CLAIM |                   \
-       ZIO_STAGE_VDEV_IO_START)
-
-extern void zio_inject_init(void);
-extern void zio_inject_fini(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZIO_IMPL_H */
diff --git a/module/zfs/include/sys/zrlock.h b/module/zfs/include/sys/zrlock.h
deleted file mode 100644 (file)
index dcd63f7..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_ZRLOCK_H
-#define        _SYS_ZRLOCK_H
-
-#include <sys/zfs_context.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct zrlock {
-       kmutex_t zr_mtx;
-       volatile int32_t zr_refcount;
-       kcondvar_t zr_cv;
-       uint16_t zr_pad;
-#ifdef ZFS_DEBUG
-       kthread_t *zr_owner;
-       const char *zr_caller;
-#endif
-} zrlock_t;
-
-extern void zrl_init(zrlock_t *);
-extern void zrl_destroy(zrlock_t *);
-#ifdef ZFS_DEBUG
-#define        zrl_add(_z)     zrl_add_debug((_z), __func__)
-extern void zrl_add_debug(zrlock_t *, const char *);
-#else
-extern void zrl_add(zrlock_t *);
-#endif
-extern void zrl_remove(zrlock_t *);
-extern int zrl_tryenter(zrlock_t *);
-extern void zrl_exit(zrlock_t *);
-extern int zrl_is_zero(zrlock_t *);
-extern int zrl_is_locked(zrlock_t *);
-#ifdef ZFS_DEBUG
-extern kthread_t *zrl_owner(zrlock_t *);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _SYS_ZRLOCK_H */
diff --git a/module/zfs/include/sys/zvol.h b/module/zfs/include/sys/zvol.h
deleted file mode 100644 (file)
index c8b9d65..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-#ifndef        _SYS_ZVOL_H
-#define        _SYS_ZVOL_H
-
-#include <sys/zfs_context.h>
-
-#define        ZVOL_OBJ                1ULL
-#define        ZVOL_ZAP_OBJ            2ULL
-
-#ifdef _KERNEL
-
-#include <sys/blkdev.h>
-
-extern int zvol_check_volsize(uint64_t volsize, uint64_t blocksize);
-extern int zvol_check_volblocksize(uint64_t volblocksize);
-extern int zvol_get_stats(objset_t *os, nvlist_t *nv);
-extern void zvol_create_cb(objset_t *os, void *arg, cred_t *cr, dmu_tx_t *tx);
-extern int zvol_create_minor(const char *);
-extern int zvol_create_minors(const char *);
-extern int zvol_remove_minor(const char *);
-extern void zvol_remove_minors(const char *);
-extern int zvol_set_volsize(const char *, uint64_t);
-extern int zvol_set_volblocksize(const char *, uint64_t);
-
-extern int zvol_init(void);
-extern void zvol_fini(void);
-
-#endif /* _KERNEL */
-#endif /* _SYS_ZVOL_H */
index 4924082a13ca8da5bfa27e9cf6eb5abedb4b6f89..93a89a91416e368360688ffaf847f56bf9dac226 100644 (file)
@@ -1,11 +1,10 @@
 MODULE := zpios
 
-EXTRA_CFLAGS  = -I@MODDIR@/zfs/include
-EXTRA_CFLAGS += -I@MODDIR@/zcommon/include
-EXTRA_CFLAGS += -I@MODDIR@/avl/include
-EXTRA_CFLAGS += -I@MODDIR@/nvpair/include
-EXTRA_CFLAGS += -I@MODDIR@/unicode/include
-EXTRA_CFLAGS += -I@MODDIR@/zpios/include
-EXTRA_CFLAGS += @KERNELCPPFLAGS@
+EXTRA_CFLAGS  = @KERNELCPPFLAGS@
+EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h
+EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h
+EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@
 
-obj-m := ${MODULE}.o
+obj-m := $(MODULE).o
+
+$(MODULE)-objs += @top_srcdir@/module/zpios/pios.o
diff --git a/module/zpios/include/zpios-ctl.h b/module/zpios/include/zpios-ctl.h
deleted file mode 100644 (file)
index 234e96c..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/*****************************************************************************\
- *  ZPIOS is a heavily modified version of the original PIOS test code.
- *  It is designed to have the test code running in the Linux kernel
- *  against ZFS while still being flexibly controled from user space.
- *
- *  Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
- *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
- *  Written by Brian Behlendorf <behlendorf1@llnl.gov>.
- *  LLNL-CODE-403049
- *
- *  Original PIOS Test Code
- *  Copyright (C) 2004 Cluster File Systems, Inc.
- *  Written by Peter Braam <braam@clusterfs.com>
- *             Atul Vidwansa <atul@clusterfs.com>
- *             Milind Dumbare <milind@clusterfs.com>
- *
- *  This file is part of ZFS on Linux.
- *  For details, see <http://github.com/behlendorf/zfs/>.
- *
- *  ZPIOS is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- *
- *  ZPIOS is distributed in the hope that it will be useful, but WITHOUT
- *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- *  for more details.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with ZPIOS.  If not, see <http://www.gnu.org/licenses/>.
-\*****************************************************************************/
-
-#ifndef _ZPIOS_CTL_H
-#define _ZPIOS_CTL_H
-
-/* Contains shared definitions which both the userspace
- * and kernelspace portions of zpios must agree on.
- */
-#ifndef _KERNEL
-#include <stdint.h>
-#endif
-
-#define ZPIOS_MAJOR                    232 /* XXX - Arbitrary */
-#define ZPIOS_MINORS                   1
-#define ZPIOS_NAME                     "zpios"
-#define ZPIOS_DEV                      "/dev/zpios"
-
-#define DMU_IO                         0x01
-
-#define DMU_WRITE                      0x0001
-#define DMU_READ                       0x0002
-#define DMU_VERIFY                     0x0004
-#define DMU_REMOVE                     0x0008
-#define DMU_FPP                                0x0010
-#define DMU_WRITE_ZC                   0x0020 /* Incompatible w/DMU_VERIFY */
-#define DMU_READ_ZC                    0x0040 /* Incompatible w/DMU_VERIFY */
-#define DMU_WRITE_NOWAIT               0x0080
-#define DMU_READ_NOPF                  0x0100
-
-#define ZPIOS_NAME_SIZE                        16
-#define ZPIOS_PATH_SIZE                        128
-
-#define PHASE_PRE_RUN                  "pre-run"
-#define PHASE_PRE_CREATE               "pre-create"
-#define PHASE_PRE_WRITE                        "pre-write"
-#define PHASE_PRE_READ                 "pre-read"
-#define PHASE_PRE_REMOVE               "pre-remove"
-#define PHASE_POST_RUN                 "post-run"
-#define PHASE_POST_CREATE              "post-create"
-#define PHASE_POST_WRITE               "post-write"
-#define PHASE_POST_READ                        "post-read"
-#define PHASE_POST_REMOVE              "post-remove"
-
-#define        ZPIOS_CFG_MAGIC                 0x87237190U
-typedef struct zpios_cfg {
-       uint32_t cfg_magic;             /* Unique magic */
-       int32_t cfg_cmd;                /* Config command */
-       int32_t cfg_arg1;               /* Config command arg 1 */
-       int32_t cfg_rc1;                /* Config response 1 */
-} zpios_cfg_t;
-
-typedef struct zpios_timespec {
-       uint32_t ts_sec;
-       uint32_t ts_nsec;
-} zpios_timespec_t;
-
-typedef struct zpios_time {
-       zpios_timespec_t start;
-       zpios_timespec_t stop;
-       zpios_timespec_t delta;
-} zpios_time_t;
-
-typedef struct zpios_stats {
-       zpios_time_t total_time;
-       zpios_time_t cr_time;
-       zpios_time_t rm_time;
-       zpios_time_t wr_time;
-       zpios_time_t rd_time;
-       uint64_t wr_data;
-       uint64_t wr_chunks;
-       uint64_t rd_data;
-       uint64_t rd_chunks;
-} zpios_stats_t;
-
-#define        ZPIOS_CMD_MAGIC                 0x49715385U
-typedef struct zpios_cmd {
-       uint32_t cmd_magic;             /* Unique magic */
-       uint32_t cmd_id;                /* Run ID */
-       char cmd_pool[ZPIOS_NAME_SIZE]; /* Pool name */
-       uint64_t cmd_chunk_size;        /* Chunk size */
-       uint32_t cmd_thread_count;      /* Thread count */
-       uint32_t cmd_region_count;      /* Region count */
-       uint64_t cmd_region_size;       /* Region size */
-       uint64_t cmd_offset;            /* Region offset */
-       uint32_t cmd_region_noise;      /* Region noise */
-       uint32_t cmd_chunk_noise;       /* Chunk noise */
-       uint32_t cmd_thread_delay;      /* Thread delay */
-       uint32_t cmd_flags;             /* Test flags */
-        char cmd_pre[ZPIOS_PATH_SIZE]; /* Pre-exec hook */
-        char cmd_post[ZPIOS_PATH_SIZE];        /* Post-exec hook */
-       char cmd_log[ZPIOS_PATH_SIZE];  /* Requested log dir */
-       uint64_t cmd_data_size;         /* Opaque data size */
-       char cmd_data_str[0];           /* Opaque data region */
-} zpios_cmd_t;
-
-/* Valid ioctls */
-#define ZPIOS_CFG                      _IOWR('f', 101, zpios_cfg_t)
-#define ZPIOS_CMD                      _IOWR('f', 102, zpios_cmd_t)
-
-/* Valid configuration commands */
-#define ZPIOS_CFG_BUFFER_CLEAR         0x001   /* Clear text buffer */
-#define ZPIOS_CFG_BUFFER_SIZE          0x002   /* Resize text buffer */
-
-#ifndef NSEC_PER_SEC
-#define NSEC_PER_SEC    1000000000L
-#endif
-
-static inline
-void zpios_timespec_normalize(zpios_timespec_t *ts, uint32_t sec, uint32_t nsec)
-{
-       while (nsec >= NSEC_PER_SEC) {
-               nsec -= NSEC_PER_SEC;
-               sec++;
-       }
-       while (nsec < 0) {
-               nsec += NSEC_PER_SEC;
-               sec--;
-       }
-       ts->ts_sec = sec;
-       ts->ts_nsec = nsec;
-}
-
-static inline
-zpios_timespec_t zpios_timespec_add(zpios_timespec_t lhs, zpios_timespec_t rhs)
-{
-       zpios_timespec_t ts_delta;
-       zpios_timespec_normalize(&ts_delta, lhs.ts_sec + rhs.ts_sec,
-                                lhs.ts_nsec + rhs.ts_nsec);
-        return ts_delta;
-}
-
-static inline
-zpios_timespec_t zpios_timespec_sub(zpios_timespec_t lhs, zpios_timespec_t rhs)
-{
-       zpios_timespec_t ts_delta;
-       zpios_timespec_normalize(&ts_delta, lhs.ts_sec - rhs.ts_sec,
-                                lhs.ts_nsec - rhs.ts_nsec);
-       return ts_delta;
-}
-
-#ifdef _KERNEL
-
-static inline
-zpios_timespec_t zpios_timespec_now(void)
-{
-       zpios_timespec_t zts_now;
-       struct timespec ts_now;
-
-       ts_now = current_kernel_time();
-       zts_now.ts_sec  = ts_now.tv_sec;
-       zts_now.ts_nsec = ts_now.tv_nsec;
-
-       return zts_now;
-}
-
-#else
-
-static inline
-double zpios_timespec_to_double(zpios_timespec_t ts)
-{
-       return ((double)(ts.ts_sec) +
-              ((double)(ts.ts_nsec) / (double)(NSEC_PER_SEC)));
-}
-
-#endif /* _KERNEL */
-
-#endif /* _ZPIOS_CTL_H */
diff --git a/module/zpios/include/zpios-internal.h b/module/zpios/include/zpios-internal.h
deleted file mode 100644 (file)
index c9b6e00..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*****************************************************************************\
- *  ZPIOS is a heavily modified version of the original PIOS test code.
- *  It is designed to have the test code running in the Linux kernel
- *  against ZFS while still being flexibly controled from user space.
- *
- *  Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
- *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
- *  Written by Brian Behlendorf <behlendorf1@llnl.gov>.
- *  LLNL-CODE-403049
- *
- *  Original PIOS Test Code
- *  Copyright (C) 2004 Cluster File Systems, Inc.
- *  Written by Peter Braam <braam@clusterfs.com>
- *             Atul Vidwansa <atul@clusterfs.com>
- *             Milind Dumbare <milind@clusterfs.com>
- *
- *  This file is part of ZFS on Linux.
- *  For details, see <http://github.com/behlendorf/zfs/>.
- *
- *  ZPIOS is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- *
- *  ZPIOS is distributed in the hope that it will be useful, but WITHOUT
- *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- *  for more details.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with ZPIOS.  If not, see <http://www.gnu.org/licenses/>.
-\*****************************************************************************/
-
-#ifndef _ZPIOS_INTERNAL_H
-#define _ZPIOS_INTERNAL_H
-
-#include "zpios-ctl.h"
-
-#define OBJ_SIZE       64
-
-struct run_args;
-
-typedef struct dmu_obj {
-       objset_t *os;
-       uint64_t obj;
-} dmu_obj_t;
-
-/* thread doing the IO data */
-typedef struct thread_data {
-       struct run_args *run_args;
-       int thread_no;
-       int rc;
-       zpios_stats_t stats;
-        kmutex_t lock;
-} thread_data_t;
-
-/* region for IO data */
-typedef struct zpios_region {
-       __u64 wr_offset;
-       __u64 rd_offset;
-       __u64 init_offset;
-       __u64 max_offset;
-       dmu_obj_t obj;
-       zpios_stats_t stats;
-        kmutex_t lock;
-} zpios_region_t;
-
-/* arguments for one run */
-typedef struct run_args {
-       /* Config args */
-       int id;
-       char pool[ZPIOS_NAME_SIZE];
-       __u64 chunk_size;
-       __u32 thread_count;
-       __u32 region_count;
-       __u64 region_size;
-       __u64 offset;
-       __u32 region_noise;
-       __u32 chunk_noise;
-       __u32 thread_delay;
-       __u32 flags;
-       char pre[ZPIOS_PATH_SIZE];
-       char post[ZPIOS_PATH_SIZE];
-       char log[ZPIOS_PATH_SIZE];
-
-       /* Control data */
-       objset_t *os;
-        wait_queue_head_t waitq;
-       volatile uint64_t threads_done;
-        kmutex_t lock_work;
-       kmutex_t lock_ctl;
-       __u32 region_next;
-
-       /* Results data */
-       struct file *file;
-       zpios_stats_t stats;
-
-       thread_data_t **threads;
-       zpios_region_t regions[0]; /* Must be last element */
-} run_args_t;
-
-#define ZPIOS_INFO_BUFFER_SIZE          65536
-#define ZPIOS_INFO_BUFFER_REDZONE       1024
-
-typedef struct zpios_info {
-        spinlock_t info_lock;
-        int info_size;
-        char *info_buffer;
-        char *info_head;        /* Internal kernel use only */
-} zpios_info_t;
-
-#define zpios_print(file, format, args...)                              \
-({      zpios_info_t *_info_ = (zpios_info_t *)file->private_data;      \
-        int _rc_;                                                       \
-                                                                        \
-        ASSERT(_info_);                                                 \
-        ASSERT(_info_->info_buffer);                                    \
-                                                                        \
-        spin_lock(&_info_->info_lock);                                  \
-                                                                        \
-        /* Don't allow the kernel to start a write in the red zone */   \
-        if ((int)(_info_->info_head - _info_->info_buffer) >            \
-            (_info_->info_size - ZPIOS_INFO_BUFFER_REDZONE))      {     \
-                _rc_ = -EOVERFLOW;                                      \
-        } else {                                                        \
-                _rc_ = sprintf(_info_->info_head, format, args);        \
-                if (_rc_ >= 0)                                          \
-                        _info_->info_head += _rc_;                      \
-        }                                                               \
-                                                                        \
-        spin_unlock(&_info_->info_lock);                                \
-        _rc_;                                                           \
-})
-
-#define zpios_vprint(file, test, format, args...)                       \
-        zpios_print(file, "%*s: " format, ZPIOS_NAME_SIZE, test, args)
-
-#endif /* _ZPIOS_INTERNAL_H */
diff --git a/module/zpios/pios.c b/module/zpios/pios.c
new file mode 100644 (file)
index 0000000..3edc161
--- /dev/null
@@ -0,0 +1,1331 @@
+/*****************************************************************************\
+ *  ZPIOS is a heavily modified version of the original PIOS test code.
+ *  It is designed to have the test code running in the Linux kernel
+ *  against ZFS while still being flexibly controled from user space.
+ *
+ *  Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
+ *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+ *  Written by Brian Behlendorf <behlendorf1@llnl.gov>.
+ *  LLNL-CODE-403049
+ *
+ *  Original PIOS Test Code
+ *  Copyright (C) 2004 Cluster File Systems, Inc.
+ *  Written by Peter Braam <braam@clusterfs.com>
+ *             Atul Vidwansa <atul@clusterfs.com>
+ *             Milind Dumbare <milind@clusterfs.com>
+ *
+ *  This file is part of ZFS on Linux.
+ *  For details, see <http://github.com/behlendorf/zfs/>.
+ *
+ *  ZPIOS is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License as published by the
+ *  Free Software Foundation; either version 2 of the License, or (at your
+ *  option) any later version.
+ *
+ *  ZPIOS is distributed in the hope that it will be useful, but WITHOUT
+ *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ *  for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with ZPIOS.  If not, see <http://www.gnu.org/licenses/>.
+\*****************************************************************************/
+
+#include <sys/zfs_context.h>
+#include <sys/dmu.h>
+#include <sys/txg.h>
+#include <linux/cdev.h>
+#include "zpios-internal.h"
+
+
+static spl_class *zpios_class;
+static spl_device *zpios_device;
+static char *zpios_tag = "zpios_tag";
+
+static
+int zpios_upcall(char *path, char *phase, run_args_t *run_args, int rc)
+{
+       /* This is stack heavy but it should be OK since we are only
+        * making the upcall between tests when the stack is shallow.
+        */
+        char id[16], chunk_size[16], region_size[16], thread_count[16];
+       char region_count[16], offset[16], region_noise[16], chunk_noise[16];
+        char thread_delay[16], flags[16], result[8];
+        char *argv[16], *envp[4];
+
+       if ((path == NULL) || (strlen(path) == 0))
+               return -ENOENT;
+
+       snprintf(id, 15, "%d", run_args->id);
+       snprintf(chunk_size, 15, "%lu", (long unsigned)run_args->chunk_size);
+        snprintf(region_size, 15, "%lu",(long unsigned) run_args->region_size);
+       snprintf(thread_count, 15, "%u", run_args->thread_count);
+       snprintf(region_count, 15, "%u", run_args->region_count);
+       snprintf(offset, 15, "%lu", (long unsigned)run_args->offset);
+       snprintf(region_noise, 15, "%u", run_args->region_noise);
+       snprintf(chunk_noise, 15, "%u", run_args->chunk_noise);
+       snprintf(thread_delay, 15, "%u", run_args->thread_delay);
+       snprintf(flags, 15, "0x%x", run_args->flags);
+       snprintf(result, 7, "%d", rc);
+
+       /* Passing 15 args to registered pre/post upcall */
+        argv[0] = path;
+       argv[1] = phase;
+       argv[2] = strlen(run_args->log) ? run_args->log : "<none>";
+       argv[3] = id;
+       argv[4] = run_args->pool;
+       argv[5] = chunk_size;
+       argv[6] = region_size;
+       argv[7] = thread_count;
+       argv[8] = region_count;
+       argv[9] = offset;
+       argv[10] = region_noise;
+       argv[11] = chunk_noise;
+       argv[12] = thread_delay;
+       argv[13] = flags;
+       argv[14] = result;
+       argv[15] = NULL;
+
+       /* Passing environment for user space upcall */
+        envp[0] = "HOME=/";
+        envp[1] = "TERM=linux";
+        envp[2] = "PATH=/sbin:/usr/sbin:/bin:/usr/bin";
+        envp[3] = NULL;
+
+        return call_usermodehelper(path, argv, envp, 1);
+}
+
+static uint64_t
+zpios_dmu_object_create(run_args_t *run_args, objset_t *os)
+{
+       struct dmu_tx *tx;
+        uint64_t obj = 0ULL;
+       int rc;
+
+       tx = dmu_tx_create(os);
+       dmu_tx_hold_write(tx, DMU_NEW_OBJECT, 0, OBJ_SIZE);
+       rc = dmu_tx_assign(tx, TXG_WAIT);
+       if (rc) {
+               zpios_print(run_args->file,
+                           "dmu_tx_assign() failed: %d\n", rc);
+               dmu_tx_abort(tx);
+               return obj;
+       }
+
+       obj = dmu_object_alloc(os, DMU_OT_UINT64_OTHER, 0,
+                              DMU_OT_NONE, 0, tx);
+       rc = dmu_object_set_blocksize(os, obj, 128ULL << 10, 0, tx);
+       if (rc) {
+               zpios_print(run_args->file,
+                           "dmu_object_set_blocksize() failed: %d\n", rc);
+               dmu_tx_abort(tx);
+               return obj;
+       }
+
+       dmu_tx_commit(tx);
+
+       return obj;
+}
+
+static int
+zpios_dmu_object_free(run_args_t *run_args, objset_t *os, uint64_t obj)
+{
+       struct dmu_tx *tx;
+       int rc;
+
+       tx = dmu_tx_create(os);
+        dmu_tx_hold_free(tx, obj, 0, DMU_OBJECT_END);
+       rc = dmu_tx_assign(tx, TXG_WAIT);
+       if (rc) {
+               zpios_print(run_args->file,
+                           "dmu_tx_assign() failed: %d\n", rc);
+               dmu_tx_abort(tx);
+               return rc;
+       }
+
+       rc = dmu_object_free(os, obj, tx);
+       if (rc) {
+               zpios_print(run_args->file,
+                           "dmu_object_free() failed: %d\n", rc);
+               dmu_tx_abort(tx);
+               return rc;
+       }
+
+       dmu_tx_commit(tx);
+
+       return 0;
+}
+
+static int
+zpios_dmu_setup(run_args_t *run_args)
+{
+       zpios_time_t *t = &(run_args->stats.cr_time);
+       objset_t *os;
+       char name[32];
+       uint64_t obj = 0ULL;
+       int i, rc = 0, rc2;
+
+       (void)zpios_upcall(run_args->pre, PHASE_PRE_CREATE, run_args, 0);
+       t->start = zpios_timespec_now();
+
+       (void)snprintf(name, 32, "%s/id_%d", run_args->pool, run_args->id);
+       rc = dmu_objset_create(name, DMU_OST_OTHER, 0, NULL, NULL);
+       if (rc) {
+               zpios_print(run_args->file, "Error dmu_objset_create(%s, ...) "
+                           "failed: %d\n", name, rc);
+               goto out;
+       }
+
+        rc = dmu_objset_own(name, DMU_OST_OTHER, 0, zpios_tag, &os);
+        if (rc) {
+               zpios_print(run_args->file, "Error dmu_objset_own(%s, ...) "
+                           "failed: %d\n", name, rc);
+               goto out_destroy;
+        }
+
+       if (!(run_args->flags & DMU_FPP)) {
+               obj = zpios_dmu_object_create(run_args, os);
+               if (obj == 0) {
+                       rc = -EBADF;
+                       zpios_print(run_args->file, "Error zpios_dmu_"
+                                   "object_create() failed, %d\n", rc);
+                       goto out_destroy;
+               }
+       }
+
+       for (i = 0; i < run_args->region_count; i++) {
+               zpios_region_t *region;
+
+               region = &run_args->regions[i];
+               mutex_init(&region->lock, NULL, MUTEX_DEFAULT, NULL);
+
+               if (run_args->flags & DMU_FPP) {
+                       /* File per process */
+                       region->obj.os  = os;
+                       region->obj.obj = zpios_dmu_object_create(run_args, os);
+                       ASSERT(region->obj.obj > 0); /* XXX - Handle this */
+                       region->wr_offset   = run_args->offset;
+                       region->rd_offset   = run_args->offset;
+                       region->init_offset = run_args->offset;
+                       region->max_offset  = run_args->offset +
+                                             run_args->region_size;
+               } else {
+                       /* Single shared file */
+                       region->obj.os  = os;
+                       region->obj.obj = obj;
+                       region->wr_offset   = run_args->offset * i;
+                       region->rd_offset   = run_args->offset * i;
+                       region->init_offset = run_args->offset * i;
+                       region->max_offset  = run_args->offset *
+                                             i + run_args->region_size;
+               }
+       }
+
+       run_args->os = os;
+out_destroy:
+       if (rc) {
+               rc2 = dmu_objset_destroy(name, B_FALSE);
+               if (rc2)
+                       zpios_print(run_args->file, "Error dmu_objset_destroy"
+                                   "(%s, ...) failed: %d\n", name, rc2);
+       }
+out:
+       t->stop  = zpios_timespec_now();
+       t->delta = zpios_timespec_sub(t->stop, t->start);
+       (void)zpios_upcall(run_args->post, PHASE_POST_CREATE, run_args, rc);
+
+       return rc;
+}
+
+static int
+zpios_setup_run(run_args_t **run_args, zpios_cmd_t *kcmd, struct file *file)
+{
+       run_args_t *ra;
+       int rc, size;
+
+       size = sizeof(*ra) + kcmd->cmd_region_count * sizeof(zpios_region_t);
+
+       ra = vmem_zalloc(size, KM_SLEEP);
+       if (ra == NULL) {
+               zpios_print(file, "Unable to vmem_zalloc() %d bytes "
+                           "for regions\n", size);
+               return -ENOMEM;
+       }
+
+       *run_args = ra;
+       strncpy(ra->pool, kcmd->cmd_pool, ZPIOS_NAME_SIZE - 1);
+       strncpy(ra->pre, kcmd->cmd_pre, ZPIOS_PATH_SIZE - 1);
+       strncpy(ra->post, kcmd->cmd_post, ZPIOS_PATH_SIZE - 1);
+       strncpy(ra->log, kcmd->cmd_log, ZPIOS_PATH_SIZE - 1);
+       ra->id              = kcmd->cmd_id;
+       ra->chunk_size      = kcmd->cmd_chunk_size;
+       ra->thread_count    = kcmd->cmd_thread_count;
+       ra->region_count    = kcmd->cmd_region_count;
+       ra->region_size     = kcmd->cmd_region_size;
+       ra->offset          = kcmd->cmd_offset;
+       ra->region_noise    = kcmd->cmd_region_noise;
+       ra->chunk_noise     = kcmd->cmd_chunk_noise;
+       ra->thread_delay    = kcmd->cmd_thread_delay;
+       ra->flags           = kcmd->cmd_flags;
+       ra->stats.wr_data   = 0;
+       ra->stats.wr_chunks = 0;
+       ra->stats.rd_data   = 0;
+       ra->stats.rd_chunks = 0;
+       ra->region_next     = 0;
+       ra->file            = file;
+        mutex_init(&ra->lock_work, NULL, MUTEX_DEFAULT, NULL);
+        mutex_init(&ra->lock_ctl, NULL, MUTEX_DEFAULT, NULL);
+
+       (void)zpios_upcall(ra->pre, PHASE_PRE_RUN, ra, 0);
+
+       rc = zpios_dmu_setup(ra);
+       if (rc) {
+               mutex_destroy(&ra->lock_ctl);
+               mutex_destroy(&ra->lock_work);
+               vmem_free(ra, size);
+               *run_args = NULL;
+       }
+
+       return rc;
+}
+
+static int
+zpios_get_work_item(run_args_t *run_args, dmu_obj_t *obj, __u64 *offset,
+                   __u32 *chunk_size, zpios_region_t **region, __u32 flags)
+{
+       int i, j, count = 0;
+       unsigned int random_int;
+
+       get_random_bytes(&random_int, sizeof(unsigned int));
+
+       mutex_enter(&run_args->lock_work);
+       i = run_args->region_next;
+
+       /* XXX: I don't much care for this chunk selection mechansim
+        * there's the potential to burn a lot of time here doing nothing
+        * useful while holding the global lock.  This could give some
+        * misleading performance results.  I'll fix it latter.
+        */
+       while (count < run_args->region_count) {
+               __u64 *rw_offset;
+               zpios_time_t *rw_time;
+
+               j = i % run_args->region_count;
+               *region = &(run_args->regions[j]);
+
+               if (flags & DMU_WRITE) {
+                       rw_offset = &((*region)->wr_offset);
+                       rw_time = &((*region)->stats.wr_time);
+               } else {
+                       rw_offset = &((*region)->rd_offset);
+                       rw_time = &((*region)->stats.rd_time);
+               }
+
+               /* test if region is fully written */
+               if (*rw_offset + *chunk_size > (*region)->max_offset) {
+                       i++;
+                       count++;
+
+                       if (unlikely(rw_time->stop.ts_sec == 0) &&
+                           unlikely(rw_time->stop.ts_nsec == 0))
+                               rw_time->stop = zpios_timespec_now();
+
+                       continue;
+               }
+
+               *offset = *rw_offset;
+               *obj = (*region)->obj;
+               *rw_offset += *chunk_size;
+
+               /* update ctl structure */
+               if (run_args->region_noise) {
+                       get_random_bytes(&random_int, sizeof(unsigned int));
+                       run_args->region_next += random_int % run_args->region_noise;
+               } else {
+                       run_args->region_next++;
+               }
+
+               mutex_exit(&run_args->lock_work);
+               return 1;
+       }
+
+       /* nothing left to do */
+       mutex_exit(&run_args->lock_work);
+
+       return 0;
+}
+
+static void
+zpios_remove_objset(run_args_t *run_args)
+{
+       zpios_time_t *t = &(run_args->stats.rm_time);
+       zpios_region_t *region;
+       char name[32];
+       int rc = 0, i;
+
+       (void)zpios_upcall(run_args->pre, PHASE_PRE_REMOVE, run_args, 0);
+       t->start = zpios_timespec_now();
+
+       (void)snprintf(name, 32, "%s/id_%d", run_args->pool, run_args->id);
+
+       if (run_args->flags & DMU_REMOVE) {
+               if (run_args->flags & DMU_FPP) {
+                       for (i = 0; i < run_args->region_count; i++) {
+                               region = &run_args->regions[i];
+                               rc = zpios_dmu_object_free(run_args,
+                                                          region->obj.os,
+                                                          region->obj.obj);
+                               if (rc)
+                                       zpios_print(run_args->file, "Error "
+                                                   "removing object %d, %d\n",
+                                                   (int)region->obj.obj, rc);
+                       }
+               } else {
+                       region = &run_args->regions[0];
+                       rc = zpios_dmu_object_free(run_args,
+                                                  region->obj.os,
+                                                  region->obj.obj);
+                       if (rc)
+                               zpios_print(run_args->file, "Error "
+                                           "removing object %d, %d\n",
+                                           (int)region->obj.obj, rc);
+               }
+       }
+
+       dmu_objset_disown(run_args->os, zpios_tag);
+
+       if (run_args->flags & DMU_REMOVE) {
+               rc = dmu_objset_destroy(name, B_FALSE);
+               if (rc)
+                       zpios_print(run_args->file, "Error dmu_objset_destroy"
+                                   "(%s, ...) failed: %d\n", name, rc);
+       }
+
+       t->stop  = zpios_timespec_now();
+       t->delta = zpios_timespec_sub(t->stop, t->start);
+       (void)zpios_upcall(run_args->post, PHASE_POST_REMOVE, run_args, rc);
+}
+
+static void
+zpios_cleanup_run(run_args_t *run_args)
+{
+       int i, size = 0;
+
+       if (run_args == NULL)
+               return;
+
+       if (run_args->threads != NULL) {
+               for (i = 0; i < run_args->thread_count; i++) {
+                       if (run_args->threads[i]) {
+                               mutex_destroy(&run_args->threads[i]->lock);
+                               kmem_free(run_args->threads[i],
+                                         sizeof(thread_data_t));
+                       }
+               }
+
+               kmem_free(run_args->threads,
+                         sizeof(thread_data_t *) * run_args->thread_count);
+       }
+
+       for (i = 0; i < run_args->region_count; i++)
+               mutex_destroy(&run_args->regions[i].lock);
+
+       mutex_destroy(&run_args->lock_work);
+       mutex_destroy(&run_args->lock_ctl);
+       size = run_args->region_count * sizeof(zpios_region_t);
+
+       vmem_free(run_args, sizeof(*run_args) + size);
+}
+
+static int
+zpios_dmu_write(run_args_t *run_args, objset_t *os, uint64_t object,
+               uint64_t offset, uint64_t size, const void *buf)
+{
+       struct dmu_tx *tx;
+       int rc, how = TXG_WAIT;
+//     int flags = 0;
+
+       if (run_args->flags & DMU_WRITE_NOWAIT)
+               how = TXG_NOWAIT;
+
+       while (1) {
+               tx = dmu_tx_create(os);
+               dmu_tx_hold_write(tx, object, offset, size);
+               rc = dmu_tx_assign(tx, how);
+
+               if (rc) {
+                       if (rc == ERESTART && how == TXG_NOWAIT) {
+                               dmu_tx_wait(tx);
+                               dmu_tx_abort(tx);
+                               continue;
+                       }
+                       zpios_print(run_args->file,
+                                   "Error in dmu_tx_assign(), %d", rc);
+                       dmu_tx_abort(tx);
+                       return rc;
+               }
+               break;
+       }
+
+//     if (run_args->flags & DMU_WRITE_ZC)
+//             flags |= DMU_WRITE_ZEROCOPY;
+
+       dmu_write(os, object, offset, size, buf, tx);
+       dmu_tx_commit(tx);
+
+       return 0;
+}
+
+static int
+zpios_dmu_read(run_args_t *run_args, objset_t *os, uint64_t object,
+              uint64_t offset, uint64_t size, void *buf)
+{
+       int flags = 0;
+
+//     if (run_args->flags & DMU_READ_ZC)
+//             flags |= DMU_READ_ZEROCOPY;
+
+       if (run_args->flags & DMU_READ_NOPF)
+               flags |= DMU_READ_NO_PREFETCH;
+
+       return dmu_read(os, object, offset, size, buf, flags);
+}
+
+static int
+zpios_thread_main(void *data)
+{
+       thread_data_t *thr = (thread_data_t *)data;
+       run_args_t *run_args = thr->run_args;
+       zpios_time_t t;
+       dmu_obj_t obj;
+       __u64 offset;
+       __u32 chunk_size;
+       zpios_region_t *region;
+       char *buf;
+       unsigned int random_int;
+       int chunk_noise = run_args->chunk_noise;
+       int chunk_noise_tmp = 0;
+       int thread_delay = run_args->thread_delay;
+       int thread_delay_tmp = 0;
+       int i, rc = 0;
+
+       if (chunk_noise) {
+               get_random_bytes(&random_int, sizeof(unsigned int));
+               chunk_noise_tmp = (random_int % (chunk_noise * 2))-chunk_noise;
+       }
+
+       /* It's OK to vmem_alloc() this memory because it will be copied
+        * in to the slab and pointers to the slab copy will be setup in
+        * the bio when the IO is submitted.  This of course is not ideal
+        * since we want a zero-copy IO path if possible.  It would be nice
+        * to have direct access to those slab entries.
+        */
+       chunk_size = run_args->chunk_size + chunk_noise_tmp;
+       buf = (char *)vmem_alloc(chunk_size, KM_SLEEP);
+       ASSERT(buf);
+
+       /* Trivial data verification pattern for now. */
+       if (run_args->flags & DMU_VERIFY)
+               memset(buf, 'z', chunk_size);
+
+       /* Write phase */
+       mutex_enter(&thr->lock);
+       thr->stats.wr_time.start = zpios_timespec_now();
+       mutex_exit(&thr->lock);
+
+       while (zpios_get_work_item(run_args, &obj, &offset,
+                                  &chunk_size, &region, DMU_WRITE)) {
+               if (thread_delay) {
+                       get_random_bytes(&random_int, sizeof(unsigned int));
+                       thread_delay_tmp = random_int % thread_delay;
+                       set_current_state(TASK_UNINTERRUPTIBLE);
+                       schedule_timeout(thread_delay_tmp); /* In jiffies */
+               }
+
+               t.start = zpios_timespec_now();
+               rc = zpios_dmu_write(run_args, obj.os, obj.obj,
+                                    offset, chunk_size, buf);
+               t.stop  = zpios_timespec_now();
+               t.delta = zpios_timespec_sub(t.stop, t.start);
+
+               if (rc) {
+                       zpios_print(run_args->file, "IO error while doing "
+                                   "dmu_write(): %d\n", rc);
+                       break;
+               }
+
+               mutex_enter(&thr->lock);
+               thr->stats.wr_data += chunk_size;
+               thr->stats.wr_chunks++;
+               thr->stats.wr_time.delta = zpios_timespec_add(
+                       thr->stats.wr_time.delta, t.delta);
+               mutex_exit(&thr->lock);
+
+               mutex_enter(&region->lock);
+               region->stats.wr_data += chunk_size;
+               region->stats.wr_chunks++;
+               region->stats.wr_time.delta = zpios_timespec_add(
+                       region->stats.wr_time.delta, t.delta);
+
+               /* First time region was accessed */
+               if (region->init_offset == offset)
+                       region->stats.wr_time.start = t.start;
+
+               mutex_exit(&region->lock);
+       }
+
+       mutex_enter(&run_args->lock_ctl);
+       run_args->threads_done++;
+       mutex_exit(&run_args->lock_ctl);
+
+       mutex_enter(&thr->lock);
+       thr->rc = rc;
+       thr->stats.wr_time.stop = zpios_timespec_now();
+       mutex_exit(&thr->lock);
+       wake_up(&run_args->waitq);
+
+       set_current_state(TASK_UNINTERRUPTIBLE);
+       schedule();
+
+       /* Check if we should exit */
+       mutex_enter(&thr->lock);
+       rc = thr->rc;
+       mutex_exit(&thr->lock);
+       if (rc)
+               goto out;
+
+       /* Read phase */
+       mutex_enter(&thr->lock);
+       thr->stats.rd_time.start = zpios_timespec_now();
+       mutex_exit(&thr->lock);
+
+       while (zpios_get_work_item(run_args, &obj, &offset,
+                                  &chunk_size, &region, DMU_READ)) {
+               if (thread_delay) {
+                       get_random_bytes(&random_int, sizeof(unsigned int));
+                       thread_delay_tmp = random_int % thread_delay;
+                       set_current_state(TASK_UNINTERRUPTIBLE);
+                       schedule_timeout(thread_delay_tmp); /* In jiffies */
+               }
+
+               if (run_args->flags & DMU_VERIFY)
+                       memset(buf, 0, chunk_size);
+
+               t.start = zpios_timespec_now();
+               rc = zpios_dmu_read(run_args, obj.os, obj.obj,
+                                   offset, chunk_size, buf);
+               t.stop  = zpios_timespec_now();
+               t.delta = zpios_timespec_sub(t.stop, t.start);
+
+               if (rc) {
+                       zpios_print(run_args->file, "IO error while doing "
+                                   "dmu_read(): %d\n", rc);
+                       break;
+               }
+
+               /* Trivial data verification, expensive! */
+               if (run_args->flags & DMU_VERIFY) {
+                       for (i = 0; i < chunk_size; i++) {
+                               if (buf[i] != 'z') {
+                                       zpios_print(run_args->file,
+                                                   "IO verify error: %d/%d/%d\n",
+                                                   (int)obj.obj, (int)offset,
+                                                   (int)chunk_size);
+                                       break;
+                               }
+                       }
+               }
+
+               mutex_enter(&thr->lock);
+               thr->stats.rd_data += chunk_size;
+               thr->stats.rd_chunks++;
+               thr->stats.rd_time.delta = zpios_timespec_add(
+                       thr->stats.rd_time.delta, t.delta);
+               mutex_exit(&thr->lock);
+
+               mutex_enter(&region->lock);
+               region->stats.rd_data += chunk_size;
+               region->stats.rd_chunks++;
+               region->stats.rd_time.delta = zpios_timespec_add(
+                       region->stats.rd_time.delta, t.delta);
+
+               /* First time region was accessed */
+               if (region->init_offset == offset)
+                       region->stats.rd_time.start = t.start;
+
+               mutex_exit(&region->lock);
+       }
+
+       mutex_enter(&run_args->lock_ctl);
+       run_args->threads_done++;
+       mutex_exit(&run_args->lock_ctl);
+
+       mutex_enter(&thr->lock);
+       thr->rc = rc;
+       thr->stats.rd_time.stop = zpios_timespec_now();
+       mutex_exit(&thr->lock);
+       wake_up(&run_args->waitq);
+
+out:
+       vmem_free(buf, chunk_size);
+       do_exit(0);
+
+       return rc; /* Unreachable, due to do_exit() */
+}
+
+static int
+zpios_thread_done(run_args_t *run_args)
+{
+       ASSERT(run_args->threads_done <= run_args->thread_count);
+       return (run_args->threads_done == run_args->thread_count);
+}
+
+static int
+zpios_threads_run(run_args_t *run_args)
+{
+       struct task_struct *tsk, **tsks;
+       thread_data_t *thr = NULL;
+       zpios_time_t *tt = &(run_args->stats.total_time);
+       zpios_time_t *tw = &(run_args->stats.wr_time);
+       zpios_time_t *tr = &(run_args->stats.rd_time);
+       int i, rc = 0, tc = run_args->thread_count;
+
+       tsks = kmem_zalloc(sizeof(struct task_struct *) * tc, KM_SLEEP);
+       if (tsks == NULL) {
+               rc = -ENOMEM;
+               goto cleanup2;
+       }
+
+       run_args->threads = kmem_zalloc(sizeof(thread_data_t *) * tc, KM_SLEEP);
+       if (run_args->threads == NULL) {
+               rc = -ENOMEM;
+               goto cleanup;
+       }
+
+       init_waitqueue_head(&run_args->waitq);
+       run_args->threads_done = 0;
+
+       /* Create all the needed threads which will sleep until awoken */
+       for (i = 0; i < tc; i++) {
+               thr = kmem_zalloc(sizeof(thread_data_t), KM_SLEEP);
+               if (thr == NULL) {
+                       rc = -ENOMEM;
+                       goto taskerr;
+               }
+
+               thr->thread_no = i;
+               thr->run_args = run_args;
+               thr->rc = 0;
+               mutex_init(&thr->lock, NULL, MUTEX_DEFAULT, NULL);
+               run_args->threads[i] = thr;
+
+               tsk = kthread_create(zpios_thread_main, (void *)thr,
+                                    "%s/%d", "zpios_io", i);
+               if (IS_ERR(tsk)) {
+                       rc = -EINVAL;
+                       goto taskerr;
+               }
+
+               tsks[i] = tsk;
+       }
+
+       tt->start = zpios_timespec_now();
+
+       /* Wake up all threads for write phase */
+       (void)zpios_upcall(run_args->pre, PHASE_PRE_WRITE, run_args, 0);
+       for (i = 0; i < tc; i++)
+               wake_up_process(tsks[i]);
+
+       /* Wait for write phase to complete */
+       tw->start = zpios_timespec_now();
+       wait_event(run_args->waitq, zpios_thread_done(run_args));
+       tw->stop = zpios_timespec_now();
+       (void)zpios_upcall(run_args->post, PHASE_POST_WRITE, run_args, rc);
+
+       for (i = 0; i < tc; i++) {
+               thr = run_args->threads[i];
+
+               mutex_enter(&thr->lock);
+
+               if (!rc && thr->rc)
+                       rc = thr->rc;
+
+               run_args->stats.wr_data += thr->stats.wr_data;
+               run_args->stats.wr_chunks += thr->stats.wr_chunks;
+               mutex_exit(&thr->lock);
+       }
+
+       if (rc) {
+               /* Wake up all threads and tell them to exit */
+               for (i = 0; i < tc; i++) {
+                       mutex_enter(&thr->lock);
+                       thr->rc = rc;
+                       mutex_exit(&thr->lock);
+
+                       wake_up_process(tsks[i]);
+               }
+               goto out;
+       }
+
+       mutex_enter(&run_args->lock_ctl);
+       ASSERT(run_args->threads_done == run_args->thread_count);
+       run_args->threads_done = 0;
+       mutex_exit(&run_args->lock_ctl);
+
+       /* Wake up all threads for read phase */
+       (void)zpios_upcall(run_args->pre, PHASE_PRE_READ, run_args, 0);
+        for (i = 0; i < tc; i++)
+               wake_up_process(tsks[i]);
+
+       /* Wait for read phase to complete */
+       tr->start = zpios_timespec_now();
+       wait_event(run_args->waitq, zpios_thread_done(run_args));
+       tr->stop = zpios_timespec_now();
+       (void)zpios_upcall(run_args->post, PHASE_POST_READ, run_args, rc);
+
+       for (i = 0; i < tc; i++) {
+               thr = run_args->threads[i];
+
+               mutex_enter(&thr->lock);
+
+               if (!rc && thr->rc)
+                       rc = thr->rc;
+
+               run_args->stats.rd_data += thr->stats.rd_data;
+               run_args->stats.rd_chunks += thr->stats.rd_chunks;
+               mutex_exit(&thr->lock);
+       }
+out:
+       tt->stop  = zpios_timespec_now();
+       tt->delta = zpios_timespec_sub(tt->stop, tt->start);
+       tw->delta = zpios_timespec_sub(tw->stop, tw->start);
+       tr->delta = zpios_timespec_sub(tr->stop, tr->start);
+
+cleanup:
+       kmem_free(tsks, sizeof(struct task_struct *) * tc);
+cleanup2:
+       /* Returns first encountered thread error (if any) */
+       return rc;
+
+taskerr:
+       /* Destroy all threads that were created successfully */
+       for (i = 0; i < tc; i++)
+               if (tsks[i] != NULL)
+                       (void) kthread_stop(tsks[i]);
+
+       goto cleanup;
+}
+
+static int
+zpios_do_one_run(struct file *file, zpios_cmd_t *kcmd,
+                 int data_size, void *data)
+{
+       run_args_t *run_args = { 0 };
+       zpios_stats_t *stats = (zpios_stats_t *)data;
+       int i, n, m, size, rc;
+
+       if ((!kcmd->cmd_chunk_size) || (!kcmd->cmd_region_size) ||
+           (!kcmd->cmd_thread_count) || (!kcmd->cmd_region_count)) {
+               zpios_print(file, "Invalid chunk_size, region_size, "
+                           "thread_count, or region_count, %d\n", -EINVAL);
+               return -EINVAL;
+       }
+
+       if (!(kcmd->cmd_flags & DMU_WRITE) ||
+           !(kcmd->cmd_flags & DMU_READ)) {
+               zpios_print(file, "Invalid flags, minimally DMU_WRITE "
+                           "and DMU_READ must be set, %d\n", -EINVAL);
+               return -EINVAL;
+       }
+
+       if ((kcmd->cmd_flags & (DMU_WRITE_ZC | DMU_READ_ZC)) &&
+           (kcmd->cmd_flags & DMU_VERIFY)) {
+               zpios_print(file, "Invalid flags, DMU_*_ZC incompatible "
+                           "with DMU_VERIFY, used for performance analysis "
+                           "only, %d\n", -EINVAL);
+               return -EINVAL;
+       }
+
+       /* Opaque data on return contains structs of the following form:
+        *
+        * zpios_stat_t stats[];
+        * stats[0]     = run_args->stats;
+        * stats[1-N]   = threads[N]->stats;
+        * stats[N+1-M] = regions[M]->stats;
+        *
+        * Where N is the number of threads, and M is the number of regions.
+        */
+       size = (sizeof(zpios_stats_t) +
+              (kcmd->cmd_thread_count * sizeof(zpios_stats_t)) +
+              (kcmd->cmd_region_count * sizeof(zpios_stats_t)));
+       if (data_size < size) {
+               zpios_print(file, "Invalid size, command data buffer "
+                           "size too small, (%d < %d)\n", data_size, size);
+               return -ENOSPC;
+       }
+
+       rc = zpios_setup_run(&run_args, kcmd, file);
+       if (rc)
+               return rc;
+
+        rc = zpios_threads_run(run_args);
+       zpios_remove_objset(run_args);
+       if (rc)
+               goto cleanup;
+
+       if (stats) {
+               n = 1;
+               m = 1 + kcmd->cmd_thread_count;
+               stats[0] = run_args->stats;
+
+               for (i = 0; i < kcmd->cmd_thread_count; i++)
+                       stats[n+i] = run_args->threads[i]->stats;
+
+               for (i = 0; i < kcmd->cmd_region_count; i++)
+                       stats[m+i] = run_args->regions[i].stats;
+       }
+
+cleanup:
+        zpios_cleanup_run(run_args);
+
+       (void)zpios_upcall(kcmd->cmd_post, PHASE_POST_RUN, run_args, 0);
+
+       return rc;
+}
+
+static int
+zpios_open(struct inode *inode, struct file *file)
+{
+       unsigned int minor = iminor(inode);
+       zpios_info_t *info;
+
+       if (minor >= ZPIOS_MINORS)
+               return -ENXIO;
+
+       info = (zpios_info_t *)kmem_alloc(sizeof(*info), KM_SLEEP);
+       if (info == NULL)
+               return -ENOMEM;
+
+       spin_lock_init(&info->info_lock);
+       info->info_size = ZPIOS_INFO_BUFFER_SIZE;
+       info->info_buffer = (char *)vmem_alloc(ZPIOS_INFO_BUFFER_SIZE,KM_SLEEP);
+       if (info->info_buffer == NULL) {
+               kmem_free(info, sizeof(*info));
+               return -ENOMEM;
+       }
+
+       info->info_head = info->info_buffer;
+       file->private_data = (void *)info;
+
+        return 0;
+}
+
+static int
+zpios_release(struct inode *inode, struct file *file)
+{
+       unsigned int minor = iminor(inode);
+       zpios_info_t *info = (zpios_info_t *)file->private_data;
+
+       if (minor >= ZPIOS_MINORS)
+               return -ENXIO;
+
+       ASSERT(info);
+       ASSERT(info->info_buffer);
+
+       vmem_free(info->info_buffer, ZPIOS_INFO_BUFFER_SIZE);
+       kmem_free(info, sizeof(*info));
+
+       return 0;
+}
+
+static int
+zpios_buffer_clear(struct file *file, zpios_cfg_t *kcfg, unsigned long arg)
+{
+       zpios_info_t *info = (zpios_info_t *)file->private_data;
+
+       ASSERT(info);
+       ASSERT(info->info_buffer);
+
+       spin_lock(&info->info_lock);
+       memset(info->info_buffer, 0, info->info_size);
+       info->info_head = info->info_buffer;
+       spin_unlock(&info->info_lock);
+
+       return 0;
+}
+
+static int
+zpios_buffer_size(struct file *file, zpios_cfg_t *kcfg, unsigned long arg)
+{
+       zpios_info_t *info = (zpios_info_t *)file->private_data;
+       char *buf;
+       int min, size, rc = 0;
+
+       ASSERT(info);
+       ASSERT(info->info_buffer);
+
+       spin_lock(&info->info_lock);
+       if (kcfg->cfg_arg1 > 0) {
+
+               size = kcfg->cfg_arg1;
+               buf = (char *)vmem_alloc(size, KM_SLEEP);
+               if (buf == NULL) {
+                       rc = -ENOMEM;
+                       goto out;
+               }
+
+               /* Zero fill and truncate contents when coping buffer */
+               min = ((size < info->info_size) ? size : info->info_size);
+               memset(buf, 0, size);
+               memcpy(buf, info->info_buffer, min);
+               vmem_free(info->info_buffer, info->info_size);
+               info->info_size = size;
+               info->info_buffer = buf;
+               info->info_head = info->info_buffer;
+       }
+
+       kcfg->cfg_rc1 = info->info_size;
+
+       if (copy_to_user((struct zpios_cfg_t __user *)arg, kcfg, sizeof(*kcfg)))
+               rc = -EFAULT;
+out:
+       spin_unlock(&info->info_lock);
+
+       return rc;
+}
+
+static int
+zpios_ioctl_cfg(struct file *file, unsigned long arg)
+{
+       zpios_cfg_t kcfg;
+       int rc = 0;
+
+       if (copy_from_user(&kcfg, (zpios_cfg_t *)arg, sizeof(kcfg)))
+               return -EFAULT;
+
+       if (kcfg.cfg_magic != ZPIOS_CFG_MAGIC) {
+               zpios_print(file, "Bad config magic 0x%x != 0x%x\n",
+                           kcfg.cfg_magic, ZPIOS_CFG_MAGIC);
+               return -EINVAL;
+       }
+
+       switch (kcfg.cfg_cmd) {
+               case ZPIOS_CFG_BUFFER_CLEAR:
+                       /* cfg_arg1 - Unused
+                        * cfg_rc1  - Unused
+                        */
+                       rc = zpios_buffer_clear(file, &kcfg, arg);
+                       break;
+               case ZPIOS_CFG_BUFFER_SIZE:
+                       /* cfg_arg1 - 0 - query size; >0 resize
+                        * cfg_rc1  - Set to current buffer size
+                        */
+                       rc = zpios_buffer_size(file, &kcfg, arg);
+                       break;
+               default:
+                       zpios_print(file, "Bad config command %d\n",
+                                   kcfg.cfg_cmd);
+                       rc = -EINVAL;
+                       break;
+       }
+
+       return rc;
+}
+
+static int
+zpios_ioctl_cmd(struct file *file, unsigned long arg)
+{
+       zpios_cmd_t *kcmd;
+       void *data = NULL;
+       int rc = -EINVAL;
+
+       kcmd = kmem_alloc(sizeof(zpios_cmd_t), KM_SLEEP);
+       if (kcmd == NULL) {
+               zpios_print(file, "Unable to kmem_alloc() %ld byte for "
+                           "zpios_cmd_t\n", (long int)sizeof(zpios_cmd_t));
+               return -ENOMEM;
+       }
+
+       rc = copy_from_user(kcmd, (zpios_cfg_t *)arg, sizeof(zpios_cmd_t));
+       if (rc) {
+               zpios_print(file, "Unable to copy command structure "
+                           "from user to kernel memory, %d\n", rc);
+               goto out_cmd;
+       }
+
+       if (kcmd->cmd_magic != ZPIOS_CMD_MAGIC) {
+               zpios_print(file, "Bad command magic 0x%x != 0x%x\n",
+                           kcmd->cmd_magic, ZPIOS_CFG_MAGIC);
+               rc = -EINVAL;
+               goto out_cmd;
+       }
+
+       /* Allocate memory for any opaque data the caller needed to pass on */
+       if (kcmd->cmd_data_size > 0) {
+               data = (void *)vmem_alloc(kcmd->cmd_data_size, KM_SLEEP);
+               if (data == NULL) {
+                       zpios_print(file, "Unable to vmem_alloc() %ld "
+                                   "bytes for data buffer\n",
+                                   (long)kcmd->cmd_data_size);
+                       rc = -ENOMEM;
+                       goto out_cmd;
+               }
+
+               rc = copy_from_user(data, (void *)(arg + offsetof(zpios_cmd_t,
+                                   cmd_data_str)), kcmd->cmd_data_size);
+               if (rc) {
+                       zpios_print(file, "Unable to copy data buffer "
+                                   "from user to kernel memory, %d\n", rc);
+                       goto out_data;
+               }
+       }
+
+       rc = zpios_do_one_run(file, kcmd, kcmd->cmd_data_size, data);
+
+       if (data != NULL) {
+               /* If the test failed do not print out the stats */
+               if (rc)
+                       goto out_data;
+
+               rc = copy_to_user((void *)(arg + offsetof(zpios_cmd_t,
+                                 cmd_data_str)), data, kcmd->cmd_data_size);
+               if (rc) {
+                       zpios_print(file, "Unable to copy data buffer "
+                                   "from kernel to user memory, %d\n", rc);
+                       rc = -EFAULT;
+               }
+
+out_data:
+               vmem_free(data, kcmd->cmd_data_size);
+       }
+out_cmd:
+       kmem_free(kcmd, sizeof(zpios_cmd_t));
+
+       return rc;
+}
+
+static int
+zpios_ioctl(struct inode *inode, struct file *file,
+            unsigned int cmd, unsigned long arg)
+{
+        unsigned int minor = iminor(inode);
+       int rc = 0;
+
+       /* Ignore tty ioctls */
+       if ((cmd & 0xffffff00) == ((int)'T') << 8)
+               return -ENOTTY;
+
+       if (minor >= ZPIOS_MINORS)
+               return -ENXIO;
+
+       switch (cmd) {
+               case ZPIOS_CFG:
+                       rc = zpios_ioctl_cfg(file, arg);
+                       break;
+               case ZPIOS_CMD:
+                       rc = zpios_ioctl_cmd(file, arg);
+                       break;
+               default:
+                       zpios_print(file, "Bad ioctl command %d\n", cmd);
+                       rc = -EINVAL;
+                       break;
+       }
+
+       return rc;
+}
+
+#ifdef CONFIG_COMPAT
+/* Compatibility handler for ioctls from 32-bit ELF binaries */
+static long
+zpios_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+       return zpios_ioctl(file->f_dentry->d_inode, file, cmd, arg);
+}
+#endif /* CONFIG_COMPAT */
+
+/* I'm not sure why you would want to write in to this buffer from
+ * user space since its principle use is to pass test status info
+ * back to the user space, but I don't see any reason to prevent it.
+ */
+static ssize_t
+zpios_write(struct file *file, const char __user *buf,
+            size_t count, loff_t *ppos)
+{
+        unsigned int minor = iminor(file->f_dentry->d_inode);
+       zpios_info_t *info = (zpios_info_t *)file->private_data;
+       int rc = 0;
+
+       if (minor >= ZPIOS_MINORS)
+               return -ENXIO;
+
+       ASSERT(info);
+       ASSERT(info->info_buffer);
+
+       spin_lock(&info->info_lock);
+
+       /* Write beyond EOF */
+       if (*ppos >= info->info_size) {
+               rc = -EFBIG;
+               goto out;
+       }
+
+       /* Resize count if beyond EOF */
+       if (*ppos + count > info->info_size)
+               count = info->info_size - *ppos;
+
+       if (copy_from_user(info->info_buffer, buf, count)) {
+               rc = -EFAULT;
+               goto out;
+       }
+
+       *ppos += count;
+       rc = count;
+out:
+       spin_unlock(&info->info_lock);
+       return rc;
+}
+
+static ssize_t
+zpios_read(struct file *file, char __user *buf,
+                       size_t count, loff_t *ppos)
+{
+        unsigned int minor = iminor(file->f_dentry->d_inode);
+       zpios_info_t *info = (zpios_info_t *)file->private_data;
+       int rc = 0;
+
+       if (minor >= ZPIOS_MINORS)
+               return -ENXIO;
+
+       ASSERT(info);
+       ASSERT(info->info_buffer);
+
+       spin_lock(&info->info_lock);
+
+       /* Read beyond EOF */
+       if (*ppos >= info->info_size)
+               goto out;
+
+       /* Resize count if beyond EOF */
+       if (*ppos + count > info->info_size)
+               count = info->info_size - *ppos;
+
+       if (copy_to_user(buf, info->info_buffer + *ppos, count)) {
+               rc = -EFAULT;
+               goto out;
+       }
+
+       *ppos += count;
+       rc = count;
+out:
+       spin_unlock(&info->info_lock);
+       return rc;
+}
+
+static loff_t zpios_seek(struct file *file, loff_t offset, int origin)
+{
+        unsigned int minor = iminor(file->f_dentry->d_inode);
+       zpios_info_t *info = (zpios_info_t *)file->private_data;
+       int rc = -EINVAL;
+
+       if (minor >= ZPIOS_MINORS)
+               return -ENXIO;
+
+       ASSERT(info);
+       ASSERT(info->info_buffer);
+
+       spin_lock(&info->info_lock);
+
+       switch (origin) {
+       case 0: /* SEEK_SET - No-op just do it */
+               break;
+       case 1: /* SEEK_CUR - Seek from current */
+               offset = file->f_pos + offset;
+               break;
+       case 2: /* SEEK_END - Seek from end */
+               offset = info->info_size + offset;
+               break;
+       }
+
+       if (offset >= 0) {
+               file->f_pos = offset;
+               file->f_version = 0;
+               rc = offset;
+       }
+
+       spin_unlock(&info->info_lock);
+
+       return rc;
+}
+
+static struct cdev zpios_cdev;
+static struct file_operations zpios_fops = {
+       .owner          = THIS_MODULE,
+       .open           = zpios_open,
+       .release        = zpios_release,
+       .ioctl          = zpios_ioctl,
+#ifdef CONFIG_COMPAT
+       .compat_ioctl   = zpios_compat_ioctl,
+#endif
+       .read           = zpios_read,
+       .write          = zpios_write,
+       .llseek         = zpios_seek,
+};
+
+static int
+zpios_init(void)
+{
+       dev_t dev;
+       int rc;
+
+       dev = MKDEV(ZPIOS_MAJOR, 0);
+       if ((rc = register_chrdev_region(dev, ZPIOS_MINORS, ZPIOS_NAME)))
+               goto error;
+
+       /* Support for registering a character driver */
+       cdev_init(&zpios_cdev, &zpios_fops);
+       zpios_cdev.owner = THIS_MODULE;
+       kobject_set_name(&zpios_cdev.kobj, ZPIOS_NAME);
+       if ((rc = cdev_add(&zpios_cdev, dev, ZPIOS_MINORS))) {
+               printk(KERN_ERR "ZPIOS: Error adding cdev, %d\n", rc);
+               kobject_put(&zpios_cdev.kobj);
+               unregister_chrdev_region(dev, ZPIOS_MINORS);
+               goto error;
+       }
+
+       /* Support for udev make driver info available in sysfs */
+       zpios_class = spl_class_create(THIS_MODULE, ZPIOS_NAME);
+       if (IS_ERR(zpios_class)) {
+               rc = PTR_ERR(zpios_class);
+               printk(KERN_ERR "ZPIOS: Error creating zpios class, %d\n", rc);
+               cdev_del(&zpios_cdev);
+               unregister_chrdev_region(dev, ZPIOS_MINORS);
+               goto error;
+       }
+
+       zpios_device = spl_device_create(zpios_class, NULL,
+                                        dev, NULL, ZPIOS_NAME);
+       return 0;
+error:
+       printk(KERN_ERR "ZPIOS: Error registering zpios device, %d\n", rc);
+       return rc;
+}
+
+static int
+zpios_fini(void)
+{
+       dev_t dev = MKDEV(ZPIOS_MAJOR, 0);
+
+       spl_device_destroy(zpios_class, zpios_device, dev);
+       spl_class_destroy(zpios_class);
+       cdev_del(&zpios_cdev);
+       unregister_chrdev_region(dev, ZPIOS_MINORS);
+
+       return 0;
+}
+
+spl_module_init(zpios_init);
+spl_module_exit(zpios_fini);
+
+MODULE_AUTHOR("LLNL / Sun");
+MODULE_DESCRIPTION("Kernel PIOS implementation");
+MODULE_LICENSE("GPL");
diff --git a/module/zpios/zpios.c b/module/zpios/zpios.c
deleted file mode 100644 (file)
index 3edc161..0000000
+++ /dev/null
@@ -1,1331 +0,0 @@
-/*****************************************************************************\
- *  ZPIOS is a heavily modified version of the original PIOS test code.
- *  It is designed to have the test code running in the Linux kernel
- *  against ZFS while still being flexibly controled from user space.
- *
- *  Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC.
- *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
- *  Written by Brian Behlendorf <behlendorf1@llnl.gov>.
- *  LLNL-CODE-403049
- *
- *  Original PIOS Test Code
- *  Copyright (C) 2004 Cluster File Systems, Inc.
- *  Written by Peter Braam <braam@clusterfs.com>
- *             Atul Vidwansa <atul@clusterfs.com>
- *             Milind Dumbare <milind@clusterfs.com>
- *
- *  This file is part of ZFS on Linux.
- *  For details, see <http://github.com/behlendorf/zfs/>.
- *
- *  ZPIOS is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- *
- *  ZPIOS is distributed in the hope that it will be useful, but WITHOUT
- *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- *  for more details.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with ZPIOS.  If not, see <http://www.gnu.org/licenses/>.
-\*****************************************************************************/
-
-#include <sys/zfs_context.h>
-#include <sys/dmu.h>
-#include <sys/txg.h>
-#include <linux/cdev.h>
-#include "zpios-internal.h"
-
-
-static spl_class *zpios_class;
-static spl_device *zpios_device;
-static char *zpios_tag = "zpios_tag";
-
-static
-int zpios_upcall(char *path, char *phase, run_args_t *run_args, int rc)
-{
-       /* This is stack heavy but it should be OK since we are only
-        * making the upcall between tests when the stack is shallow.
-        */
-        char id[16], chunk_size[16], region_size[16], thread_count[16];
-       char region_count[16], offset[16], region_noise[16], chunk_noise[16];
-        char thread_delay[16], flags[16], result[8];
-        char *argv[16], *envp[4];
-
-       if ((path == NULL) || (strlen(path) == 0))
-               return -ENOENT;
-
-       snprintf(id, 15, "%d", run_args->id);
-       snprintf(chunk_size, 15, "%lu", (long unsigned)run_args->chunk_size);
-        snprintf(region_size, 15, "%lu",(long unsigned) run_args->region_size);
-       snprintf(thread_count, 15, "%u", run_args->thread_count);
-       snprintf(region_count, 15, "%u", run_args->region_count);
-       snprintf(offset, 15, "%lu", (long unsigned)run_args->offset);
-       snprintf(region_noise, 15, "%u", run_args->region_noise);
-       snprintf(chunk_noise, 15, "%u", run_args->chunk_noise);
-       snprintf(thread_delay, 15, "%u", run_args->thread_delay);
-       snprintf(flags, 15, "0x%x", run_args->flags);
-       snprintf(result, 7, "%d", rc);
-
-       /* Passing 15 args to registered pre/post upcall */
-        argv[0] = path;
-       argv[1] = phase;
-       argv[2] = strlen(run_args->log) ? run_args->log : "<none>";
-       argv[3] = id;
-       argv[4] = run_args->pool;
-       argv[5] = chunk_size;
-       argv[6] = region_size;
-       argv[7] = thread_count;
-       argv[8] = region_count;
-       argv[9] = offset;
-       argv[10] = region_noise;
-       argv[11] = chunk_noise;
-       argv[12] = thread_delay;
-       argv[13] = flags;
-       argv[14] = result;
-       argv[15] = NULL;
-
-       /* Passing environment for user space upcall */
-        envp[0] = "HOME=/";
-        envp[1] = "TERM=linux";
-        envp[2] = "PATH=/sbin:/usr/sbin:/bin:/usr/bin";
-        envp[3] = NULL;
-
-        return call_usermodehelper(path, argv, envp, 1);
-}
-
-static uint64_t
-zpios_dmu_object_create(run_args_t *run_args, objset_t *os)
-{
-       struct dmu_tx *tx;
-        uint64_t obj = 0ULL;
-       int rc;
-
-       tx = dmu_tx_create(os);
-       dmu_tx_hold_write(tx, DMU_NEW_OBJECT, 0, OBJ_SIZE);
-       rc = dmu_tx_assign(tx, TXG_WAIT);
-       if (rc) {
-               zpios_print(run_args->file,
-                           "dmu_tx_assign() failed: %d\n", rc);
-               dmu_tx_abort(tx);
-               return obj;
-       }
-
-       obj = dmu_object_alloc(os, DMU_OT_UINT64_OTHER, 0,
-                              DMU_OT_NONE, 0, tx);
-       rc = dmu_object_set_blocksize(os, obj, 128ULL << 10, 0, tx);
-       if (rc) {
-               zpios_print(run_args->file,
-                           "dmu_object_set_blocksize() failed: %d\n", rc);
-               dmu_tx_abort(tx);
-               return obj;
-       }
-
-       dmu_tx_commit(tx);
-
-       return obj;
-}
-
-static int
-zpios_dmu_object_free(run_args_t *run_args, objset_t *os, uint64_t obj)
-{
-       struct dmu_tx *tx;
-       int rc;
-
-       tx = dmu_tx_create(os);
-        dmu_tx_hold_free(tx, obj, 0, DMU_OBJECT_END);
-       rc = dmu_tx_assign(tx, TXG_WAIT);
-       if (rc) {
-               zpios_print(run_args->file,
-                           "dmu_tx_assign() failed: %d\n", rc);
-               dmu_tx_abort(tx);
-               return rc;
-       }
-
-       rc = dmu_object_free(os, obj, tx);
-       if (rc) {
-               zpios_print(run_args->file,
-                           "dmu_object_free() failed: %d\n", rc);
-               dmu_tx_abort(tx);
-               return rc;
-       }
-
-       dmu_tx_commit(tx);
-
-       return 0;
-}
-
-static int
-zpios_dmu_setup(run_args_t *run_args)
-{
-       zpios_time_t *t = &(run_args->stats.cr_time);
-       objset_t *os;
-       char name[32];
-       uint64_t obj = 0ULL;
-       int i, rc = 0, rc2;
-
-       (void)zpios_upcall(run_args->pre, PHASE_PRE_CREATE, run_args, 0);
-       t->start = zpios_timespec_now();
-
-       (void)snprintf(name, 32, "%s/id_%d", run_args->pool, run_args->id);
-       rc = dmu_objset_create(name, DMU_OST_OTHER, 0, NULL, NULL);
-       if (rc) {
-               zpios_print(run_args->file, "Error dmu_objset_create(%s, ...) "
-                           "failed: %d\n", name, rc);
-               goto out;
-       }
-
-        rc = dmu_objset_own(name, DMU_OST_OTHER, 0, zpios_tag, &os);
-        if (rc) {
-               zpios_print(run_args->file, "Error dmu_objset_own(%s, ...) "
-                           "failed: %d\n", name, rc);
-               goto out_destroy;
-        }
-
-       if (!(run_args->flags & DMU_FPP)) {
-               obj = zpios_dmu_object_create(run_args, os);
-               if (obj == 0) {
-                       rc = -EBADF;
-                       zpios_print(run_args->file, "Error zpios_dmu_"
-                                   "object_create() failed, %d\n", rc);
-                       goto out_destroy;
-               }
-       }
-
-       for (i = 0; i < run_args->region_count; i++) {
-               zpios_region_t *region;
-
-               region = &run_args->regions[i];
-               mutex_init(&region->lock, NULL, MUTEX_DEFAULT, NULL);
-
-               if (run_args->flags & DMU_FPP) {
-                       /* File per process */
-                       region->obj.os  = os;
-                       region->obj.obj = zpios_dmu_object_create(run_args, os);
-                       ASSERT(region->obj.obj > 0); /* XXX - Handle this */
-                       region->wr_offset   = run_args->offset;
-                       region->rd_offset   = run_args->offset;
-                       region->init_offset = run_args->offset;
-                       region->max_offset  = run_args->offset +
-                                             run_args->region_size;
-               } else {
-                       /* Single shared file */
-                       region->obj.os  = os;
-                       region->obj.obj = obj;
-                       region->wr_offset   = run_args->offset * i;
-                       region->rd_offset   = run_args->offset * i;
-                       region->init_offset = run_args->offset * i;
-                       region->max_offset  = run_args->offset *
-                                             i + run_args->region_size;
-               }
-       }
-
-       run_args->os = os;
-out_destroy:
-       if (rc) {
-               rc2 = dmu_objset_destroy(name, B_FALSE);
-               if (rc2)
-                       zpios_print(run_args->file, "Error dmu_objset_destroy"
-                                   "(%s, ...) failed: %d\n", name, rc2);
-       }
-out:
-       t->stop  = zpios_timespec_now();
-       t->delta = zpios_timespec_sub(t->stop, t->start);
-       (void)zpios_upcall(run_args->post, PHASE_POST_CREATE, run_args, rc);
-
-       return rc;
-}
-
-static int
-zpios_setup_run(run_args_t **run_args, zpios_cmd_t *kcmd, struct file *file)
-{
-       run_args_t *ra;
-       int rc, size;
-
-       size = sizeof(*ra) + kcmd->cmd_region_count * sizeof(zpios_region_t);
-
-       ra = vmem_zalloc(size, KM_SLEEP);
-       if (ra == NULL) {
-               zpios_print(file, "Unable to vmem_zalloc() %d bytes "
-                           "for regions\n", size);
-               return -ENOMEM;
-       }
-
-       *run_args = ra;
-       strncpy(ra->pool, kcmd->cmd_pool, ZPIOS_NAME_SIZE - 1);
-       strncpy(ra->pre, kcmd->cmd_pre, ZPIOS_PATH_SIZE - 1);
-       strncpy(ra->post, kcmd->cmd_post, ZPIOS_PATH_SIZE - 1);
-       strncpy(ra->log, kcmd->cmd_log, ZPIOS_PATH_SIZE - 1);
-       ra->id              = kcmd->cmd_id;
-       ra->chunk_size      = kcmd->cmd_chunk_size;
-       ra->thread_count    = kcmd->cmd_thread_count;
-       ra->region_count    = kcmd->cmd_region_count;
-       ra->region_size     = kcmd->cmd_region_size;
-       ra->offset          = kcmd->cmd_offset;
-       ra->region_noise    = kcmd->cmd_region_noise;
-       ra->chunk_noise     = kcmd->cmd_chunk_noise;
-       ra->thread_delay    = kcmd->cmd_thread_delay;
-       ra->flags           = kcmd->cmd_flags;
-       ra->stats.wr_data   = 0;
-       ra->stats.wr_chunks = 0;
-       ra->stats.rd_data   = 0;
-       ra->stats.rd_chunks = 0;
-       ra->region_next     = 0;
-       ra->file            = file;
-        mutex_init(&ra->lock_work, NULL, MUTEX_DEFAULT, NULL);
-        mutex_init(&ra->lock_ctl, NULL, MUTEX_DEFAULT, NULL);
-
-       (void)zpios_upcall(ra->pre, PHASE_PRE_RUN, ra, 0);
-
-       rc = zpios_dmu_setup(ra);
-       if (rc) {
-               mutex_destroy(&ra->lock_ctl);
-               mutex_destroy(&ra->lock_work);
-               vmem_free(ra, size);
-               *run_args = NULL;
-       }
-
-       return rc;
-}
-
-static int
-zpios_get_work_item(run_args_t *run_args, dmu_obj_t *obj, __u64 *offset,
-                   __u32 *chunk_size, zpios_region_t **region, __u32 flags)
-{
-       int i, j, count = 0;
-       unsigned int random_int;
-
-       get_random_bytes(&random_int, sizeof(unsigned int));
-
-       mutex_enter(&run_args->lock_work);
-       i = run_args->region_next;
-
-       /* XXX: I don't much care for this chunk selection mechansim
-        * there's the potential to burn a lot of time here doing nothing
-        * useful while holding the global lock.  This could give some
-        * misleading performance results.  I'll fix it latter.
-        */
-       while (count < run_args->region_count) {
-               __u64 *rw_offset;
-               zpios_time_t *rw_time;
-
-               j = i % run_args->region_count;
-               *region = &(run_args->regions[j]);
-
-               if (flags & DMU_WRITE) {
-                       rw_offset = &((*region)->wr_offset);
-                       rw_time = &((*region)->stats.wr_time);
-               } else {
-                       rw_offset = &((*region)->rd_offset);
-                       rw_time = &((*region)->stats.rd_time);
-               }
-
-               /* test if region is fully written */
-               if (*rw_offset + *chunk_size > (*region)->max_offset) {
-                       i++;
-                       count++;
-
-                       if (unlikely(rw_time->stop.ts_sec == 0) &&
-                           unlikely(rw_time->stop.ts_nsec == 0))
-                               rw_time->stop = zpios_timespec_now();
-
-                       continue;
-               }
-
-               *offset = *rw_offset;
-               *obj = (*region)->obj;
-               *rw_offset += *chunk_size;
-
-               /* update ctl structure */
-               if (run_args->region_noise) {
-                       get_random_bytes(&random_int, sizeof(unsigned int));
-                       run_args->region_next += random_int % run_args->region_noise;
-               } else {
-                       run_args->region_next++;
-               }
-
-               mutex_exit(&run_args->lock_work);
-               return 1;
-       }
-
-       /* nothing left to do */
-       mutex_exit(&run_args->lock_work);
-
-       return 0;
-}
-
-static void
-zpios_remove_objset(run_args_t *run_args)
-{
-       zpios_time_t *t = &(run_args->stats.rm_time);
-       zpios_region_t *region;
-       char name[32];
-       int rc = 0, i;
-
-       (void)zpios_upcall(run_args->pre, PHASE_PRE_REMOVE, run_args, 0);
-       t->start = zpios_timespec_now();
-
-       (void)snprintf(name, 32, "%s/id_%d", run_args->pool, run_args->id);
-
-       if (run_args->flags & DMU_REMOVE) {
-               if (run_args->flags & DMU_FPP) {
-                       for (i = 0; i < run_args->region_count; i++) {
-                               region = &run_args->regions[i];
-                               rc = zpios_dmu_object_free(run_args,
-                                                          region->obj.os,
-                                                          region->obj.obj);
-                               if (rc)
-                                       zpios_print(run_args->file, "Error "
-                                                   "removing object %d, %d\n",
-                                                   (int)region->obj.obj, rc);
-                       }
-               } else {
-                       region = &run_args->regions[0];
-                       rc = zpios_dmu_object_free(run_args,
-                                                  region->obj.os,
-                                                  region->obj.obj);
-                       if (rc)
-                               zpios_print(run_args->file, "Error "
-                                           "removing object %d, %d\n",
-                                           (int)region->obj.obj, rc);
-               }
-       }
-
-       dmu_objset_disown(run_args->os, zpios_tag);
-
-       if (run_args->flags & DMU_REMOVE) {
-               rc = dmu_objset_destroy(name, B_FALSE);
-               if (rc)
-                       zpios_print(run_args->file, "Error dmu_objset_destroy"
-                                   "(%s, ...) failed: %d\n", name, rc);
-       }
-
-       t->stop  = zpios_timespec_now();
-       t->delta = zpios_timespec_sub(t->stop, t->start);
-       (void)zpios_upcall(run_args->post, PHASE_POST_REMOVE, run_args, rc);
-}
-
-static void
-zpios_cleanup_run(run_args_t *run_args)
-{
-       int i, size = 0;
-
-       if (run_args == NULL)
-               return;
-
-       if (run_args->threads != NULL) {
-               for (i = 0; i < run_args->thread_count; i++) {
-                       if (run_args->threads[i]) {
-                               mutex_destroy(&run_args->threads[i]->lock);
-                               kmem_free(run_args->threads[i],
-                                         sizeof(thread_data_t));
-                       }
-               }
-
-               kmem_free(run_args->threads,
-                         sizeof(thread_data_t *) * run_args->thread_count);
-       }
-
-       for (i = 0; i < run_args->region_count; i++)
-               mutex_destroy(&run_args->regions[i].lock);
-
-       mutex_destroy(&run_args->lock_work);
-       mutex_destroy(&run_args->lock_ctl);
-       size = run_args->region_count * sizeof(zpios_region_t);
-
-       vmem_free(run_args, sizeof(*run_args) + size);
-}
-
-static int
-zpios_dmu_write(run_args_t *run_args, objset_t *os, uint64_t object,
-               uint64_t offset, uint64_t size, const void *buf)
-{
-       struct dmu_tx *tx;
-       int rc, how = TXG_WAIT;
-//     int flags = 0;
-
-       if (run_args->flags & DMU_WRITE_NOWAIT)
-               how = TXG_NOWAIT;
-
-       while (1) {
-               tx = dmu_tx_create(os);
-               dmu_tx_hold_write(tx, object, offset, size);
-               rc = dmu_tx_assign(tx, how);
-
-               if (rc) {
-                       if (rc == ERESTART && how == TXG_NOWAIT) {
-                               dmu_tx_wait(tx);
-                               dmu_tx_abort(tx);
-                               continue;
-                       }
-                       zpios_print(run_args->file,
-                                   "Error in dmu_tx_assign(), %d", rc);
-                       dmu_tx_abort(tx);
-                       return rc;
-               }
-               break;
-       }
-
-//     if (run_args->flags & DMU_WRITE_ZC)
-//             flags |= DMU_WRITE_ZEROCOPY;
-
-       dmu_write(os, object, offset, size, buf, tx);
-       dmu_tx_commit(tx);
-
-       return 0;
-}
-
-static int
-zpios_dmu_read(run_args_t *run_args, objset_t *os, uint64_t object,
-              uint64_t offset, uint64_t size, void *buf)
-{
-       int flags = 0;
-
-//     if (run_args->flags & DMU_READ_ZC)
-//             flags |= DMU_READ_ZEROCOPY;
-
-       if (run_args->flags & DMU_READ_NOPF)
-               flags |= DMU_READ_NO_PREFETCH;
-
-       return dmu_read(os, object, offset, size, buf, flags);
-}
-
-static int
-zpios_thread_main(void *data)
-{
-       thread_data_t *thr = (thread_data_t *)data;
-       run_args_t *run_args = thr->run_args;
-       zpios_time_t t;
-       dmu_obj_t obj;
-       __u64 offset;
-       __u32 chunk_size;
-       zpios_region_t *region;
-       char *buf;
-       unsigned int random_int;
-       int chunk_noise = run_args->chunk_noise;
-       int chunk_noise_tmp = 0;
-       int thread_delay = run_args->thread_delay;
-       int thread_delay_tmp = 0;
-       int i, rc = 0;
-
-       if (chunk_noise) {
-               get_random_bytes(&random_int, sizeof(unsigned int));
-               chunk_noise_tmp = (random_int % (chunk_noise * 2))-chunk_noise;
-       }
-
-       /* It's OK to vmem_alloc() this memory because it will be copied
-        * in to the slab and pointers to the slab copy will be setup in
-        * the bio when the IO is submitted.  This of course is not ideal
-        * since we want a zero-copy IO path if possible.  It would be nice
-        * to have direct access to those slab entries.
-        */
-       chunk_size = run_args->chunk_size + chunk_noise_tmp;
-       buf = (char *)vmem_alloc(chunk_size, KM_SLEEP);
-       ASSERT(buf);
-
-       /* Trivial data verification pattern for now. */
-       if (run_args->flags & DMU_VERIFY)
-               memset(buf, 'z', chunk_size);
-
-       /* Write phase */
-       mutex_enter(&thr->lock);
-       thr->stats.wr_time.start = zpios_timespec_now();
-       mutex_exit(&thr->lock);
-
-       while (zpios_get_work_item(run_args, &obj, &offset,
-                                  &chunk_size, &region, DMU_WRITE)) {
-               if (thread_delay) {
-                       get_random_bytes(&random_int, sizeof(unsigned int));
-                       thread_delay_tmp = random_int % thread_delay;
-                       set_current_state(TASK_UNINTERRUPTIBLE);
-                       schedule_timeout(thread_delay_tmp); /* In jiffies */
-               }
-
-               t.start = zpios_timespec_now();
-               rc = zpios_dmu_write(run_args, obj.os, obj.obj,
-                                    offset, chunk_size, buf);
-               t.stop  = zpios_timespec_now();
-               t.delta = zpios_timespec_sub(t.stop, t.start);
-
-               if (rc) {
-                       zpios_print(run_args->file, "IO error while doing "
-                                   "dmu_write(): %d\n", rc);
-                       break;
-               }
-
-               mutex_enter(&thr->lock);
-               thr->stats.wr_data += chunk_size;
-               thr->stats.wr_chunks++;
-               thr->stats.wr_time.delta = zpios_timespec_add(
-                       thr->stats.wr_time.delta, t.delta);
-               mutex_exit(&thr->lock);
-
-               mutex_enter(&region->lock);
-               region->stats.wr_data += chunk_size;
-               region->stats.wr_chunks++;
-               region->stats.wr_time.delta = zpios_timespec_add(
-                       region->stats.wr_time.delta, t.delta);
-
-               /* First time region was accessed */
-               if (region->init_offset == offset)
-                       region->stats.wr_time.start = t.start;
-
-               mutex_exit(&region->lock);
-       }
-
-       mutex_enter(&run_args->lock_ctl);
-       run_args->threads_done++;
-       mutex_exit(&run_args->lock_ctl);
-
-       mutex_enter(&thr->lock);
-       thr->rc = rc;
-       thr->stats.wr_time.stop = zpios_timespec_now();
-       mutex_exit(&thr->lock);
-       wake_up(&run_args->waitq);
-
-       set_current_state(TASK_UNINTERRUPTIBLE);
-       schedule();
-
-       /* Check if we should exit */
-       mutex_enter(&thr->lock);
-       rc = thr->rc;
-       mutex_exit(&thr->lock);
-       if (rc)
-               goto out;
-
-       /* Read phase */
-       mutex_enter(&thr->lock);
-       thr->stats.rd_time.start = zpios_timespec_now();
-       mutex_exit(&thr->lock);
-
-       while (zpios_get_work_item(run_args, &obj, &offset,
-                                  &chunk_size, &region, DMU_READ)) {
-               if (thread_delay) {
-                       get_random_bytes(&random_int, sizeof(unsigned int));
-                       thread_delay_tmp = random_int % thread_delay;
-                       set_current_state(TASK_UNINTERRUPTIBLE);
-                       schedule_timeout(thread_delay_tmp); /* In jiffies */
-               }
-
-               if (run_args->flags & DMU_VERIFY)
-                       memset(buf, 0, chunk_size);
-
-               t.start = zpios_timespec_now();
-               rc = zpios_dmu_read(run_args, obj.os, obj.obj,
-                                   offset, chunk_size, buf);
-               t.stop  = zpios_timespec_now();
-               t.delta = zpios_timespec_sub(t.stop, t.start);
-
-               if (rc) {
-                       zpios_print(run_args->file, "IO error while doing "
-                                   "dmu_read(): %d\n", rc);
-                       break;
-               }
-
-               /* Trivial data verification, expensive! */
-               if (run_args->flags & DMU_VERIFY) {
-                       for (i = 0; i < chunk_size; i++) {
-                               if (buf[i] != 'z') {
-                                       zpios_print(run_args->file,
-                                                   "IO verify error: %d/%d/%d\n",
-                                                   (int)obj.obj, (int)offset,
-                                                   (int)chunk_size);
-                                       break;
-                               }
-                       }
-               }
-
-               mutex_enter(&thr->lock);
-               thr->stats.rd_data += chunk_size;
-               thr->stats.rd_chunks++;
-               thr->stats.rd_time.delta = zpios_timespec_add(
-                       thr->stats.rd_time.delta, t.delta);
-               mutex_exit(&thr->lock);
-
-               mutex_enter(&region->lock);
-               region->stats.rd_data += chunk_size;
-               region->stats.rd_chunks++;
-               region->stats.rd_time.delta = zpios_timespec_add(
-                       region->stats.rd_time.delta, t.delta);
-
-               /* First time region was accessed */
-               if (region->init_offset == offset)
-                       region->stats.rd_time.start = t.start;
-
-               mutex_exit(&region->lock);
-       }
-
-       mutex_enter(&run_args->lock_ctl);
-       run_args->threads_done++;
-       mutex_exit(&run_args->lock_ctl);
-
-       mutex_enter(&thr->lock);
-       thr->rc = rc;
-       thr->stats.rd_time.stop = zpios_timespec_now();
-       mutex_exit(&thr->lock);
-       wake_up(&run_args->waitq);
-
-out:
-       vmem_free(buf, chunk_size);
-       do_exit(0);
-
-       return rc; /* Unreachable, due to do_exit() */
-}
-
-static int
-zpios_thread_done(run_args_t *run_args)
-{
-       ASSERT(run_args->threads_done <= run_args->thread_count);
-       return (run_args->threads_done == run_args->thread_count);
-}
-
-static int
-zpios_threads_run(run_args_t *run_args)
-{
-       struct task_struct *tsk, **tsks;
-       thread_data_t *thr = NULL;
-       zpios_time_t *tt = &(run_args->stats.total_time);
-       zpios_time_t *tw = &(run_args->stats.wr_time);
-       zpios_time_t *tr = &(run_args->stats.rd_time);
-       int i, rc = 0, tc = run_args->thread_count;
-
-       tsks = kmem_zalloc(sizeof(struct task_struct *) * tc, KM_SLEEP);
-       if (tsks == NULL) {
-               rc = -ENOMEM;
-               goto cleanup2;
-       }
-
-       run_args->threads = kmem_zalloc(sizeof(thread_data_t *) * tc, KM_SLEEP);
-       if (run_args->threads == NULL) {
-               rc = -ENOMEM;
-               goto cleanup;
-       }
-
-       init_waitqueue_head(&run_args->waitq);
-       run_args->threads_done = 0;
-
-       /* Create all the needed threads which will sleep until awoken */
-       for (i = 0; i < tc; i++) {
-               thr = kmem_zalloc(sizeof(thread_data_t), KM_SLEEP);
-               if (thr == NULL) {
-                       rc = -ENOMEM;
-                       goto taskerr;
-               }
-
-               thr->thread_no = i;
-               thr->run_args = run_args;
-               thr->rc = 0;
-               mutex_init(&thr->lock, NULL, MUTEX_DEFAULT, NULL);
-               run_args->threads[i] = thr;
-
-               tsk = kthread_create(zpios_thread_main, (void *)thr,
-                                    "%s/%d", "zpios_io", i);
-               if (IS_ERR(tsk)) {
-                       rc = -EINVAL;
-                       goto taskerr;
-               }
-
-               tsks[i] = tsk;
-       }
-
-       tt->start = zpios_timespec_now();
-
-       /* Wake up all threads for write phase */
-       (void)zpios_upcall(run_args->pre, PHASE_PRE_WRITE, run_args, 0);
-       for (i = 0; i < tc; i++)
-               wake_up_process(tsks[i]);
-
-       /* Wait for write phase to complete */
-       tw->start = zpios_timespec_now();
-       wait_event(run_args->waitq, zpios_thread_done(run_args));
-       tw->stop = zpios_timespec_now();
-       (void)zpios_upcall(run_args->post, PHASE_POST_WRITE, run_args, rc);
-
-       for (i = 0; i < tc; i++) {
-               thr = run_args->threads[i];
-
-               mutex_enter(&thr->lock);
-
-               if (!rc && thr->rc)
-                       rc = thr->rc;
-
-               run_args->stats.wr_data += thr->stats.wr_data;
-               run_args->stats.wr_chunks += thr->stats.wr_chunks;
-               mutex_exit(&thr->lock);
-       }
-
-       if (rc) {
-               /* Wake up all threads and tell them to exit */
-               for (i = 0; i < tc; i++) {
-                       mutex_enter(&thr->lock);
-                       thr->rc = rc;
-                       mutex_exit(&thr->lock);
-
-                       wake_up_process(tsks[i]);
-               }
-               goto out;
-       }
-
-       mutex_enter(&run_args->lock_ctl);
-       ASSERT(run_args->threads_done == run_args->thread_count);
-       run_args->threads_done = 0;
-       mutex_exit(&run_args->lock_ctl);
-
-       /* Wake up all threads for read phase */
-       (void)zpios_upcall(run_args->pre, PHASE_PRE_READ, run_args, 0);
-        for (i = 0; i < tc; i++)
-               wake_up_process(tsks[i]);
-
-       /* Wait for read phase to complete */
-       tr->start = zpios_timespec_now();
-       wait_event(run_args->waitq, zpios_thread_done(run_args));
-       tr->stop = zpios_timespec_now();
-       (void)zpios_upcall(run_args->post, PHASE_POST_READ, run_args, rc);
-
-       for (i = 0; i < tc; i++) {
-               thr = run_args->threads[i];
-
-               mutex_enter(&thr->lock);
-
-               if (!rc && thr->rc)
-                       rc = thr->rc;
-
-               run_args->stats.rd_data += thr->stats.rd_data;
-               run_args->stats.rd_chunks += thr->stats.rd_chunks;
-               mutex_exit(&thr->lock);
-       }
-out:
-       tt->stop  = zpios_timespec_now();
-       tt->delta = zpios_timespec_sub(tt->stop, tt->start);
-       tw->delta = zpios_timespec_sub(tw->stop, tw->start);
-       tr->delta = zpios_timespec_sub(tr->stop, tr->start);
-
-cleanup:
-       kmem_free(tsks, sizeof(struct task_struct *) * tc);
-cleanup2:
-       /* Returns first encountered thread error (if any) */
-       return rc;
-
-taskerr:
-       /* Destroy all threads that were created successfully */
-       for (i = 0; i < tc; i++)
-               if (tsks[i] != NULL)
-                       (void) kthread_stop(tsks[i]);
-
-       goto cleanup;
-}
-
-static int
-zpios_do_one_run(struct file *file, zpios_cmd_t *kcmd,
-                 int data_size, void *data)
-{
-       run_args_t *run_args = { 0 };
-       zpios_stats_t *stats = (zpios_stats_t *)data;
-       int i, n, m, size, rc;
-
-       if ((!kcmd->cmd_chunk_size) || (!kcmd->cmd_region_size) ||
-           (!kcmd->cmd_thread_count) || (!kcmd->cmd_region_count)) {
-               zpios_print(file, "Invalid chunk_size, region_size, "
-                           "thread_count, or region_count, %d\n", -EINVAL);
-               return -EINVAL;
-       }
-
-       if (!(kcmd->cmd_flags & DMU_WRITE) ||
-           !(kcmd->cmd_flags & DMU_READ)) {
-               zpios_print(file, "Invalid flags, minimally DMU_WRITE "
-                           "and DMU_READ must be set, %d\n", -EINVAL);
-               return -EINVAL;
-       }
-
-       if ((kcmd->cmd_flags & (DMU_WRITE_ZC | DMU_READ_ZC)) &&
-           (kcmd->cmd_flags & DMU_VERIFY)) {
-               zpios_print(file, "Invalid flags, DMU_*_ZC incompatible "
-                           "with DMU_VERIFY, used for performance analysis "
-                           "only, %d\n", -EINVAL);
-               return -EINVAL;
-       }
-
-       /* Opaque data on return contains structs of the following form:
-        *
-        * zpios_stat_t stats[];
-        * stats[0]     = run_args->stats;
-        * stats[1-N]   = threads[N]->stats;
-        * stats[N+1-M] = regions[M]->stats;
-        *
-        * Where N is the number of threads, and M is the number of regions.
-        */
-       size = (sizeof(zpios_stats_t) +
-              (kcmd->cmd_thread_count * sizeof(zpios_stats_t)) +
-              (kcmd->cmd_region_count * sizeof(zpios_stats_t)));
-       if (data_size < size) {
-               zpios_print(file, "Invalid size, command data buffer "
-                           "size too small, (%d < %d)\n", data_size, size);
-               return -ENOSPC;
-       }
-
-       rc = zpios_setup_run(&run_args, kcmd, file);
-       if (rc)
-               return rc;
-
-        rc = zpios_threads_run(run_args);
-       zpios_remove_objset(run_args);
-       if (rc)
-               goto cleanup;
-
-       if (stats) {
-               n = 1;
-               m = 1 + kcmd->cmd_thread_count;
-               stats[0] = run_args->stats;
-
-               for (i = 0; i < kcmd->cmd_thread_count; i++)
-                       stats[n+i] = run_args->threads[i]->stats;
-
-               for (i = 0; i < kcmd->cmd_region_count; i++)
-                       stats[m+i] = run_args->regions[i].stats;
-       }
-
-cleanup:
-        zpios_cleanup_run(run_args);
-
-       (void)zpios_upcall(kcmd->cmd_post, PHASE_POST_RUN, run_args, 0);
-
-       return rc;
-}
-
-static int
-zpios_open(struct inode *inode, struct file *file)
-{
-       unsigned int minor = iminor(inode);
-       zpios_info_t *info;
-
-       if (minor >= ZPIOS_MINORS)
-               return -ENXIO;
-
-       info = (zpios_info_t *)kmem_alloc(sizeof(*info), KM_SLEEP);
-       if (info == NULL)
-               return -ENOMEM;
-
-       spin_lock_init(&info->info_lock);
-       info->info_size = ZPIOS_INFO_BUFFER_SIZE;
-       info->info_buffer = (char *)vmem_alloc(ZPIOS_INFO_BUFFER_SIZE,KM_SLEEP);
-       if (info->info_buffer == NULL) {
-               kmem_free(info, sizeof(*info));
-               return -ENOMEM;
-       }
-
-       info->info_head = info->info_buffer;
-       file->private_data = (void *)info;
-
-        return 0;
-}
-
-static int
-zpios_release(struct inode *inode, struct file *file)
-{
-       unsigned int minor = iminor(inode);
-       zpios_info_t *info = (zpios_info_t *)file->private_data;
-
-       if (minor >= ZPIOS_MINORS)
-               return -ENXIO;
-
-       ASSERT(info);
-       ASSERT(info->info_buffer);
-
-       vmem_free(info->info_buffer, ZPIOS_INFO_BUFFER_SIZE);
-       kmem_free(info, sizeof(*info));
-
-       return 0;
-}
-
-static int
-zpios_buffer_clear(struct file *file, zpios_cfg_t *kcfg, unsigned long arg)
-{
-       zpios_info_t *info = (zpios_info_t *)file->private_data;
-
-       ASSERT(info);
-       ASSERT(info->info_buffer);
-
-       spin_lock(&info->info_lock);
-       memset(info->info_buffer, 0, info->info_size);
-       info->info_head = info->info_buffer;
-       spin_unlock(&info->info_lock);
-
-       return 0;
-}
-
-static int
-zpios_buffer_size(struct file *file, zpios_cfg_t *kcfg, unsigned long arg)
-{
-       zpios_info_t *info = (zpios_info_t *)file->private_data;
-       char *buf;
-       int min, size, rc = 0;
-
-       ASSERT(info);
-       ASSERT(info->info_buffer);
-
-       spin_lock(&info->info_lock);
-       if (kcfg->cfg_arg1 > 0) {
-
-               size = kcfg->cfg_arg1;
-               buf = (char *)vmem_alloc(size, KM_SLEEP);
-               if (buf == NULL) {
-                       rc = -ENOMEM;
-                       goto out;
-               }
-
-               /* Zero fill and truncate contents when coping buffer */
-               min = ((size < info->info_size) ? size : info->info_size);
-               memset(buf, 0, size);
-               memcpy(buf, info->info_buffer, min);
-               vmem_free(info->info_buffer, info->info_size);
-               info->info_size = size;
-               info->info_buffer = buf;
-               info->info_head = info->info_buffer;
-       }
-
-       kcfg->cfg_rc1 = info->info_size;
-
-       if (copy_to_user((struct zpios_cfg_t __user *)arg, kcfg, sizeof(*kcfg)))
-               rc = -EFAULT;
-out:
-       spin_unlock(&info->info_lock);
-
-       return rc;
-}
-
-static int
-zpios_ioctl_cfg(struct file *file, unsigned long arg)
-{
-       zpios_cfg_t kcfg;
-       int rc = 0;
-
-       if (copy_from_user(&kcfg, (zpios_cfg_t *)arg, sizeof(kcfg)))
-               return -EFAULT;
-
-       if (kcfg.cfg_magic != ZPIOS_CFG_MAGIC) {
-               zpios_print(file, "Bad config magic 0x%x != 0x%x\n",
-                           kcfg.cfg_magic, ZPIOS_CFG_MAGIC);
-               return -EINVAL;
-       }
-
-       switch (kcfg.cfg_cmd) {
-               case ZPIOS_CFG_BUFFER_CLEAR:
-                       /* cfg_arg1 - Unused
-                        * cfg_rc1  - Unused
-                        */
-                       rc = zpios_buffer_clear(file, &kcfg, arg);
-                       break;
-               case ZPIOS_CFG_BUFFER_SIZE:
-                       /* cfg_arg1 - 0 - query size; >0 resize
-                        * cfg_rc1  - Set to current buffer size
-                        */
-                       rc = zpios_buffer_size(file, &kcfg, arg);
-                       break;
-               default:
-                       zpios_print(file, "Bad config command %d\n",
-                                   kcfg.cfg_cmd);
-                       rc = -EINVAL;
-                       break;
-       }
-
-       return rc;
-}
-
-static int
-zpios_ioctl_cmd(struct file *file, unsigned long arg)
-{
-       zpios_cmd_t *kcmd;
-       void *data = NULL;
-       int rc = -EINVAL;
-
-       kcmd = kmem_alloc(sizeof(zpios_cmd_t), KM_SLEEP);
-       if (kcmd == NULL) {
-               zpios_print(file, "Unable to kmem_alloc() %ld byte for "
-                           "zpios_cmd_t\n", (long int)sizeof(zpios_cmd_t));
-               return -ENOMEM;
-       }
-
-       rc = copy_from_user(kcmd, (zpios_cfg_t *)arg, sizeof(zpios_cmd_t));
-       if (rc) {
-               zpios_print(file, "Unable to copy command structure "
-                           "from user to kernel memory, %d\n", rc);
-               goto out_cmd;
-       }
-
-       if (kcmd->cmd_magic != ZPIOS_CMD_MAGIC) {
-               zpios_print(file, "Bad command magic 0x%x != 0x%x\n",
-                           kcmd->cmd_magic, ZPIOS_CFG_MAGIC);
-               rc = -EINVAL;
-               goto out_cmd;
-       }
-
-       /* Allocate memory for any opaque data the caller needed to pass on */
-       if (kcmd->cmd_data_size > 0) {
-               data = (void *)vmem_alloc(kcmd->cmd_data_size, KM_SLEEP);
-               if (data == NULL) {
-                       zpios_print(file, "Unable to vmem_alloc() %ld "
-                                   "bytes for data buffer\n",
-                                   (long)kcmd->cmd_data_size);
-                       rc = -ENOMEM;
-                       goto out_cmd;
-               }
-
-               rc = copy_from_user(data, (void *)(arg + offsetof(zpios_cmd_t,
-                                   cmd_data_str)), kcmd->cmd_data_size);
-               if (rc) {
-                       zpios_print(file, "Unable to copy data buffer "
-                                   "from user to kernel memory, %d\n", rc);
-                       goto out_data;
-               }
-       }
-
-       rc = zpios_do_one_run(file, kcmd, kcmd->cmd_data_size, data);
-
-       if (data != NULL) {
-               /* If the test failed do not print out the stats */
-               if (rc)
-                       goto out_data;
-
-               rc = copy_to_user((void *)(arg + offsetof(zpios_cmd_t,
-                                 cmd_data_str)), data, kcmd->cmd_data_size);
-               if (rc) {
-                       zpios_print(file, "Unable to copy data buffer "
-                                   "from kernel to user memory, %d\n", rc);
-                       rc = -EFAULT;
-               }
-
-out_data:
-               vmem_free(data, kcmd->cmd_data_size);
-       }
-out_cmd:
-       kmem_free(kcmd, sizeof(zpios_cmd_t));
-
-       return rc;
-}
-
-static int
-zpios_ioctl(struct inode *inode, struct file *file,
-            unsigned int cmd, unsigned long arg)
-{
-        unsigned int minor = iminor(inode);
-       int rc = 0;
-
-       /* Ignore tty ioctls */
-       if ((cmd & 0xffffff00) == ((int)'T') << 8)
-               return -ENOTTY;
-
-       if (minor >= ZPIOS_MINORS)
-               return -ENXIO;
-
-       switch (cmd) {
-               case ZPIOS_CFG:
-                       rc = zpios_ioctl_cfg(file, arg);
-                       break;
-               case ZPIOS_CMD:
-                       rc = zpios_ioctl_cmd(file, arg);
-                       break;
-               default:
-                       zpios_print(file, "Bad ioctl command %d\n", cmd);
-                       rc = -EINVAL;
-                       break;
-       }
-
-       return rc;
-}
-
-#ifdef CONFIG_COMPAT
-/* Compatibility handler for ioctls from 32-bit ELF binaries */
-static long
-zpios_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-{
-       return zpios_ioctl(file->f_dentry->d_inode, file, cmd, arg);
-}
-#endif /* CONFIG_COMPAT */
-
-/* I'm not sure why you would want to write in to this buffer from
- * user space since its principle use is to pass test status info
- * back to the user space, but I don't see any reason to prevent it.
- */
-static ssize_t
-zpios_write(struct file *file, const char __user *buf,
-            size_t count, loff_t *ppos)
-{
-        unsigned int minor = iminor(file->f_dentry->d_inode);
-       zpios_info_t *info = (zpios_info_t *)file->private_data;
-       int rc = 0;
-
-       if (minor >= ZPIOS_MINORS)
-               return -ENXIO;
-
-       ASSERT(info);
-       ASSERT(info->info_buffer);
-
-       spin_lock(&info->info_lock);
-
-       /* Write beyond EOF */
-       if (*ppos >= info->info_size) {
-               rc = -EFBIG;
-               goto out;
-       }
-
-       /* Resize count if beyond EOF */
-       if (*ppos + count > info->info_size)
-               count = info->info_size - *ppos;
-
-       if (copy_from_user(info->info_buffer, buf, count)) {
-               rc = -EFAULT;
-               goto out;
-       }
-
-       *ppos += count;
-       rc = count;
-out:
-       spin_unlock(&info->info_lock);
-       return rc;
-}
-
-static ssize_t
-zpios_read(struct file *file, char __user *buf,
-                       size_t count, loff_t *ppos)
-{
-        unsigned int minor = iminor(file->f_dentry->d_inode);
-       zpios_info_t *info = (zpios_info_t *)file->private_data;
-       int rc = 0;
-
-       if (minor >= ZPIOS_MINORS)
-               return -ENXIO;
-
-       ASSERT(info);
-       ASSERT(info->info_buffer);
-
-       spin_lock(&info->info_lock);
-
-       /* Read beyond EOF */
-       if (*ppos >= info->info_size)
-               goto out;
-
-       /* Resize count if beyond EOF */
-       if (*ppos + count > info->info_size)
-               count = info->info_size - *ppos;
-
-       if (copy_to_user(buf, info->info_buffer + *ppos, count)) {
-               rc = -EFAULT;
-               goto out;
-       }
-
-       *ppos += count;
-       rc = count;
-out:
-       spin_unlock(&info->info_lock);
-       return rc;
-}
-
-static loff_t zpios_seek(struct file *file, loff_t offset, int origin)
-{
-        unsigned int minor = iminor(file->f_dentry->d_inode);
-       zpios_info_t *info = (zpios_info_t *)file->private_data;
-       int rc = -EINVAL;
-
-       if (minor >= ZPIOS_MINORS)
-               return -ENXIO;
-
-       ASSERT(info);
-       ASSERT(info->info_buffer);
-
-       spin_lock(&info->info_lock);
-
-       switch (origin) {
-       case 0: /* SEEK_SET - No-op just do it */
-               break;
-       case 1: /* SEEK_CUR - Seek from current */
-               offset = file->f_pos + offset;
-               break;
-       case 2: /* SEEK_END - Seek from end */
-               offset = info->info_size + offset;
-               break;
-       }
-
-       if (offset >= 0) {
-               file->f_pos = offset;
-               file->f_version = 0;
-               rc = offset;
-       }
-
-       spin_unlock(&info->info_lock);
-
-       return rc;
-}
-
-static struct cdev zpios_cdev;
-static struct file_operations zpios_fops = {
-       .owner          = THIS_MODULE,
-       .open           = zpios_open,
-       .release        = zpios_release,
-       .ioctl          = zpios_ioctl,
-#ifdef CONFIG_COMPAT
-       .compat_ioctl   = zpios_compat_ioctl,
-#endif
-       .read           = zpios_read,
-       .write          = zpios_write,
-       .llseek         = zpios_seek,
-};
-
-static int
-zpios_init(void)
-{
-       dev_t dev;
-       int rc;
-
-       dev = MKDEV(ZPIOS_MAJOR, 0);
-       if ((rc = register_chrdev_region(dev, ZPIOS_MINORS, ZPIOS_NAME)))
-               goto error;
-
-       /* Support for registering a character driver */
-       cdev_init(&zpios_cdev, &zpios_fops);
-       zpios_cdev.owner = THIS_MODULE;
-       kobject_set_name(&zpios_cdev.kobj, ZPIOS_NAME);
-       if ((rc = cdev_add(&zpios_cdev, dev, ZPIOS_MINORS))) {
-               printk(KERN_ERR "ZPIOS: Error adding cdev, %d\n", rc);
-               kobject_put(&zpios_cdev.kobj);
-               unregister_chrdev_region(dev, ZPIOS_MINORS);
-               goto error;
-       }
-
-       /* Support for udev make driver info available in sysfs */
-       zpios_class = spl_class_create(THIS_MODULE, ZPIOS_NAME);
-       if (IS_ERR(zpios_class)) {
-               rc = PTR_ERR(zpios_class);
-               printk(KERN_ERR "ZPIOS: Error creating zpios class, %d\n", rc);
-               cdev_del(&zpios_cdev);
-               unregister_chrdev_region(dev, ZPIOS_MINORS);
-               goto error;
-       }
-
-       zpios_device = spl_device_create(zpios_class, NULL,
-                                        dev, NULL, ZPIOS_NAME);
-       return 0;
-error:
-       printk(KERN_ERR "ZPIOS: Error registering zpios device, %d\n", rc);
-       return rc;
-}
-
-static int
-zpios_fini(void)
-{
-       dev_t dev = MKDEV(ZPIOS_MAJOR, 0);
-
-       spl_device_destroy(zpios_class, zpios_device, dev);
-       spl_class_destroy(zpios_class);
-       cdev_del(&zpios_cdev);
-       unregister_chrdev_region(dev, ZPIOS_MINORS);
-
-       return 0;
-}
-
-spl_module_init(zpios_init);
-spl_module_exit(zpios_fini);
-
-MODULE_AUTHOR("LLNL / Sun");
-MODULE_DESCRIPTION("Kernel PIOS implementation");
-MODULE_LICENSE("GPL");
index ed6e5028f39b40ed0ba97f832f93927da4148403..cc8c6960279750ab8ba82c6d341c3392c29d488f 100644 (file)
@@ -1,20 +1,37 @@
+SUBDIRS = zpool-config zpios-test zpios-profile
+
 pkglibexecdir = $(libexecdir)/@PACKAGE@
-nobase_pkglibexec_SCRIPTS  = common.sh
-nobase_pkglibexec_SCRIPTS += zconfig.sh
-nobase_pkglibexec_SCRIPTS += zfs.sh
-nobase_pkglibexec_SCRIPTS += zpool-create.sh
-nobase_pkglibexec_SCRIPTS += zpool-config/*
-nobase_pkglibexec_SCRIPTS += zpios.sh
-nobase_pkglibexec_SCRIPTS += zpios-sanity.sh
-nobase_pkglibexec_SCRIPTS += zpios-survey.sh
-nobase_pkglibexec_SCRIPTS += zpios-test/*
-nobase_pkglibexec_SCRIPTS += zpios-profile/*
-EXTRA_DIST = zfs-update.sh $(nobase_pkglibexec_SCRIPTS)
+dist_pkglibexec_SCRIPTS = \
+       $(top_builddir)/scripts/common.sh \
+       $(top_srcdir)/scripts/zconfig.sh \
+       $(top_srcdir)/scripts/zfs.sh \
+       $(top_srcdir)/scripts/zpool-create.sh \
+       $(top_srcdir)/scripts/zpios.sh \
+       $(top_srcdir)/scripts/zpios-sanity.sh \
+       $(top_srcdir)/scripts/zpios-survey.sh
+
+ZFS=$(top_builddir)/scripts/zfs.sh
+ZCONFIG=$(top_builddir)/scripts/zconfig.sh
+ZTEST=$(top_builddir)/cmd/ztest/ztest
+ZPIOS_SANITY=$(top_builddir)/scripts/zpios-sanity.sh
+
+all:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ ! -e $$link ]; then \
+                       $(LN_S) $$file $$link; \
+               fi \
+       done
 
-ZFS=${top_srcdir}/scripts/zfs.sh
-ZCONFIG=${top_srcdir}/scripts/zconfig.sh
-ZTEST=${top_builddir}/cmd/ztest/ztest
-ZPIOS_SANITY=${top_srcdir}/scripts/zpios-sanity.sh
+clean:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ -L $$link ]; then \
+                       $(RM) $$link; \
+               fi \
+       done
 
 check:
        @echo
index 09b4d0ad10e8345e8464f2c1ed158dec79978a82..3154ed7d7d1ab6c3a3f87e831dfe33e050ebbae1 100644 (file)
@@ -35,8 +35,8 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = scripts
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/common.sh.in
+DIST_COMMON = $(dist_pkglibexec_SCRIPTS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in $(srcdir)/common.sh.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps =  \
        $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
@@ -96,7 +96,7 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(pkglibexecdir)"
-SCRIPTS = $(nobase_pkglibexec_SCRIPTS)
+SCRIPTS = $(dist_pkglibexec_SCRIPTS)
 AM_V_GEN = $(am__v_GEN_$(V))
 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN   " $@;
@@ -105,7 +105,47 @@ am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
 am__v_at_0 = @
 SOURCES =
 DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+       distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 pkglibexecdir = $(libexecdir)/@PACKAGE@
 ACLOCAL = @ACLOCAL@
 ALIEN = @ALIEN@
@@ -117,14 +157,12 @@ AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
-BUILDDIR = @BUILDDIR@
 CC = @CC@
 CCAS = @CCAS@
 CCASDEPMODE = @CCASDEPMODE@
 CCASFLAGS = @CCASFLAGS@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
-CMDDIR = @CMDDIR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CYGPATH_W = @CYGPATH_W@
@@ -162,7 +200,6 @@ KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBBLKID = @LIBBLKID@
-LIBDIR = @LIBDIR@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
@@ -177,7 +214,6 @@ LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
-MODDIR = @MODDIR@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -196,7 +232,6 @@ RPM = @RPM@
 RPMBUILD = @RPMBUILD@
 RPMBUILD_VERSION = @RPMBUILD_VERSION@
 RPM_VERSION = @RPM_VERSION@
-SCRIPTDIR = @SCRIPTDIR@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -206,7 +241,6 @@ SPL_SYMBOLS = @SPL_SYMBOLS@
 SPL_VERSION = @SPL_VERSION@
 STRIP = @STRIP@
 TARGET_ASM_DIR = @TARGET_ASM_DIR@
-TOPDIR = @TOPDIR@
 VENDOR = @VENDOR@
 VERSION = @VERSION@
 ZFS_CONFIG = @ZFS_CONFIG@
@@ -277,15 +311,21 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-nobase_pkglibexec_SCRIPTS = common.sh zconfig.sh zfs.sh \
-       zpool-create.sh zpool-config/* zpios.sh zpios-sanity.sh \
-       zpios-survey.sh zpios-test/* zpios-profile/*
-EXTRA_DIST = zfs-update.sh $(nobase_pkglibexec_SCRIPTS)
-ZFS = ${top_srcdir}/scripts/zfs.sh
-ZCONFIG = ${top_srcdir}/scripts/zconfig.sh
-ZTEST = ${top_builddir}/cmd/ztest/ztest
-ZPIOS_SANITY = ${top_srcdir}/scripts/zpios-sanity.sh
-all: all-am
+SUBDIRS = zpool-config zpios-test zpios-profile
+dist_pkglibexec_SCRIPTS = \
+       $(top_builddir)/scripts/common.sh \
+       $(top_srcdir)/scripts/zconfig.sh \
+       $(top_srcdir)/scripts/zfs.sh \
+       $(top_srcdir)/scripts/zpool-create.sh \
+       $(top_srcdir)/scripts/zpios.sh \
+       $(top_srcdir)/scripts/zpios-sanity.sh \
+       $(top_srcdir)/scripts/zpios-survey.sh
+
+ZFS = $(top_builddir)/scripts/zfs.sh
+ZCONFIG = $(top_builddir)/scripts/zconfig.sh
+ZTEST = $(top_builddir)/cmd/ztest/ztest
+ZPIOS_SANITY = $(top_builddir)/scripts/zpios-sanity.sh
+all: all-recursive
 
 .SUFFIXES:
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
@@ -320,17 +360,16 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 common.sh: $(top_builddir)/config.status $(srcdir)/common.sh.in
        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-install-nobase_pkglibexecSCRIPTS: $(nobase_pkglibexec_SCRIPTS)
+install-dist_pkglibexecSCRIPTS: $(dist_pkglibexec_SCRIPTS)
        @$(NORMAL_INSTALL)
        test -z "$(pkglibexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)"
-       @list='$(nobase_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || list=; \
-       $(am__nobase_strip_setup); \
+       @list='$(dist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || list=; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
        done | \
        sed -e 'p;s,.*/,,;n' \
-           -e "s|$$srcdirstrip/||" -e 'h;s|[^/]*$$||; s|^$$|.|' \
+           -e 'h;s|.*|.|' \
            -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
        $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
          { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
@@ -340,24 +379,18 @@ install-nobase_pkglibexecSCRIPTS: $(nobase_pkglibexec_SCRIPTS)
            else { print "f", d "/" $$4, $$1 } } \
          END { for (d in files) print "f", d, files[d] }' | \
        while read type dir files; do \
-         case $$type in \
-         d) echo " $(MKDIR_P) '$(DESTDIR)$(pkglibexecdir)/$$dir'"; \
-            $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)/$$dir" || exit $$?;; \
-         f) \
             if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
             test -z "$$files" || { \
               echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(pkglibexecdir)$$dir'"; \
               $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(pkglibexecdir)$$dir" || exit $$?; \
             } \
-         ;; esac \
        ; done
 
-uninstall-nobase_pkglibexecSCRIPTS:
+uninstall-dist_pkglibexecSCRIPTS:
        @$(NORMAL_UNINSTALL)
-       @list='$(nobase_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || exit 0; \
-       $(am__nobase_strip_setup); \
-       files=`$(am__nobase_strip) \
-              -e 'h;s,.*/,,;$(transform);x;s|[^/]*$$||;G;s,\n,,'`; \
+       @list='$(dist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
        test -n "$$list" || exit 0; \
        echo " ( cd '$(DESTDIR)$(pkglibexecdir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(pkglibexecdir)" && rm -f $$files
@@ -367,12 +400,141 @@ mostlyclean-libtool:
 
 clean-libtool:
        -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @fail= failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
 tags: TAGS
-TAGS:
 
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
 ctags: CTAGS
-CTAGS:
-
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -404,22 +566,51 @@ distdir: $(DISTFILES)
            || exit 1; \
          fi; \
        done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
 check-am: all-am
-check: check-am
+check: check-recursive
 all-am: Makefile $(SCRIPTS)
-installdirs:
+installdirs: installdirs-recursive
+installdirs-am:
        for dir in "$(DESTDIR)$(pkglibexecdir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
 
 install-am: all-am
        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
-installcheck: installcheck-am
+installcheck: installcheck-recursive
 install-strip:
        $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
          install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
@@ -436,87 +627,106 @@ distclean-generic:
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
        @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
 clean-am: clean-generic clean-libtool mostlyclean-am
 
-distclean: distclean-am
+distclean: distclean-recursive
        -rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-tags
 
-dvi: dvi-am
+dvi: dvi-recursive
 
 dvi-am:
 
-html: html-am
+html: html-recursive
 
 html-am:
 
-info: info-am
+info: info-recursive
 
 info-am:
 
 install-data-am:
 
-install-dvi: install-dvi-am
+install-dvi: install-dvi-recursive
 
 install-dvi-am:
 
-install-exec-am: install-nobase_pkglibexecSCRIPTS
+install-exec-am: install-dist_pkglibexecSCRIPTS
 
-install-html: install-html-am
+install-html: install-html-recursive
 
 install-html-am:
 
-install-info: install-info-am
+install-info: install-info-recursive
 
 install-info-am:
 
 install-man:
 
-install-pdf: install-pdf-am
+install-pdf: install-pdf-recursive
 
 install-pdf-am:
 
-install-ps: install-ps-am
+install-ps: install-ps-recursive
 
 install-ps-am:
 
 installcheck-am:
 
-maintainer-clean: maintainer-clean-am
+maintainer-clean: maintainer-clean-recursive
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
-mostlyclean: mostlyclean-am
+mostlyclean: mostlyclean-recursive
 
 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
-pdf: pdf-am
+pdf: pdf-recursive
 
 pdf-am:
 
-ps: ps-am
+ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-nobase_pkglibexecSCRIPTS
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-       distclean distclean-generic distclean-libtool distdir dvi \
-       dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-html install-html-am \
-       install-info install-info-am install-man \
-       install-nobase_pkglibexecSCRIPTS install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
-       uninstall-nobase_pkglibexecSCRIPTS
+uninstall-am: uninstall-dist_pkglibexecSCRIPTS
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+       install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       ctags ctags-recursive distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dist_pkglibexecSCRIPTS install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-recursive uninstall uninstall-am \
+       uninstall-dist_pkglibexecSCRIPTS
+
+
+all:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ ! -e $$link ]; then \
+                       $(LN_S) $$file $$link; \
+               fi \
+       done
 
+clean:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ -L $$link ]; then \
+                       $(RM) $$link; \
+               fi \
+       done
 
 check:
        @echo
index 102952fdbc8c78a38e655c89054430b1880ca665..65e897d8549ce2ef6b181eda02af27e2163ec7f3 100644 (file)
@@ -1,13 +1,13 @@
 #!/bin/bash
 #
-# Common support functions for testing scripts.  If a .script-config
+# Common support functions for testing scripts.  If a script-config
 # files is available it will be sourced so in-tree kernel modules and
-# utilities will be used.  If no .script-config can be found then the
+# utilities will be used.  If no script-config can be found then the
 # installed kernel modules and utilities will be used.
 
 basedir="$(dirname $0)"
 
-SCRIPT_CONFIG=.script-config
+SCRIPT_CONFIG=zfs-script-config.sh
 if [ -f "${basedir}/../${SCRIPT_CONFIG}" ]; then
 . "${basedir}/../${SCRIPT_CONFIG}"
 else
diff --git a/scripts/zfs-update.sh b/scripts/zfs-update.sh
deleted file mode 100755 (executable)
index 474c49a..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/bin/bash
-#
-# WARNING: This script removes the entire zfs subtree and will
-# repopulate it using the requested OpenSolaris source release.
-# This script should only be used when rebasing the TopGit tree
-# against the latest release.  
-#
-trap die_int INT
-
-RELEASE=$1
-PROG=update-zfs.sh
-REMOTE_DOC_FILE=man-sunosman-20090930.tar.bz2
-REMOTE_DOC=http://dlc.sun.com/osol/man/downloads/current/${REMOTE_DOC_FILE}
-REMOTE_SRC=ssh://anon@hg.opensolaris.org/hg/onnv/onnv-gate
-
-die() {
-       rm -Rf ${SRC}
-       echo "${PROG}: $1" >&2
-       exit 1
-}
-
-die_int() {
-       die "Ctrl-C abort"
-}
-
-DST=`pwd`
-if [ `basename $DST` != "scripts" ]; then
-       die "Must be run from scripts directory"
-fi
-
-if [ ! "$RELEASE" ]; then
-       die "Must specify ZFS release build, i.e. 'onnv_141'"
-fi
-
-SRC=`mktemp -d /tmp/onnv-gate.XXXXXXXXXX`
-DST=`dirname $DST`
-
-echo "----------------------------------------------------------------"
-echo "Remote Source: ${REMOTE_SRC}"
-echo "Remote Docs:   ${REMOTE_DOC}"
-echo "Local Source:  ${SRC}"
-echo "Local Dest:    ${DST}"
-echo
-echo "------------- Fetching OpenSolaris mercurial repo ----------------"
-pushd ${SRC}
-hg clone ${REMOTE_SRC} || die "Error cloning OpenSolaris mercurial repo"
-pushd onnv-gate
-hg update -C ${RELEASE} || die "Error unknown release ${RELEASE}"
-popd
-popd
-echo "------------- Fetching OpenSolaris documentation ---------------"
-wget -q ${REMOTE_DOC} -P ${SRC} ||
-       die "Error 'wget ${REMOTE_DOC}'"
-
-echo "------------- Unpacking OpenSolaris documentation --------------"
-tar -xjf ${SRC}/${REMOTE_DOC_FILE} -C ${SRC} ||
-       die "Error 'tar -xjf ${SRC}/${REMOTE_DOC_FILE} -C ${SRC}'"
-
-SRC_LIB=${SRC}/onnv-gate/usr/src/lib
-SRC_CMD=${SRC}/onnv-gate/usr/src/cmd
-SRC_CM=${SRC}/onnv-gate/usr/src/common
-SRC_UTS=${SRC}/onnv-gate/usr/src/uts
-SRC_UCM=${SRC}/onnv-gate/usr/src/uts/common
-SRC_ZLIB=${SRC}/onnv-gate/usr/src/uts/common/fs/zfs
-SRC_MAN=${SRC}/man
-
-DST_MOD=${DST}/module
-DST_LIB=${DST}/lib
-DST_CMD=${DST}/cmd
-DST_MAN=${DST}/man
-
-umask 022
-rm -Rf ${DST}/zfs
-
-echo "------------- Updating ZFS from OpenSolaris ${RELEASE} ---------------"
-echo "* module/avl"
-mkdir -p ${DST_MOD}/avl/include/sys/
-cp ${SRC_CM}/avl/avl.c                         ${DST_MOD}/avl/
-cp ${SRC_UCM}/sys/avl.h                                ${DST_MOD}/avl/include/sys/
-cp ${SRC_UCM}/sys/avl_impl.h                   ${DST_MOD}/avl/include/sys/
-
-echo "* module/nvpair"
-mkdir -p ${DST_MOD}/nvpair/include/sys/
-cp ${SRC_CM}/nvpair/nvpair.c                   ${DST_MOD}/nvpair/
-cp ${SRC_CM}/nvpair/nvpair_alloc_fixed.c       ${DST_MOD}/nvpair/
-cp ${SRC_UCM}/sys/nvpair.h                     ${DST_MOD}/nvpair/include/sys/
-cp ${SRC_UCM}/sys/nvpair_impl.h                        ${DST_MOD}/nvpair/include/sys/
-
-echo "* module/unicode"
-mkdir -p ${DST_MOD}/unicode/include/sys/
-cp ${SRC_CM}/unicode/*.c                       ${DST_MOD}/unicode/
-cp ${SRC_UCM}/sys/u8_textprep.h                        ${DST_MOD}/unicode/include/sys/
-cp ${SRC_UCM}/sys/u8_textprep_data.h           ${DST_MOD}/unicode/include/sys/
-
-echo "* module/zcommon"
-mkdir -p ${DST_MOD}/zcommon/include/sys/fs/
-cp ${SRC_CM}/zfs/*.c                           ${DST_MOD}/zcommon/
-cp ${SRC_CM}/zfs/*.h                           ${DST_MOD}/zcommon/include/
-cp ${SRC_UCM}/sys/fs/zfs.h                     ${DST_MOD}/zcommon/include/sys/fs/
-
-echo "* module/zfs"
-mkdir -p ${DST_MOD}/zfs/include/sys/fm/fs/
-cp ${SRC_UTS}/intel/zfs/spa_boot.c             ${DST_MOD}/zfs/
-cp ${SRC_ZLIB}/*.c                             ${DST_MOD}/zfs/
-cp ${SRC_ZLIB}/sys/*.h                         ${DST_MOD}/zfs/include/sys/
-cp ${SRC_UCM}/os/fm.c                          ${DST_MOD}/zfs/
-cp ${SRC_UCM}/sys/fm/protocol.h                        ${DST_MOD}/zfs/include/sys/fm/
-cp ${SRC_UCM}/sys/fm/util.h                    ${DST_MOD}/zfs/include/sys/fm/
-cp ${SRC_UCM}/sys/fm/fs/zfs.h                  ${DST_MOD}/zfs/include/sys/fm/fs/
-rm ${DST_MOD}/zfs/vdev_disk.c
-rm ${DST_MOD}/zfs/zvol.c
-rm ${DST_MOD}/zfs/include/sys/vdev_disk.h
-
-echo "* lib/libavl"
-# Full source available in 'module/avl'
-
-echo "* lib/libnvpair"
-mkdir -p ${DST_LIB}/libnvpair/include/
-cp ${SRC_UCM}/os/nvpair_alloc_system.c         ${DST_LIB}/libnvpair/
-cp ${SRC_LIB}/libnvpair/libnvpair.c            ${DST_LIB}/libnvpair/
-cp ${SRC_LIB}/libnvpair/libnvpair.h            ${DST_LIB}/libnvpair/include/
-
-echo "* lib/libunicode"
-# Full source available in 'module/unicode'
-
-echo "* lib/libuutil"
-mkdir -p ${DST_LIB}/libuutil/include/
-cp ${SRC_LIB}/libuutil/common/*.c              ${DST_LIB}/libuutil/
-cp ${SRC_LIB}/libuutil/common/*.h              ${DST_LIB}/libuutil/include/
-
-echo "* lib/libefi"
-mkdir -p ${DST_LIB}/libefi/include/sys/
-cp ${SRC_LIB}/libefi/common/rdwr_efi.c         ${DST_LIB}/libefi/
-cp ${SRC_UCM}/sys/efi_partition.h              ${DST_LIB}/libefi/include/sys/
-cp ${SRC_UCM}/sys/uuid.h                       ${DST_LIB}/libefi/include/sys/
-
-echo "* lib/libzpool"
-mkdir -p ${DST_LIB}/libzpool/include/sys/
-cp ${SRC_LIB}/libzpool/common/kernel.c         ${DST_LIB}/libzpool/
-cp ${SRC_LIB}/libzpool/common/taskq.c          ${DST_LIB}/libzpool/
-cp ${SRC_LIB}/libzpool/common/util.c           ${DST_LIB}/libzpool/
-cp ${SRC_LIB}/libzpool/common/sys/zfs_context.h        ${DST_LIB}/libzpool/include/sys/
-
-echo "* lib/libzfs"
-mkdir -p ${DST_LIB}/libzfs/include/
-cp ${SRC_LIB}/libzfs/common/*.c                        ${DST_LIB}/libzfs/
-cp ${SRC_LIB}/libzfs/common/*.h                        ${DST_LIB}/libzfs/include/
-
-echo "* cmd/zpool"
-mkdir -p ${DST_CMD}/zpool
-cp ${SRC_CMD}/zpool/*.c                                ${DST_CMD}/zpool/
-cp ${SRC_CMD}/zpool/*.h                                ${DST_CMD}/zpool/
-
-echo "* cmd/zfs"
-mkdir -p ${DST_CMD}/zfs
-cp ${SRC_CMD}/zfs/*.c                          ${DST_CMD}/zfs/
-cp ${SRC_CMD}/zfs/*.h                          ${DST_CMD}/zfs/
-
-echo "* cmd/zdb"
-mkdir -p ${DST_CMD}/zdb/
-cp ${SRC_CMD}/zdb/*.c                          ${DST_CMD}/zdb/
-
-echo "* cmd/zinject"
-mkdir -p ${DST_CMD}/zinject
-cp ${SRC_CMD}/zinject/*.c                      ${DST_CMD}/zinject/
-cp ${SRC_CMD}/zinject/*.h                      ${DST_CMD}/zinject/
-
-echo "* cmd/ztest"
-mkdir -p ${DST_CMD}/ztest
-cp ${SRC_CMD}/ztest/*.c                                ${DST_CMD}/ztest/
-
-echo "* man/"
-mkdir -p ${DST_MAN}/man8
-cp ${SRC_MAN}/man1m/zfs.1m                     ${DST_MAN}/man8/zfs.8
-cp ${SRC_MAN}/man1m/zpool.1m                   ${DST_MAN}/man8/zpool.8
-cp ${SRC_MAN}/man1m/zdb.1m                     ${DST_MAN}/man8/zdb.8
-chmod -R 644 ${DST_MAN}/man8/*
-
-echo "${REMOTE_SRC}/${RELEASE}" >${DST}/ZFS.RELEASE
-
-rm -Rf ${SRC}
diff --git a/scripts/zpios-profile/Makefile.am b/scripts/zpios-profile/Makefile.am
new file mode 100644 (file)
index 0000000..403c020
--- /dev/null
@@ -0,0 +1,25 @@
+pkglibexecdir = $(libexecdir)/@PACKAGE@/zpios-profile
+dist_pkglibexec_SCRIPTS = \
+       $(top_srcdir)/scripts/zpios-profile/zpios-profile-disk.sh \
+       $(top_srcdir)/scripts/zpios-profile/zpios-profile-pids.sh \
+       $(top_srcdir)/scripts/zpios-profile/zpios-profile-post.sh \
+       $(top_srcdir)/scripts/zpios-profile/zpios-profile-pre.sh \
+       $(top_srcdir)/scripts/zpios-profile/zpios-profile.sh
+
+all:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ ! -e $$link ]; then \
+                       $(LN_S) $$file $$link; \
+               fi \
+       done
+
+clean:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ -L $$link ]; then \
+                       $(RM) $$link; \
+               fi \
+       done
diff --git a/scripts/zpios-profile/Makefile.in b/scripts/zpios-profile/Makefile.in
new file mode 100644 (file)
index 0000000..d9ab1b2
--- /dev/null
@@ -0,0 +1,523 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = scripts/zpios-profile
+DIST_COMMON = $(dist_pkglibexec_SCRIPTS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibexecdir)"
+SCRIPTS = $(dist_pkglibexec_SCRIPTS)
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = $(libexecdir)/@PACKAGE@/zpios-profile
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+dist_pkglibexec_SCRIPTS = \
+       $(top_srcdir)/scripts/zpios-profile/zpios-profile-disk.sh \
+       $(top_srcdir)/scripts/zpios-profile/zpios-profile-pids.sh \
+       $(top_srcdir)/scripts/zpios-profile/zpios-profile-post.sh \
+       $(top_srcdir)/scripts/zpios-profile/zpios-profile-pre.sh \
+       $(top_srcdir)/scripts/zpios-profile/zpios-profile.sh
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu scripts/zpios-profile/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu scripts/zpios-profile/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-dist_pkglibexecSCRIPTS: $(dist_pkglibexec_SCRIPTS)
+       @$(NORMAL_INSTALL)
+       test -z "$(pkglibexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)"
+       @list='$(dist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n' \
+           -e 'h;s|.*|.|' \
+           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+             if (++n[d] == $(am__install_max)) { \
+               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+           else { print "f", d "/" $$4, $$1 } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+            test -z "$$files" || { \
+              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(pkglibexecdir)$$dir'"; \
+              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(pkglibexecdir)$$dir" || exit $$?; \
+            } \
+       ; done
+
+uninstall-dist_pkglibexecSCRIPTS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(pkglibexecdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(pkglibexecdir)" && rm -f $$files
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS)
+installdirs:
+       for dir in "$(DESTDIR)$(pkglibexecdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-dist_pkglibexecSCRIPTS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_pkglibexecSCRIPTS
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dist_pkglibexecSCRIPTS \
+       install-dvi install-dvi-am install-exec install-exec-am \
+       install-html install-html-am install-info install-info-am \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am uninstall uninstall-am \
+       uninstall-dist_pkglibexecSCRIPTS
+
+
+all:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ ! -e $$link ]; then \
+                       $(LN_S) $$file $$link; \
+               fi \
+       done
+
+clean:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ -L $$link ]; then \
+                       $(RM) $$link; \
+               fi \
+       done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/scripts/zpios-test/Makefile.am b/scripts/zpios-test/Makefile.am
new file mode 100644 (file)
index 0000000..07fd3e2
--- /dev/null
@@ -0,0 +1,30 @@
+pkglibexecdir = $(libexecdir)/@PACKAGE@/zpios-test
+dist_pkglibexec_SCRIPTS = \
+        $(top_srcdir)/scripts/zpios-test/16th-8192rc-4rs-1cs-4off.sh \
+        $(top_srcdir)/scripts/zpios-test/1th-16rc-4rs-1cs-4off.sh \
+        $(top_srcdir)/scripts/zpios-test/1x256th-65536rc-4rs-1cs-4off.sh \
+        $(top_srcdir)/scripts/zpios-test/256th-65536rc-4rs-1cs-4off.sh \
+        $(top_srcdir)/scripts/zpios-test/4th-1024rc-4rs-1cs-4off.sh \
+        $(top_srcdir)/scripts/zpios-test/large.sh \
+        $(top_srcdir)/scripts/zpios-test/large-thread-survey.sh \
+        $(top_srcdir)/scripts/zpios-test/medium.sh \
+        $(top_srcdir)/scripts/zpios-test/small.sh \
+        $(top_srcdir)/scripts/zpios-test/tiny.sh
+
+all:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ ! -e $$link ]; then \
+                       $(LN_S) $$file $$link; \
+               fi \
+       done
+
+clean:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ -L $$link ]; then \
+                       $(RM) $$link; \
+               fi \
+       done
diff --git a/scripts/zpios-test/Makefile.in b/scripts/zpios-test/Makefile.in
new file mode 100644 (file)
index 0000000..7ff309b
--- /dev/null
@@ -0,0 +1,528 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = scripts/zpios-test
+DIST_COMMON = $(dist_pkglibexec_SCRIPTS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibexecdir)"
+SCRIPTS = $(dist_pkglibexec_SCRIPTS)
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = $(libexecdir)/@PACKAGE@/zpios-test
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+dist_pkglibexec_SCRIPTS = \
+        $(top_srcdir)/scripts/zpios-test/16th-8192rc-4rs-1cs-4off.sh \
+        $(top_srcdir)/scripts/zpios-test/1th-16rc-4rs-1cs-4off.sh \
+        $(top_srcdir)/scripts/zpios-test/1x256th-65536rc-4rs-1cs-4off.sh \
+        $(top_srcdir)/scripts/zpios-test/256th-65536rc-4rs-1cs-4off.sh \
+        $(top_srcdir)/scripts/zpios-test/4th-1024rc-4rs-1cs-4off.sh \
+        $(top_srcdir)/scripts/zpios-test/large.sh \
+        $(top_srcdir)/scripts/zpios-test/large-thread-survey.sh \
+        $(top_srcdir)/scripts/zpios-test/medium.sh \
+        $(top_srcdir)/scripts/zpios-test/small.sh \
+        $(top_srcdir)/scripts/zpios-test/tiny.sh
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu scripts/zpios-test/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu scripts/zpios-test/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-dist_pkglibexecSCRIPTS: $(dist_pkglibexec_SCRIPTS)
+       @$(NORMAL_INSTALL)
+       test -z "$(pkglibexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)"
+       @list='$(dist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n' \
+           -e 'h;s|.*|.|' \
+           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+             if (++n[d] == $(am__install_max)) { \
+               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+           else { print "f", d "/" $$4, $$1 } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+            test -z "$$files" || { \
+              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(pkglibexecdir)$$dir'"; \
+              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(pkglibexecdir)$$dir" || exit $$?; \
+            } \
+       ; done
+
+uninstall-dist_pkglibexecSCRIPTS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(pkglibexecdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(pkglibexecdir)" && rm -f $$files
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS)
+installdirs:
+       for dir in "$(DESTDIR)$(pkglibexecdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-dist_pkglibexecSCRIPTS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_pkglibexecSCRIPTS
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dist_pkglibexecSCRIPTS \
+       install-dvi install-dvi-am install-exec install-exec-am \
+       install-html install-html-am install-info install-info-am \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am uninstall uninstall-am \
+       uninstall-dist_pkglibexecSCRIPTS
+
+
+all:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ ! -e $$link ]; then \
+                       $(LN_S) $$file $$link; \
+               fi \
+       done
+
+clean:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ -L $$link ]; then \
+                       $(RM) $$link; \
+               fi \
+       done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/scripts/zpool-config/Makefile.am b/scripts/zpool-config/Makefile.am
new file mode 100644 (file)
index 0000000..0c7e071
--- /dev/null
@@ -0,0 +1,46 @@
+pkglibexecdir = $(libexecdir)/@PACKAGE@/zpool-config
+dist_pkglibexec_SCRIPTS = \
+        $(top_srcdir)/scripts/zpool-config/dm0-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/dragon-raid0-1x70.sh \
+        $(top_srcdir)/scripts/zpool-config/dragon-raid10-35x2.sh \
+        $(top_srcdir)/scripts/zpool-config/dragon-raidz2-7x10.sh \
+        $(top_srcdir)/scripts/zpool-config/dragon-raidz-7x10.sh \
+        $(top_srcdir)/scripts/zpool-config/file-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/file-raid10.sh \
+        $(top_srcdir)/scripts/zpool-config/file-raidz2.sh \
+        $(top_srcdir)/scripts/zpool-config/file-raidz.sh \
+        $(top_srcdir)/scripts/zpool-config/hda-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/lo-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/lo-raid10.sh \
+        $(top_srcdir)/scripts/zpool-config/lo-raidz2.sh \
+        $(top_srcdir)/scripts/zpool-config/lo-raidz.sh \
+        $(top_srcdir)/scripts/zpool-config/md0-raid10.sh \
+        $(top_srcdir)/scripts/zpool-config/md0-raid5.sh \
+        $(top_srcdir)/scripts/zpool-config/ram0-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/sda-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/supermicro-raid0-1x16.sh \
+        $(top_srcdir)/scripts/zpool-config/supermicro-raid10-8x2.sh \
+        $(top_srcdir)/scripts/zpool-config/supermicro-raidz2-4x4.sh \
+        $(top_srcdir)/scripts/zpool-config/supermicro-raidz-4x4.sh \
+        $(top_srcdir)/scripts/zpool-config/x4550-raid0-1x48.sh \
+        $(top_srcdir)/scripts/zpool-config/x4550-raid10-24x2.sh \
+        $(top_srcdir)/scripts/zpool-config/x4550-raidz2-8x6.sh \
+        $(top_srcdir)/scripts/zpool-config/x4550-raidz-8x6.sh
+
+all:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ ! -e $$link ]; then \
+                       $(LN_S) $$file $$link; \
+               fi \
+       done
+
+clean:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ -L $$link ]; then \
+                       $(RM) $$link; \
+               fi \
+       done
diff --git a/scripts/zpool-config/Makefile.in b/scripts/zpool-config/Makefile.in
new file mode 100644 (file)
index 0000000..996d15c
--- /dev/null
@@ -0,0 +1,544 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = scripts/zpool-config
+DIST_COMMON = $(dist_pkglibexec_SCRIPTS) $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps =  \
+       $(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
+       $(top_srcdir)/config/kernel-bdev-logical-size.m4 \
+       $(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
+       $(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
+       $(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
+       $(top_srcdir)/config/kernel-blk-end-request.m4 \
+       $(top_srcdir)/config/kernel-blk-fetch-request.m4 \
+       $(top_srcdir)/config/kernel-blk-requeue-request.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-bytes.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-pos.m4 \
+       $(top_srcdir)/config/kernel-blk-rq-sectors.m4 \
+       $(top_srcdir)/config/kernel-fmode-t.m4 \
+       $(top_srcdir)/config/kernel-get-disk-ro.m4 \
+       $(top_srcdir)/config/kernel-invalidate-bdev-args.m4 \
+       $(top_srcdir)/config/kernel-kobj-name-len.m4 \
+       $(top_srcdir)/config/kernel-open-bdev-exclusive.m4 \
+       $(top_srcdir)/config/kernel-rq-for-each_segment.m4 \
+       $(top_srcdir)/config/kernel-rq-is_sync.m4 \
+       $(top_srcdir)/config/kernel.m4 \
+       $(top_srcdir)/config/user-arch.m4 \
+       $(top_srcdir)/config/user-frame-larger-than.m4 \
+       $(top_srcdir)/config/user-ioctl.m4 \
+       $(top_srcdir)/config/user-libblkid.m4 \
+       $(top_srcdir)/config/user-libshare.m4 \
+       $(top_srcdir)/config/user-libuuid.m4 \
+       $(top_srcdir)/config/user-nptl_guard_within_stack.m4 \
+       $(top_srcdir)/config/user-zlib.m4 $(top_srcdir)/config/user.m4 \
+       $(top_srcdir)/config/zfs-build.m4 \
+       $(top_srcdir)/config/zfs-meta.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/zfs_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(pkglibexecdir)"
+SCRIPTS = $(dist_pkglibexec_SCRIPTS)
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN   " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = $(libexecdir)/@PACKAGE@/zpool-config
+ACLOCAL = @ACLOCAL@
+ALIEN = @ALIEN@
+ALIEN_VERSION = @ALIEN_VERSION@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASDEPMODE = @CCASDEPMODE@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG_CFLAGS = @DEBUG_CFLAGS@
+DEBUG_STACKFLAGS = @DEBUG_STACKFLAGS@
+DEFAULT_PACKAGE = @DEFAULT_PACKAGE@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DPKG = @DPKG@
+DPKGBUILD = @DPKGBUILD@
+DPKGBUILD_VERSION = @DPKGBUILD_VERSION@
+DPKG_VERSION = @DPKG_VERSION@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FRAME_LARGER_THAN = @FRAME_LARGER_THAN@
+GREP = @GREP@
+HAVE_ALIEN = @HAVE_ALIEN@
+HAVE_DPKG = @HAVE_DPKG@
+HAVE_DPKGBUILD = @HAVE_DPKGBUILD@
+HAVE_RPM = @HAVE_RPM@
+HAVE_RPMBUILD = @HAVE_RPMBUILD@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KERNELCPPFLAGS = @KERNELCPPFLAGS@
+KERNELMAKE_PARAMS = @KERNELMAKE_PARAMS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBBLKID = @LIBBLKID@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBUUID = @LIBUUID@
+LINUX = @LINUX@
+LINUX_OBJ = @LINUX_OBJ@
+LINUX_SYMBOLS = @LINUX_SYMBOLS@
+LINUX_VERSION = @LINUX_VERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+RPM = @RPM@
+RPMBUILD = @RPMBUILD@
+RPMBUILD_VERSION = @RPMBUILD_VERSION@
+RPM_VERSION = @RPM_VERSION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPL = @SPL@
+SPL_OBJ = @SPL_OBJ@
+SPL_SYMBOLS = @SPL_SYMBOLS@
+SPL_VERSION = @SPL_VERSION@
+STRIP = @STRIP@
+TARGET_ASM_DIR = @TARGET_ASM_DIR@
+VENDOR = @VENDOR@
+VERSION = @VERSION@
+ZFS_CONFIG = @ZFS_CONFIG@
+ZFS_META_ALIAS = @ZFS_META_ALIAS@
+ZFS_META_AUTHOR = @ZFS_META_AUTHOR@
+ZFS_META_DATA = @ZFS_META_DATA@
+ZFS_META_LICENSE = @ZFS_META_LICENSE@
+ZFS_META_LT_AGE = @ZFS_META_LT_AGE@
+ZFS_META_LT_CURRENT = @ZFS_META_LT_CURRENT@
+ZFS_META_LT_REVISION = @ZFS_META_LT_REVISION@
+ZFS_META_NAME = @ZFS_META_NAME@
+ZFS_META_RELEASE = @ZFS_META_RELEASE@
+ZFS_META_VERSION = @ZFS_META_VERSION@
+ZLIB = @ZLIB@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+dist_pkglibexec_SCRIPTS = \
+        $(top_srcdir)/scripts/zpool-config/dm0-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/dragon-raid0-1x70.sh \
+        $(top_srcdir)/scripts/zpool-config/dragon-raid10-35x2.sh \
+        $(top_srcdir)/scripts/zpool-config/dragon-raidz2-7x10.sh \
+        $(top_srcdir)/scripts/zpool-config/dragon-raidz-7x10.sh \
+        $(top_srcdir)/scripts/zpool-config/file-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/file-raid10.sh \
+        $(top_srcdir)/scripts/zpool-config/file-raidz2.sh \
+        $(top_srcdir)/scripts/zpool-config/file-raidz.sh \
+        $(top_srcdir)/scripts/zpool-config/hda-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/lo-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/lo-raid10.sh \
+        $(top_srcdir)/scripts/zpool-config/lo-raidz2.sh \
+        $(top_srcdir)/scripts/zpool-config/lo-raidz.sh \
+        $(top_srcdir)/scripts/zpool-config/md0-raid10.sh \
+        $(top_srcdir)/scripts/zpool-config/md0-raid5.sh \
+        $(top_srcdir)/scripts/zpool-config/ram0-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/sda-raid0.sh \
+        $(top_srcdir)/scripts/zpool-config/supermicro-raid0-1x16.sh \
+        $(top_srcdir)/scripts/zpool-config/supermicro-raid10-8x2.sh \
+        $(top_srcdir)/scripts/zpool-config/supermicro-raidz2-4x4.sh \
+        $(top_srcdir)/scripts/zpool-config/supermicro-raidz-4x4.sh \
+        $(top_srcdir)/scripts/zpool-config/x4550-raid0-1x48.sh \
+        $(top_srcdir)/scripts/zpool-config/x4550-raid10-24x2.sh \
+        $(top_srcdir)/scripts/zpool-config/x4550-raidz2-8x6.sh \
+        $(top_srcdir)/scripts/zpool-config/x4550-raidz-8x6.sh
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu scripts/zpool-config/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu scripts/zpool-config/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-dist_pkglibexecSCRIPTS: $(dist_pkglibexec_SCRIPTS)
+       @$(NORMAL_INSTALL)
+       test -z "$(pkglibexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)"
+       @list='$(dist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n' \
+           -e 'h;s|.*|.|' \
+           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+             if (++n[d] == $(am__install_max)) { \
+               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+           else { print "f", d "/" $$4, $$1 } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+            test -z "$$files" || { \
+              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(pkglibexecdir)$$dir'"; \
+              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(pkglibexecdir)$$dir" || exit $$?; \
+            } \
+       ; done
+
+uninstall-dist_pkglibexecSCRIPTS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(pkglibexecdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(pkglibexecdir)" && rm -f $$files
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS)
+installdirs:
+       for dir in "$(DESTDIR)$(pkglibexecdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-dist_pkglibexecSCRIPTS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_pkglibexecSCRIPTS
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       distclean distclean-generic distclean-libtool distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-data install-data-am install-dist_pkglibexecSCRIPTS \
+       install-dvi install-dvi-am install-exec install-exec-am \
+       install-html install-html-am install-info install-info-am \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am uninstall uninstall-am \
+       uninstall-dist_pkglibexecSCRIPTS
+
+
+all:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ ! -e $$link ]; then \
+                       $(LN_S) $$file $$link; \
+               fi \
+       done
+
+clean:
+       @list='$(dist_pkglibexec_SCRIPTS)'; \
+       for file in $$list; do \
+               link=$$(basename $$file); \
+               if [ -L $$link ]; then \
+                       $(RM) $$link; \
+               fi \
+       done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/zfs-script-config.sh.in b/zfs-script-config.sh.in
new file mode 100644 (file)
index 0000000..5ded6dc
--- /dev/null
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+KERNELSRC=@LINUX@
+KERNELBUILD=@LINUX_OBJ@
+KERNELSRCVER=@LINUX_VERSION@
+KERNELMOD=/lib/modules/${KERNELSRCVER}/kernel
+
+SPLSRC=@SPL@
+SPLBUILD=@SPL_OBJ@
+SPLSRCVER=@SPL_VERSION@
+
+SRCDIR=@abs_top_srcdir@
+BUILDDIR=@abs_top_builddir@
+LIBDIR=${BUILDDIR}/lib
+CMDDIR=${BUILDDIR}/cmd
+MODDIR=${BUILDDIR}/module
+SCRIPTDIR=${BUILDDIR}/scripts
+ZPOOLDIR=${BUILDDIR}/scripts/zpool-config
+ZPIOSDIR=${BUILDDIR}/scripts/zpios-test
+ZPIOSPROFILEDIR=${BUILDDIR}/scripts/zpios-profile
+ETCDIR=${SRCDIR}/etc
+
+ZDB=${CMDDIR}/zdb/zdb
+ZFS=${CMDDIR}/zfs/zfs
+ZINJECT=${CMDDIR}/zinject/zinject
+ZPOOL=${CMDDIR}/zpool/zpool
+ZPOOL_ID=${CMDDIR}/zpool_id/zpool_id
+ZTEST=${CMDDIR}/ztest/ztest
+ZPIOS=${CMDDIR}/zpios/zpios
+
+COMMON_SH=${SCRIPTDIR}/common.sh
+ZFS_SH=${SCRIPTDIR}/zfs.sh
+ZPOOL_CREATE_SH=${SCRIPTDIR}/zpool-create.sh
+ZPIOS_SH=${SCRIPTDIR}/zpios.sh
+ZPIOS_SURVEY_SH=${SCRIPTDIR}/zpios-survey.sh
+
+INTREE=1
+LDMOD=/sbin/insmod
+
+KERNEL_MODULES=(                                      \
+        ${KERNELMOD}/lib/zlib_deflate/zlib_deflate.ko \
+)
+
+SPL_MODULES=(                                         \
+        ${SPLBUILD}/module/spl/spl.ko                 \
+        ${SPLBUILD}/module/splat/splat.ko             \
+)
+
+ZFS_MODULES=(                                         \
+        ${MODDIR}/avl/zavl.ko                         \
+        ${MODDIR}/nvpair/znvpair.ko                   \
+        ${MODDIR}/unicode/zunicode.ko                 \
+        ${MODDIR}/zcommon/zcommon.ko                  \
+        ${MODDIR}/zfs/zfs.ko                          \
+)
+
+ZPIOS_MODULES=(                                       \
+        ${MODDIR}/zpios/zpios.ko                      \
+)
+
+MODULES=(                                             \
+        ${KERNEL_MODULES[*]}                          \
+        ${SPL_MODULES[*]}                             \
+        ${ZFS_MODULES[*]}                             \
+)
index 9bec437b9de87d7b9c384032c8d051ca30e45630..4e1d4be155c4cc5b8ce1f67d8d436f904b59d325 100644 (file)
@@ -65,7 +65,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_bindir}/*
 %{_libdir}/*
 %{_mandir}/man8/*
-%{_sysconfdir}/*
+/etc/*
 
 %files devel
 %defattr(-,root,root)